哈爾濱工程大學 區塊鏈討論課
2017060210 李英卓
2017060219 王晨
2017060224 張鑫
最早數字貨幣的位元幣一直得到社區的堅定支持,但是它內在的缺陷仍讓人們有些遺憾,位元幣的擴展性問題導致交易速度低、交易成本高,我們都知道位元幣有很好的安全性,但就性能而言,卻不是,它每秒只能處理7筆交易,每一個都需要幾個小時來確認,嚴重影響其實際應用,
位元幣的可拓展性問題往往與區塊鏈價值主張相結合,因此不能通過改變區塊鏈中的引數來簡單地增強可拓展性,位元幣社區主要可以調整兩個變數來嘗試增加每秒事物處理數量(TPS),一個變數是區塊大小,另一個變數是區塊生成時間,大多人會發現僅僅增加區塊大小或降低挖掘復雜性對于可拓展性提升有限,由于事務傳播中繼時間,嘗試以比舊塊更快的速度挖掘新塊會導致一些相當大的安全問題,
位元幣將性能與安全連接在一起,讓我們快速回顧一下位元幣共識協議,它使用了最長鏈規則,每個礦工都會嘗試擴展和挖最長的鏈,當出現一個分叉時,當兩個區塊意外地連接到同一個父塊時,礦工將選擇最長的分叉,他們總是選擇最長鏈,
這里涉及了一個名為挖礦率的引數,它定義了礦工挖出新塊的平均速度,在位元幣中,這個速度是每10分鐘1個區塊,位元幣將這些引數與一個設計引數挖礦率聯系在一起,
吞吐量是位元幣確認交易的平均速度,以及在一段時間內可以確認多少交易,計算方法是乘以區塊大小、每個區塊有多少交易、以及挖礦速率(我們挖這些區塊的速度有多快),然后是延時,也就是確認一個交易需要多長時間,這個計算可以通過確定深度和挖掘速率的除法來完成,
為了提高性能,我們可以提高挖礦速率來獲得更高的吞吐量和更低的延時,我們還可以增加區塊大小以獲得更高的吞吐量,然而,因為分叉,這是行不通的,如果我們提高挖礦速率或增加區塊大小,我們只能得到更多的分叉,這是因為當網路上的兩個節點不能足夠快地相互傳播訊息時,就會發生分叉,這樣它們就會意外地在同一個父塊上進行挖礦,如果我們提高挖礦速率,兩個節點更有可能在短時間內意外地挖出新塊,如果我們增加區塊的大小,那么區塊在整個網路中傳播的時間會更長,這將導致分叉率的增加,分叉不是好事,因為會損害安全性,分叉降低了誠實挖礦的能力, 如果我們想要提高性能,那么將在安全性方面遭受很多損失,反之亦然,Prism要做的就是打破這種聯系,
現對prism進行解構,我們解除性能和安全的聯系是為了提高性能,在位元幣中,一個區塊實際上有兩種作用:第一種是新區塊會將一些交易添加到賬本中,第二種是更含蓄的,新區塊也會對其所有間接和直接區塊進行認證,這就好比說,證明某條鏈是最長鏈,
因此,第一種作用直接與吞吐量相關,交易提交得越快,賬本能包含的交易就越多,第二個角色與確認延時相關:我們投票的速度越快,你對交易的信心就越高,
-
吞吐量
在位元幣中,我們已經看到了由于分叉而導致的吞吐量有限,如果存在一個根本就沒有分叉概念的結構,會怎么樣呢?這就是我們引入“交易區塊”(transaction block)的原因,
“交易區塊”由礦工以較高的挖礦速率挖出,但是交易區塊之間沒有任何鏈結構,所以我們可以非常快地挖出它們,而不用導致分叉,因為在這個設計中根本不存在分叉,
然后我們將這些“交易區塊”帶到“申請人區塊”(proposer blocks),這些是輕量級區塊,只包含指向這些交易區塊的哈希指示,“申請人區塊”將以位元幣的速度開采,并以位元幣最長鏈連接在一起,因為我們挖礦的速度很慢,而且這些區塊很小,所以不管你怎樣提高吞吐量,都不會導致分叉增加,
這就是為什么Prism可以在不犧牲安全性的情況下實作底層網路的物理限制,Prism同時基于最長鏈和作業量證明, -
延時
為了處理延時,我們首先注意到,即使我們引入了申請人鏈,投票率也不會增加,因為只有一個申請人鏈在進行投票,所以讓我們再做一次解構,把投票和申請人區塊分開,
我們把申請人區塊分成了兩部分,一個包含指向交易區塊的哈希指示,另一個是投票者區塊(voter block),它只包含對申請人區塊投票的指示,我們不再在申請人區塊中采用最長鏈結構,相反,我們假設在投票區塊中有一個像位元幣一樣的最長鏈結構,
到目前為止,我們還沒有改善確認延時,因為我們仍然只有一個投票者鏈,而且這個投票者鏈是安全的是非常重要的,所以我們仍然需要等待25個確認,否則攻擊者可以像攻擊位元幣一樣攻擊投票者鏈,
現在我們已經把申請人和投票作業分開了,我們可以引入許多投票者鏈,比如1000個投票者鏈,一個有趣的發現是,現在我們有1000個投票者鏈,我們不需要每一個都是安全的,即使攻擊者能夠攻擊一個投票鏈的概率為30%,但是攻擊者同時攻擊500個投票鏈的概率仍然很低,這就是為什么可以在不犧牲安全性的情況下降低Prism中的確認延時,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/286658.html
標籤:區塊鏈
