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



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


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


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


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



