Symbol(NEM)に備わっている機能にマルチシグアカウントというものがあります。
マルチシグアカウント
マルチシグアカウントは、あらかじめ定めた連署人アカウントのうち、一定数の承認がないと送金などの操作が有効とならないアカウントです。
これにより、大切な共有資産などの使い込みといった内部不正などからアカウントを守ることができ、セキュリティを高めることが可能となります。
契約書などのファイルのハッシュ値(ファイルの指紋のようなもの)を、上記イメージのように複数人で承認して、ブロックチェーンに書き込むことで、ワークフローを効率的に行うことができる上、ドキュメントの正当性を示すことができます。
他にもマルチシグアカウントを活用することで、ブロックチェーンの利用の幅を拡げることができます。(これに関してはまた別記事で紹介します)
ここではSymbolのデスクトップウォレットを使って、マルチシグアカウントの作成と、マルチシグアカウントからの送金のやり方を紹介したいと思います。
0. アカウントの準備
マルチシグアカウントを作成するために上記のように3つ、アカウントを用意して、テスト用の通貨を入手しておいてください。また、各アカウントから1回送金してください。
これらの準備は、トークン発行の記事の「9.1アカウントの追加」、「3. テストネットの通貨を入手」、「9.3 モザイクの送信」を参照してください。
この例では、「daoka-test1」、「daoka-test2」がマルチシグアカウントの連署人、「daoka-multisig」がマルチシグアカウントとなります。
1.マルチシグアカウントの作成
まず操作するアカウントをマルチシグアカウントに変換するアカウント(daoka-multisig)にします。
選択したら、左メニューから「Multisig」を選択肢、マルチシグ管理画面に遷移します。
連署人を追加するには「Add a cosignatory」をクリックします。
連署人にするアカウントのアドレスまたは公開鍵を入力し、「+」をクリックします。
連署人にするアカウントを追加したら、「New Min. Approval」と「New Min. Removal」を設定します。
New Min. Approvalは送金などの操作が有効にするために必要な署名者数となります。この例では、連署人アカウント2に対して2人のアカウントの署名を集める必要があります。
New Min. Removalはこのマルチシグアカウントから誰かを削除する場合に必要な署名者数を設定します。この例では1人の署名で削除できることを示します。
これらを設定したら、「Send」をクリックします。
2. 連署人追加のオプトイン
マルチシグアカウントの連署人に指名されたアカウントは、そのマルチシグアカウントの連署人になることを承認します。
右上のアカウント名が表示されている部分をクリックすると、アカウントの切替を行うことができるので、連署人候補のアカウントを選択します。
連署人候補アカウントのホーム画面の「Partial」をクリックすると、このアカウントの署名待ちトランザクションの一覧が表示されます。
ここでは、マルチシグアカウントの作成のトランザクション(オレンジの枠)が表示されています。このトランザクションを署名することで連署人になることを受け入れることになります。
オレンジの枠をクリックすると以下のような署名画面が表示されます。
トランザクションの内容を確認して、問題がなければ、パスワードを入力して、「confirm」をクリックします。
これで、マルチシグアカウントの連署人受け入れのための署名ができました。
もう一つの連署人候補のアカウントに対しても同様の操作を行い、連署人候補全員の署名が揃うとマルチシグアカウントに変換されます。
3. マルチシグアカウントからの送金
マルチシグアカウントに変換したら、実際に送金してみましょう。
ですが、マルチシグアカウントの送金画面を表示すると以下のように操作できないようになっています。
マルチシグアカウントの送金などの操作は連署人アカウントから行います。
操作するアカウントをマルチシグアカウントの連署人アカウント(daoka-test1)に切り替えて、送金画面に遷移します。
連署人アカウントの送金画面に遷移すると、「FROM」の欄が切り替えられるようになるので、マルチシグアカウントを選択します。
あとは今まで同様、送金先、送付するモザイクの種類・数量、メッセージを設定して、「Send」をクリックします。
4. トランザクションの承認
通常にアカウントでは、これで1分ほどすればトランザクションが承認され、送金が完了しますが、このアカウントではもう1つのアカウントの承認がないと、送金が完了しません。
操作するアカウントをもう一つの連署人アカウントのものに切り替えます。
もう一つの連署人アカウントのホーム画面に遷移したら、「Display multi-signature account transactions」をクリックします。
すると、アカウントを選択できるようになるのでマルチシグアカウントを選択します。そして、「Partial」タブを選択する、先ほどの承認待ちの送金トランザクション(オレンジ)が表示されています。
送金トランザクションを選択すると、先ほどの連署人追加と同じような署名画面が表示されます。
内容を確認して、問題がなければパスワードを入力して、「Confirm」をクリックします。
これで、必要な署名が揃ったので、ほどなくしてトランザクションが承認され送金が完了します。
まとめ
このようにして、Symbol(NEM)ではマルチシグアカウントの作成して、複数アカウントの署名をもって、送金を行うことができます。
マルチシグアカウントを活用すれば、会社の業務フローを安全に効率化も行うとこもでき、新型コロナウイルスをきっかけに急速に進むことになるテレワーク(リモートワーク)にも役立てることが可能です。
Symbol(NEM)にはウォレットだけでなく、API/SDKも備わっているので、自社や顧客のシステムにマッチした形でマルチシグアカウントを活用した業務システムを開発することも可能です。
Opening LineではSymbol(NEM)を活用したサービスの開発、コンサルティングを行っております。Opening LineのSymbol(NEM)の取り組みの詳細は下記をご覧ください。
ブロックチェーン・NEM・Catapultを活用して目指すところOpening LineはNEMブロックチェーンを活用したサービスの開発、実証実験及びセミナーのサポートを行っている日本でも数少ない企業です。 medium.com
ブロックチェーンを使ったサービスをご検討の方はお気軽にお問い合わせください。
担当 佐々木: info@opening-line.co.jp