賬戶(hù)治理組件:區(qū)塊鏈多方協(xié)作治理的“安全基石”



為了便于分布式協(xié)作,賬戶(hù)治理組件通過(guò)引入治理者的角色,來(lái)管理重置用戶(hù)私鑰。變更后的賬戶(hù)治理過(guò)程如下:
用戶(hù)生成新的私鑰,并基于新的私鑰生成對(duì)應(yīng)的公鑰賬戶(hù)地址。
用戶(hù)將新的賬戶(hù)地址交給治理者(治理者或關(guān)聯(lián)賬戶(hù)),由治理者發(fā)起私鑰重置提案,并按照預(yù)訂的規(guī)則進(jìn)行決策。
治理者開(kāi)始投票,可以選擇贊成,也可以反對(duì)。在投票指定的有效時(shí)間內(nèi),贊成的票數(shù)超過(guò)閾值,視為投票通過(guò);否則,投票未通過(guò)。
當(dāng)投票通過(guò)后,治理合約將自動(dòng)將新的賬戶(hù)地址和內(nèi)部賬戶(hù)地址形成映射,并更新雙層賬戶(hù)映射表,完成私鑰重置。


賬戶(hù)治理組件易于集成。支持通過(guò)合約代碼發(fā)布、合約代碼繼承和應(yīng)用、Java SDK集成等多種方式來(lái)引入和使用,包含了以下核心組成:
合約代碼。當(dāng)前版本提供了基于Solidity語(yǔ)言實(shí)現(xiàn),完全適配FISCO BCOS。理論上可在任何支持EVM虛擬機(jī)的區(qū)塊鏈系統(tǒng)上運(yùn)行。 Java SDK。通過(guò)集成Java SDK以后,可以適配和調(diào)用賬戶(hù)治理的所有合約接口。此外,進(jìn)一步對(duì)使用接口進(jìn)行簡(jiǎn)化和封裝,符合Java程序員的使用習(xí)慣。 技術(shù)文檔和代碼示例。提供了完善的技術(shù)文檔。還提供了基于存證和積分轉(zhuǎn)賬場(chǎng)景的兩個(gè)代碼示例demo,均包含了合約和SDK開(kāi)發(fā)實(shí)例代碼。
無(wú)論是合約還是SDK,賬戶(hù)治理組件都具備可插拔,可擴(kuò)展,對(duì)業(yè)務(wù)侵入性小,接入成本低的優(yōu)點(diǎn)。
支持國(guó)密。賬戶(hù)治理組件利用Solidity智能合約所提供的圖靈完備的計(jì)算能力,提供自洽的賬戶(hù)治理能力,可同時(shí)支持國(guó)密與非國(guó)密,滿(mǎn)足各類(lèi)復(fù)雜的加密場(chǎng)景。 可插拔設(shè)計(jì)。賬戶(hù)治理組件既可以被集成到區(qū)塊鏈底層協(xié)議中,也可以作為組件被應(yīng)用到業(yè)務(wù)系統(tǒng)層。 易于擴(kuò)展。賬戶(hù)治理組件的合約代碼采取了插件化的設(shè)計(jì),可以隨時(shí)基于特定的業(yè)務(wù)需求來(lái)繼承或重寫(xiě)其中的合約函數(shù)。


上圖中,粉色部分為一些基礎(chǔ)的工具合約:
WEBasicAuth:提供權(quán)限管理的基礎(chǔ)功能,比如合約屬主校驗(yàn)和屬主轉(zhuǎn)移 LibBoardVote:提供了投票功能庫(kù),支持投票功能。 WEBoardVoteGuard:依托LibBoardVote,抽象并對(duì)外提供了多個(gè)投票相關(guān)的接口。 BaseAccount:基礎(chǔ)賬戶(hù),維護(hù)賬戶(hù)狀態(tài)和控制權(quán)限等
藍(lán)色部分為賬戶(hù)及相關(guān)的實(shí)現(xiàn)合約:
UserAccount:管理和存儲(chǔ)了普通賬戶(hù)重置策略、關(guān)聯(lián)投票賬戶(hù)及投票信息等。 WEGovernance:管理和提供了治理者相關(guān)的治理委員會(huì)成員、投票信息等。 AccountManager:維護(hù)了外部賬戶(hù)與普通用戶(hù)賬戶(hù)的映射關(guān)系,并提供了相關(guān)的接口。


即刻使用
上述優(yōu)化及功能所涉及的最新代碼和技術(shù)文檔已同步更新,歡迎體驗(yàn)和 star 支持。如需咨詢(xún)技術(shù)問(wèn)題,歡迎關(guān)注本公眾號(hào),對(duì)話(huà)框回復(fù)【小助手】進(jìn)技術(shù)交流群。
文檔地址:
GitHub代碼庫(kù)地址:
https://github.com/WeBankBlockchain/Governance-Account
gitee代碼庫(kù)地址:
如項(xiàng)目對(duì)您有幫助,歡迎點(diǎn)亮我們的小星星(點(diǎn)擊項(xiàng)目右上方Star按鈕)。 歡迎提交代碼(Pull requests)。 提問(wèn)和提交BUG。 如果發(fā)現(xiàn)代碼存在安全漏洞,可通過(guò)https://security.webank.com/上報(bào)。



