很多密碼學(xué)應(yīng)用要求一個(gè)可信的權(quán)威持有密鑰,但這種系統(tǒng)存在單點(diǎn)故障和密鑰托管的問(wèn)題。分布式密鑰產(chǎn)生DKG(distributed key generation)通
很多密碼學(xué)應(yīng)用要求一個(gè)可信的權(quán)威持有密鑰,但這種系統(tǒng)存在單點(diǎn)故障和密鑰托管的問(wèn)題。分布式密鑰產(chǎn)生DKG(distributed key generation)通過(guò)多方參與,計(jì)算共享的公鑰與私鑰集,解決上述問(wèn)題, 分布式密鑰的產(chǎn)生不依賴(lài)任何可信的第三方。
同理,區(qū)塊鏈作為分布式系統(tǒng),區(qū)塊鏈中的節(jié)點(diǎn)通過(guò)DKG分布式地產(chǎn)生密鑰,克服單點(diǎn)故障以及單個(gè)節(jié)點(diǎn)不可信任問(wèn)題。
在(n,t)-DKG中, n為節(jié)點(diǎn)數(shù)量,t為閾值, DKG協(xié)議允許n個(gè)節(jié)點(diǎn)共同產(chǎn)生密鑰,使得任何數(shù)量大于閾值t的節(jié)點(diǎn)子集都能使用該共享密鑰,然而任何數(shù)量少于閾值t的節(jié)點(diǎn)子集都沒(méi)有對(duì)該共享密鑰的任何知識(shí)。
在Annchain OG共識(shí)算法中,采用了可驗(yàn)證隨機(jī)數(shù)(VRF)和分布式密鑰分發(fā)(DKG),以保障在公網(wǎng)環(huán)境下公平選舉出Sequencer的潛在節(jié)點(diǎn),不定期進(jìn)行輪換。同時(shí)采用門(mén)限簽名(BLS)技術(shù)保障了委員會(huì)節(jié)點(diǎn)出塊的權(quán)威性和安全性。
本次我們將拆解DKG在Annchain中的實(shí)現(xiàn),歡迎留言拍磚。
作者介紹
Shor,Annchain核心開(kāi)發(fā)成員,畢業(yè)于中科大。負(fù)責(zé)Annchain高性能p2p網(wǎng)絡(luò)、通信與編碼、基于DAG的高效交易同步、交易執(zhí)行邏輯、wasm虛擬機(jī)智能合約平臺(tái)、rpc等模塊的研發(fā)以及系統(tǒng)優(yōu)化。
可驗(yàn)證秘密共享
可驗(yàn)證秘密共享 (verifiable secret sharing, 簡(jiǎn)稱(chēng)VSS) 是DKG的基本構(gòu)造塊 ,VSS的概念被Shamir 和Blakley引入。
(n,t+δ, t) -秘密共享:對(duì)整數(shù)n, t ,δ 滿(mǎn)足 n>=t+δ>t>=0 ,一個(gè)(n,t+δ, t) 秘密共享協(xié)議是被用于一個(gè)交易方(dealer)n個(gè)節(jié)點(diǎn)之間共享一個(gè)密鑰,使得其中任何t+δ或者更多的節(jié)點(diǎn)能夠計(jì)算密鑰s, 但是t個(gè)或更少的節(jié)點(diǎn)沒(méi)有關(guān)于s的任何信息。
δ=1的秘密共享被稱(chēng)之為閾值秘密共享(threshold secret sharing) ,記為(n,t)-秘密共享。
在一些秘密共享應(yīng)用中,客戶(hù)端需要驗(yàn)證持續(xù)的交易(deal)來(lái)避免交易方(dealer)的惡意行為。一種擁有這種可驗(yàn)證性保證的模式被稱(chēng)之為可驗(yàn)證秘密共享(verifiable secret sharing) VSS
一個(gè)可驗(yàn)證秘密共享(n,t)-VSS 模式有兩個(gè)階段(phase)組成。共享階段和重建階段
共享階段:一個(gè)交易方(dealer)在n個(gè)節(jié)點(diǎn)之間分發(fā)一個(gè)秘密,K為足夠大的密鑰空間。此階段結(jié)束之后,每個(gè)誠(chéng)實(shí)的節(jié)點(diǎn)持有分布式秘密s中的一個(gè)秘密。
重建階段:每個(gè)節(jié)點(diǎn)廣播它的秘密共享,一個(gè)重建函數(shù)用于計(jì)算秘密或者判斷出是惡意的節(jié)點(diǎn)。對(duì)于誠(chéng)實(shí)的節(jié)點(diǎn), 而對(duì)惡意節(jié)點(diǎn)可能不同于甚至沒(méi)有。
可驗(yàn)證秘密共享VSS要滿(mǎn)足兩個(gè)安全要求:
保密性(VSS-WS):一個(gè)能夠控制t個(gè)節(jié)點(diǎn)的敵人,在共享階段無(wú)法計(jì)算出s。
正確性(VSS-C):重建值應(yīng)該等于共享秘密s或者每個(gè)誠(chéng)實(shí)節(jié)點(diǎn)判斷出是惡意節(jié)點(diǎn)。
任何t+1個(gè)或者2t+1個(gè)誠(chéng)實(shí)節(jié)點(diǎn)能夠重建s,所以引入強(qiáng)正確性要求。
強(qiáng)正確性(VSS-SC):敵方用大于2t的節(jié)點(diǎn)和重建算法能重建出相同的唯一值s
進(jìn)一步的, 有的VSS模式需要更強(qiáng)的保密安全性。
強(qiáng)保密性(VSS-S):能夠控制t個(gè)節(jié)點(diǎn)的敵方,除了共有的參數(shù)之外,沒(méi)有任何關(guān)于s的信息。
同態(tài)承諾
分布式密鑰產(chǎn)生
Pedersen引入了分布式密鑰產(chǎn)生(DKG)的概念,研發(fā)了一個(gè)DKG模式。 每個(gè)節(jié)點(diǎn)運(yùn)行VSS實(shí)例,添加分布式共享(distributed shares),在沒(méi)有交易方(dealer)的情況下產(chǎn)生組合的共享密鑰。與VSS不同, DKG不需要可信方。
一個(gè)(n,t)-DKG模式包含兩個(gè)階段(phase):共享階段(sharing phase)階段和重建階段( reconstruction phase )
DKG在區(qū)塊鏈中的應(yīng)用
區(qū)塊鏈作為分布式系統(tǒng),區(qū)塊鏈中的節(jié)點(diǎn)通過(guò)DKG分布式地產(chǎn)生密鑰,克服單點(diǎn)故障以及單個(gè)節(jié)點(diǎn)不可信任問(wèn)題。在Annchain OG共識(shí)算法中, DKG與門(mén)限簽名算法(BLS)結(jié)合,DKG的密鑰作為門(mén)限簽名的密鑰,保證任意2/3的共識(shí)節(jié)點(diǎn)對(duì)一筆消息進(jìn)行門(mén)限簽名,都能夠恢復(fù)出公鑰并進(jìn)行驗(yàn)證,具有拜占庭容錯(cuò)性。(Shor)