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