OB企業錢包用例-管理人員審批技術人員部署合約— OpenBlock Operation

需求分析:

項目方創始人、出資人經常並不具備合約部署能力。所以經常會出現合約技術人員權限過大,單點作惡的問題。

雖然可以使用transfer owner的方式把合約owner權限,交給非技術出身的創始人,但是在這種場景下,項目的維護和升級依舊非常棘手。

因此我們利用OB企業錢包使用權和所有權分離的特點,測試瞭如下場景。技術人員在企業錢包中賦予普通成員身份,可以發揮使用權提出部署合約的申請,由企業錢包中的擁有所有權其他管理員審批通過後完成部署。

測試需求

  • 體驗/測試外部項目方使用OB企業錢包部署智能合約以及測試企業錢包審批流

測試目標

企業錢包可以部署合約,來吸引外部的項目方用OB 來部署項目。

如果支持了部署項目,那麼也需具備管理項目(與已部署的合約交互)的能力。

調研結果

通過OB 插件,使用remix 工具來實現合約部署。

部署合約需要簽名,錢包內部沒有入口,所以當前版本企業錢包內部不支持部署合約(需安裝外部插件remix)。

企業錢包部署步驟

  1. 安裝OB 瀏覽器插件https://openblock.com/#/download。
OB企業錢包用例-管理人員審批技術人員部署合約 — OpenBlock Operation OB企業錢包用例-管理人員審批技術人員部署合約 — OpenBlock Operation
  1. Remix 編譯合約https://remix.ethereum.org/。
OB企業錢包用例-管理人員審批技術人員部署合約 — OpenBlock Operation OB企業錢包用例-管理人員審批技術人員部署合約 — OpenBlock Operation

3. 部署

3.1 選擇網絡。

OB企業錢包用例-管理人員審批技術人員部署合約 — OpenBlock Operation OB企業錢包用例-管理人員審批技術人員部署合約 — OpenBlock Operation

選擇MetaMask 這時OB錢包會彈出授信網頁的窗口。
OB企業錢包用例-管理人員審批技術人員部署合約 — OpenBlock Operation

3.2 選擇要部署的合約點擊Deploy。
OB企業錢包用例-管理人員審批技術人員部署合約 — OpenBlock Operation

3.3 確認交易。
OB企業錢包用例-管理人員審批技術人員部署合約 — OpenBlock Operation

3.4 輸入PIN。
OB企業錢包用例-管理人員審批技術人員部署合約 — OpenBlock Operation

3.5 提交成功,進入審批流程。

OB企業錢包用例-管理人員審批技術人員部署合約 — OpenBlock Operation

部署合約流程說明

EOA 部署:

  1. 編譯合約生成ABI 和Bytecode。
  1. 生成要簽名的Data。
  1. EOA 賬戶簽名
  1. 發送交易。

OB 錢包EOA 部署:

  1. 編譯合約生成ABI 和Bytecode。
  1. 生成要簽名的Data。
  1. OB 錢包簽名
  1. 發送交易。

加黑標註了流程中不一樣的步驟,如果使用企業錢包部署,則需要企業錢包的多簽審批。

OB 內部待支持功能

  1. 支持輸入ABI 和Bytecode 或者Data 來生成一筆部署交易(用於部署合約)。
  1. 支持外部合約的交互(用於管理合約)類似Gnosis 輸入合約地址及ABI 來執行一筆鏈上交互。
    OB企業錢包用例-管理人員審批技術人員部署合約 — OpenBlock Operation

測試結果

本次測試結果顯示,外部項目方安裝OB錢包插件+remix第三方合約部署插件後,可以如傳統EOA錢包一般部署智能合約。

團隊成員在企業錢包內部發起審批時,需獲得大多數管理人的批准,方可進行合約發起、部署等操作,因此可滿足市場上大多數團隊多人公管的簽名需求。