共識(shí)協(xié)議是區(qū)塊鏈系統(tǒng)的核心組成要素,是整個(gè)系統(tǒng)穩(wěn)定性和安全性的保證。比特幣引入了第一個(gè)區(qū)塊鏈共識(shí)協(xié)議,即工作量證明(PoW)。在這一共識(shí)協(xié)議下,為獲得出塊權(quán),礦工需要不斷進(jìn)行哈希計(jì)算,直到結(jié)果小于某個(gè)特定值,而持續(xù)的哈希計(jì)算耗費(fèi)大量的能源,這也是 PoW 被人詬病的主要原因。為解決能源浪費(fèi)的問(wèn)題,很多新型的共識(shí)機(jī)制被提出,它們將安全基礎(chǔ)由計(jì)算能力轉(zhuǎn)為依賴(lài)其他資源,其中權(quán)益證明(PoS)被廣泛研究和認(rèn)可,作為 PoW 最有利的替代者,我們堅(jiān)信,PoS 將是區(qū)塊鏈共識(shí)未來(lái)的發(fā)展方向。立足深入研究已有優(yōu)秀共識(shí)協(xié)議(如 Ouroboros、Dfinity)的基礎(chǔ)上,充分借鑒其設(shè)計(jì)優(yōu)勢(shì),結(jié)合多種密碼學(xué)手段,我們?cè)O(shè)計(jì)出星系共識(shí)協(xié)議。同時(shí),星系共識(shí)引入了全新的委托機(jī)制,并在萬(wàn)維鏈完成了概念驗(yàn)證(POC)。
星系共識(shí)的創(chuàng)新點(diǎn):
1.重新定義了權(quán)益并在賬戶(hù)模型下(account model)模擬了幣齡(coin age)的概念,保證了共識(shí)參與者的穩(wěn)定性。與其被動(dòng)地被選擇,所有 WAN的持有者需要主動(dòng)注冊(cè)去參與到星系共識(shí)中,這樣保證了參與者在共識(shí)過(guò)程中是活躍狀態(tài),而不是沉睡狀態(tài)(sleepy)。由此增加的穩(wěn)定性使得整個(gè)協(xié)議在現(xiàn)實(shí)應(yīng)用中具有更高的實(shí)用性。
2.設(shè)計(jì)了新型安全的隨機(jī)數(shù)生成算法,可用于出塊者的選擇以及其他用途,為系統(tǒng)引入熵(entropy)并保證了整個(gè)協(xié)議的安全性。
3.設(shè)計(jì)了 ULS(unique leader selection)算法并用于出塊者選擇。與其他選擇算法相比(如VRF),ULS算法在保持出塊者匿名的同時(shí),保證了出塊者的唯一性,降低了自然分叉的概率。
4.設(shè)計(jì)了三重 ECDSA 委托簽名方案并實(shí)現(xiàn)了完整的委托機(jī)制,持有較少WAN 的用戶(hù)也能夠參與到共識(shí)過(guò)程中,從而吸納更多的權(quán)益加入到共識(shí)協(xié)議中。
5.設(shè)計(jì)了公平合理的獎(jiǎng)勵(lì)機(jī)制,激勵(lì)共識(shí)過(guò)程中的誠(chéng)實(shí)行為并對(duì)惡意行為進(jìn)行懲罰,保證權(quán)益分布健康,防止權(quán)益集中(stake centralization)。
Wanstake 設(shè)計(jì)
1. 設(shè)計(jì)概覽
所有的 PoS 共識(shí)方案都致力于使參與者通過(guò)去中心化的方式達(dá)成共識(shí),然而往往忽略了影響共識(shí)的一些重要因素,如共識(shí)參與者的穩(wěn)定性和活躍度、權(quán)益的分布等等。我們的設(shè)計(jì)通過(guò)實(shí)現(xiàn)以下目標(biāo),保證了共識(shí)機(jī)制在現(xiàn)實(shí)應(yīng)用中的可行性。
· 高穩(wěn)定性:共識(shí)參與者應(yīng)保持在線(xiàn)并參與到共識(shí)過(guò)程中。
· 高活性:與其被動(dòng)地被選擇為出塊者,所有參與者需要通過(guò)主動(dòng)注冊(cè)的方式參與到星系共識(shí)中,這樣能夠保證共識(shí)參與者具有很高的活性,從而不會(huì)因?yàn)榈艟€(xiàn)等原因而影響共識(shí)過(guò)程的正常進(jìn)行。
· 獨(dú)立性:共識(shí)參與者無(wú)法通過(guò)將持有的 WAN 分布在不同的賬戶(hù)中或與其他參與者合作將 WAN 放在同一賬戶(hù)中而獲得額外收益。
· 權(quán)益的健康分布:健康的權(quán)益分布不能夠太集中,同時(shí)也不能夠太分散。星系共識(shí)鼓勵(lì) WAN 持有者將盡可能多的幣投入到共識(shí)協(xié)議中,同時(shí)也采取方式限制 WAN 的大型持有者(如交易所)對(duì)共識(shí)過(guò)程的影響,防止其控制共識(shí)過(guò)程。
2. Wanstake
定義:
· WAN:萬(wàn)維鏈的原生幣,通過(guò)鎖定在一個(gè)特定的智能合約(即共識(shí)智能合約)中轉(zhuǎn)化為 Wanstake。
· Wanstake:通過(guò)鎖定 WAN 得到,WAN 的數(shù)量越多,鎖定時(shí)間越長(zhǎng),生成的Wanstake 越多。
· 權(quán)益比率:個(gè)人持有的 Wanstake 占全部 Wanstake 的比例。
· CSC:共識(shí)智能合約(consensus smart contract)的縮寫(xiě),WAN 持有者通過(guò)將WAN 鎖定在 CSC 中獲取 Wanstake。
· H函數(shù):計(jì)算共識(shí)參與者 Wanstake 量的函數(shù)。
WAN 的持有者通過(guò)將一定數(shù)量的 WAN 鎖定在共識(shí)智能合約中去參與萬(wàn)維鏈星系共識(shí)協(xié)議。共識(shí)智能合約根據(jù)鎖定的 WAN 的數(shù)量和鎖定時(shí)間計(jì)算得到Wanstake 的數(shù)量。值得注意的是,考慮到越臨近鎖定時(shí)間結(jié)束,參與者的誠(chéng)實(shí)性和穩(wěn)定性就越高,Wanstake 的數(shù)量在鎖定時(shí)間內(nèi)并不是固定值,而是根據(jù)剩余鎖定時(shí)間發(fā)生變化。Wanstake 的持有者以正比于其權(quán)益比率(Wanstake ratio)的概率被選擇參與到共識(shí)過(guò)程中。當(dāng)參與者的鎖定時(shí)間結(jié)束后,將自動(dòng)失去參與共識(shí)的權(quán)利,共識(shí)智能合約會(huì)在一段時(shí)間之后將鎖定的 WAN返還到原始賬戶(hù)中。
如上圖所示,H函數(shù)在計(jì)算 Wanstake 的過(guò)程中具有重要作用。為達(dá)到上文提到的設(shè)計(jì)目標(biāo),H函數(shù)應(yīng)當(dāng)滿(mǎn)足以下幾個(gè)性質(zhì):
w為鎖定的 WAN 的數(shù)量。
L為鎖定時(shí)間長(zhǎng)度。
t為余下鎖定時(shí)間占全部鎖定時(shí)間的比例,鎖定開(kāi)始時(shí)為 1,結(jié)束時(shí)為 0。
攻擊抵抗分析
? Double spending attacks
在 double spending attacks 中,攻擊者希望令兩筆矛盾交易都生效,想實(shí)現(xiàn)這種攻擊只有兩種情況:(i)含有兩筆矛盾或一筆與之前生效交易相矛盾交易的區(qū)塊被確認(rèn)合法生效;(ii)出現(xiàn)含有矛盾交易的兩條合法分叉鏈。對(duì)于(i),協(xié)議要求對(duì)任何收到的區(qū)塊進(jìn)行合法性檢查,包含任何矛盾交易的區(qū)塊將被認(rèn)定無(wú)效。同時(shí)我們的 chain-based 共識(shí)只接受最長(zhǎng)鏈作為合法連,不會(huì)出現(xiàn)兩條合法分叉鏈的情況,進(jìn)而避免 double spending 發(fā)生。
? Grinding attacks
在 grinding attacks 中,攻擊者希望影響出塊者選擇過(guò)程以提高自己被選中的幾率。我們的共識(shí)中,出塊者選擇基于 random beacon和兩階段的 ULS算法,在隨機(jī)數(shù)生成過(guò)程中我們采用了門(mén)限簽名方案,任何參與者只能決定自己的簽名部分,只要有至少一個(gè)參與者是誠(chéng)實(shí)的,攻擊者就無(wú)法決定最終隨機(jī)數(shù)結(jié)果,同時(shí)只要參與者中攻擊者數(shù)量低于門(mén)限值就無(wú)法預(yù)知最終隨機(jī)數(shù)結(jié)果,所以Epoch Leader 的選擇無(wú)法通過(guò)控制隨機(jī)數(shù)生成進(jìn)行影響。在兩階段的 ULS 算法的 SMA 生成過(guò)程中,被選中的參與者只能選擇是否廣播他們的數(shù)據(jù),如果不公布將失去部分收益。而且 SMA 的生成在 SIGN 階段之前,而 Epoch Leaders 排序在 SIGN 階段之后,攻擊者沒(méi)有信息優(yōu)勢(shì)來(lái)影響 ULS 算法的選擇結(jié)果。
? Transaction denial attacks
在 transaction denial attacks 中,攻擊者希望阻止一筆合法交易被確認(rèn),我們強(qiáng)調(diào)誠(chéng)實(shí)節(jié)點(diǎn)不會(huì)拒絕任何合法交易,所以如果要實(shí)現(xiàn) transaction denial attacks,就意味著所有的 Slot Leaders 都是惡意的。由于誠(chéng)實(shí)主體假設(shè)和 follow-the-stakerate選擇方案,攻擊概率是隨著時(shí)間以小于 1/2 的底數(shù)指數(shù)下降的,攻擊者實(shí)現(xiàn)攻擊的概率趨近于零。
? Bribery attacks
在 bribery attacks 中,攻擊者希望通過(guò)腐蝕誠(chéng)實(shí)參與者為其所用來(lái)實(shí)現(xiàn)某種惡意目的,例如實(shí)現(xiàn) double spending attacks。在我們的共識(shí)中,理性的參與者由于兩點(diǎn)原因不會(huì)接受這樣的賄賂腐蝕。一是誠(chéng)實(shí)參與者接受這樣的賄賂腐蝕而變成惡意參與者的話(huà),他將失去抵押在智能合約中的權(quán)益。二是惡意行為會(huì)損害 Wanchain的經(jīng)濟(jì)生態(tài)系統(tǒng),進(jìn)而減低 WAN的價(jià)值,參與者的 WAN就會(huì)貶值。所以理性參與者不會(huì)接受賄賂腐蝕。而且只要保證誠(chéng)實(shí)主體,briberyattacks 也無(wú)法影響到共識(shí)的安全性。
? Long-range attacks
在 long-range attacks[15]中,攻擊者希望從鏈上一個(gè)之前較遠(yuǎn)的位置開(kāi)始重構(gòu)一條合法鏈,這樣就可以使鏈上數(shù)據(jù)與當(dāng)前真實(shí)狀態(tài)不同,進(jìn)而實(shí)現(xiàn)雙花攻擊等。協(xié)議中我們?cè)谟行ф溕显O(shè)置了一些檢測(cè)點(diǎn)(check point),隨著鏈不斷延長(zhǎng),在最后一個(gè)檢測(cè)點(diǎn)之前的數(shù)據(jù)將不再改變,即新出現(xiàn)的檢測(cè)點(diǎn)的區(qū)塊無(wú)效,所以攻擊者無(wú)法實(shí)現(xiàn) long-range attacks。
? Nothing at stake attacks
在 nothing at stake attacks 中,參與者會(huì)在多個(gè)分叉上產(chǎn)生新的區(qū)塊,無(wú)論最終哪個(gè)分叉被確認(rèn)有效都將獲得收益。由于 PoS 共識(shí)中生成區(qū)塊幾乎沒(méi)有消耗,這種攻擊就很容易發(fā)生,而在 PoW 共識(shí)中,礦工不會(huì)浪費(fèi)算力來(lái)在不同分叉上產(chǎn)生區(qū)塊,這樣很可能讓他完全得不到收益。同時(shí),這種攻擊常發(fā)生在某一時(shí)間段或某一區(qū)塊高度有多個(gè)合法出塊者的情況下,例如通過(guò) VRF 進(jìn)行出塊者選擇的時(shí)候,然而在我們的共識(shí)中,某一時(shí)間段內(nèi)只有唯一合法出塊者,幾乎不會(huì)出現(xiàn)分叉情況,參與者就沒(méi)有動(dòng)機(jī)發(fā)動(dòng) nothing at stake attacks。
? Past majority attacks
在 past majority attacks 中,攻擊者希望腐化某些之前的參與者以取得在過(guò)去某段時(shí)間里的權(quán)益優(yōu)勢(shì)。我們假設(shè)當(dāng)前的誠(chéng)實(shí)權(quán)益大多數(shù)是合理的,而為了在past majority attacks 中獲益,攻擊者需要與過(guò)去某一時(shí)間的大部分權(quán)益持有者重新產(chǎn)生區(qū)塊來(lái)代替之前已有的區(qū)塊,這就類(lèi)似于前面提到的 long-range attacks,會(huì)與檢測(cè)點(diǎn)(checkpoint)產(chǎn)生沖突,這種新產(chǎn)生的區(qū)塊會(huì)因?yàn)槲恢迷缬跈z測(cè)點(diǎn)而不被接受,所以我們的共識(shí)不會(huì)受到 past majority attacks 影響。
? Selfish-mining
在 selfish-mining 中,參與者會(huì)私下保留一個(gè)合法區(qū)塊然后提前去構(gòu)造下一個(gè)合法區(qū)塊,由于可以獲得計(jì)算時(shí)間上的優(yōu)勢(shì),這種情況常發(fā)生在 PoW 共識(shí)中,然而在PoS中尤其是我們的共識(shí)之中無(wú)需如此。由于Slot Leaders是在一個(gè)epoch開(kāi)始時(shí)由 random beacon 和 Epoch Leaders 產(chǎn)生的秘密信息決定的,無(wú)論參與者是否廣播新的區(qū)塊都無(wú)法影響下一個(gè) slot 中出塊者的選擇,所以私下保留當(dāng)前的合法區(qū)塊是無(wú)利可圖的。事實(shí)上,如果超出了一個(gè) slot 時(shí)間窗口沒(méi)有廣播新的合法區(qū)塊的話(huà),出塊者很可能失去此區(qū)塊的收益。所以發(fā)起 selfish-mining 是不理智的,及時(shí)發(fā)生也不會(huì)影響我們共識(shí)的安全性。
星系共識(shí)優(yōu)勢(shì)
1.可證明安全
星系共識(shí)基于 Ouroboros的可證明安全模型設(shè)計(jì),在保留其可證明安全共識(shí)框架下對(duì)核心密碼組件進(jìn)行了設(shè)計(jì)提升。
2.自然分叉概率低
星系共識(shí)采用 ULS(unique leader selection)算法進(jìn)行出塊者選擇,與 VRF 算法不同,ULS 算法在保持出塊者匿名的同時(shí),保證了出塊者的唯一性。
3.安全隨機(jī)性引入
隨機(jī)性的引入對(duì)于保證共識(shí)的安全性有著積極的影響,星系共識(shí)利用基于門(mén)限簽名方案的 random beacon 引入隨機(jī)性,而 random beacon 的安全性由兩方面保證:一是只要至少 1 名參與者是誠(chéng)實(shí)的即可保證安全,降低了誠(chéng)實(shí)主體假設(shè)要求;二是保證 G.O.D (Guaranteed Output Delivery)性質(zhì),即使部分參與者掉線(xiàn),只要在線(xiàn)參與者數(shù)量高于預(yù)設(shè)門(mén)限值就可以成功執(zhí)行。
4.合理的權(quán)益設(shè)計(jì)
PoS 共識(shí)中合理的權(quán)益設(shè)計(jì)是一個(gè)很有意義的考量,為保持參與者的穩(wěn)定性和活性,我們要求參與者將自身持有的 WAN鎖定在一個(gè)特殊的智能合約之中以參與共識(shí),鎖定 WAN的數(shù)量、鎖定時(shí)間和剩余鎖定時(shí)間比例都是用于計(jì)算參與者權(quán)益值的參數(shù),這樣的設(shè)計(jì)在 account model 下模擬了幣齡的概念同時(shí)保證了星系共識(shí)參與者的穩(wěn)定性。
5.完整的委托機(jī)制
星系共識(shí)采用我們?nèi)略O(shè)計(jì)的非交互高效 ECDSA委托簽名算法,實(shí)現(xiàn)了完整的委托機(jī)制,限制簽名空間且與現(xiàn)有區(qū)塊鏈簽名體系相兼容,保證了任何WAN 持有者皆可參與共識(shí),提升了 Wanstake 的活性。
6.清晰可信的經(jīng)濟(jì)激勵(lì)模型
星系共識(shí)擁有對(duì)共識(shí)參與者完整的經(jīng)濟(jì)激勵(lì)模型,由于參與者在鏈上進(jìn)行信息交互,他們的行為也將被反映在鏈上,我們引入活性系數(shù)的概念來(lái)評(píng)估參與者的表現(xiàn),活性越高收益越多,這樣的經(jīng)濟(jì)激勵(lì)機(jī)制是清晰明確并令人信服的。
評(píng)論