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