# OpenBlockエンタープライズウォレットの使用例：
技術者のコントラクト実装に対する管理者の承認


By [OpenBlock Operation ](https://paragraph.com/@openblock-operation) · 2023-06-05

---

**要件分析：**

プロジェクトの創設者や投資家は、しばしばコントラクトを実装する能力を持っていません。そのため、コントラクトの開発者が過度な権限を持ち、悪意ある行動を起こすことがしばしばあります。

コントラクトのオーナー権限を、技術的バックグラウンドを持たない創設者に移譲する『オーナーの移転』という方法もありますが、このような場合、プロジェクトのメンテナンスとアップグレードは困難を極めます。

そのため、OpenBlockエンタープライズウォレットの使用権とオーナー権の分離を活用し、以下のようなシナリオをテストしました。技術者はエンタープライズウォレット内で一般メンバーの身分を与えられ、使用権を活用してコントラクトの実装を要求します。実装はエンタープライズウォレット内のオーナー権を持つ他の管理者による承認後に完了します。

**テスト要件：**

エクスペリエンス/テスト

外部のプロジェクトチームがOpenBlockエンタープライズウォレットを使用して、スマートコントラクトを実装し、エンタープライズウォレットの承認フローをテストします。

**テスト目標：**

エンタープライズウォレットがコントラクトを実装し、外部のプロジェクト関係者がOpenBlockウォレットを使用してプロジェクトを実装することが可能になることを目標とする。プロジェクトの実装がサポートされる場合（実装済みコントラクトとの連携を含む）、管理能力を備えるようにすること。

**調査結果：**

OpenBlockプラグインとRemixツールを使用してコントラクトの実装が可能です。コントラクトの実装には署名が必要であり、ウォレット内にそのための内部インターフェースがないため、現在のバージョンのエンタープライズウォレットでは内部的なコントラクトの実装はサポートされていません（外部のRemixプラグインのインストールが必要）。

エンタープライズウォレットの実装手順

**1.OpenBlockブラウザ拡張機能をインストールする**

以下のURLからダウンロードしてください：[https://openblock.com/#/download](https://openblock.com/#/download)

![](https://storage.googleapis.com/papyrus_images/c2edb0cc61ee798aa151bc3cbfd66bef4a9cb67a03bef34302af692a3c8992b1.png)

**2.Remixを使用してコントラクトをコンパイルする**

以下のURLからRemixにアクセスしてください：[https://remix.ethereum.org/](https://remix.ethereum.org/)

![](https://storage.googleapis.com/papyrus_images/eeb46ca59d756447b606ea864baed3ae719aeae8e1bc76a44d77093c25f2aa56.png)

**3.実装**

**3.1 ネットワークの選択**

![](https://storage.googleapis.com/papyrus_images/b52aa2c22e150f0fe530c4033f710bd1d66c17d1a509b8422857bc6dd377a642.png)

MetaMaskを選択すると、OpenBlockウォレットは受信ウェブページのポップアップを表示します。

![](https://storage.googleapis.com/papyrus_images/cc9779f3dc331bdcb4d95e513305ba12ca63db854f7df484578126828d982b82.png)

**3.2 実装するコントラクトを選択し、Deploy をクリックする**

![](https://storage.googleapis.com/papyrus_images/89cccc21b5c711890875ff59c6c297d1331c027de1054c1b94a71c6fb32cb433.png)

**3.3 トランザクションを確認する**

![](https://storage.googleapis.com/papyrus_images/909cc8795d37655857de56e20b92919653d4849e1bf28792233cd6102f2f6a21.png)

**3.4 PINを入力する**

![](https://storage.googleapis.com/papyrus_images/68fe92604c9d8a282070494cdd7c3f545193f70c535d84b8a951a2f4144ef2e4.png)

**3.5 提出成功。承認プロセスに入ります。**

![](https://storage.googleapis.com/papyrus_images/d1a4e2f2f8e53d28ee794f045613de9ace7ac995c0504e7167b2698a654a8c40.png)

コントラクト実装の手順

EOA実装

1.コントラクトをコンパイルしてABIとバイトコードを生成

2.署名するためのデータを生成

3.**EOAアカウントで署名**

4.トランザクションを送信

※EOAとは外部所有アカウント（Externally Owned Account）の略称

\*\*

\*\*OpenBlockウォレットのEOA実装

1.コントラクトをコンパイルしてABIとバイトコードを生成

2.署名するためのデータを生成

3.**OpenBlockウォレットで署名**

4.トランザクションを送信

\*\* \*\*上記手順で、黒く太字でマークされている箇所があります。エンタープライズウォレットを使用して実装する場合、この箇所ではエンタープライズウォレットのマルチシグ承認が必要です。

\*\* OpenBlockウォレットでのサポート予定の機能\*\*

1.ABIとバイトコードまたはデータを入力して実装トランザクションを生成する機能（コントラクトの実装に使用）

2.外部コントラクトとのインタラクションをサポートする機能（コントラクトの管理に使用）- Gnosisのように、コントラクトのアドレスとABIを入力してオンチェーンのインタラクションを実行する機能です。

![](https://storage.googleapis.com/papyrus_images/85e66de892f2ccef5ec553db5276d26716eeb52722232c46b903949d1ff510d0.png)

**テスト結果**

テスト結果は次の通りです。

OpenBlockウォレットのプラグインとRemixのサードパーティのコントラクト実装プラグインをインストールした後、外部のプロジェクトチームはOpenBlockウォレットを使用してスマートコントラクトを実装することができました。

エンタープライズウォレットのチームメンバーは、内部で承認を開始する際には大多数の管理者の承認を必要とします。その承認を得た後に、コントラクトの提出や実装などの操作を行うことができます。したがって、この方法は市場に存在するほとんどのチームのマルチシグ署名要件に適合しています。

---

*Originally published on [OpenBlock Operation ](https://paragraph.com/@openblock-operation/openblock-4)*
