Byteballの未来

DAGベースの暗号通貨 Byteballの情報を発信

Byteballウォレットのマルチシグ機能について。

f:id:taigok:20171223161602j:plain

今回は、Byteballウォレットのマルチシグウォレット機能について紹介します。今回のマルチシグ機能の検証にあたり、@hirorobyteさん、@yurwoさんにご協力いただきました。

マルチシグとは

暗号通貨を送る際に、複数(マルチ)の秘密鍵を用いて署名(シグネチャ)が必要な技術を指します。Byteballの公式ウォレットもマルチシグに対応しており、高いセキュリティのウォレットや複数人管理のウォレットを作成することができます。

 

なぜ高セキュリティなのか

簡単に説明するために、秘密鍵」を「暗証番号」と置き換えます。

ウォレットが入っているPCやスマホが仮にハッキングにあって暗証番号が盗まれてしまったとします。シングルシグのように暗証番号が1つしかない場合、盗まれると自分の所有している暗号通貨が別のアドレスに移されてしまいますが、マルチシグの場合は複数のデバイスにある暗証番号が必要なため、容易に盗難できません。

ハッカーが同じ人物のPCやスマホに同時に侵入することはとても難しいため高いセキュリティを持った仕組みとなっています。

 

複数人で管理が可能

またマルチシグは3of5といったように複数の署名のうち、一定数の署名があれば暗号通貨を送ることができるようになるという機能があります。3of5の場合は5つのうち3つの鍵での署名が集まればトランザクションが作成できるということです。

これによって複数人で1つのアドレスを管理し、その中の数人が署名をしないと送金できないといったことが可能になるため、悪意を持った1人が持ち出すことはできません。実際にBytebalコミュニティでは、3of5(Byteballを送る際に、5人のうち3人の署名が必要)のマルチシグアドレスを作成し、コミュニティ基金を運用しようとしています。

 

Byteballウォレットでのマルチシグアドレス

では実際にByteballでマルチシグの機能を紹介します。

まず、マルチシグアドレスを作成するには、自分の所有する他端末や、複数人管理の場合は各人の端末とペアリングをしている必要があります。LINE でいう友達追加といったところでしょうか。ペアリングの方法については下記。

Byteballウォレット間のペアリングについて。 - Byteballの未来

 

マルチシグウォレットの作成方法 

1. ADD WALLETを選択

f:id:taigok:20171221224159j:plain

 

2. MULTIDEVICE WALLETを選択
f:id:taigok:20171221224111j:plain

 

3.マルチシグウォレット作成依頼を送信

ウォレットの名前を入力し、TOTAL NUMBER OF CO-SINERSとREQUIRED NUMBER OF SIGNATUREを入力し、連署者(ペアリングしたデバイス)を追加し、「CREATE ◯-OF◯ WALLETをクリック

新規に作成するマルチシグウォレットにおいて、何人のうち(TOTAL NUMBER OF CO-SINERS)、何人(REQUIRED NUMBER OF SIGNATURE)の署名が集まればトランザクションを作成できるかという設定になります。下記の例だと、3人のうち、2人以上の署名が集まれば送金できるということになります。

f:id:taigok:20171223101744j:plain

連署者は最大6個までのようです。

f:id:taigok:20171223163307j:plain

 

4. マルチシグウォレット作成

下記画面になれば、連署者にリクエストが送信されています。リクエストを全連署者に承認をしてもらう必要があります。
f:id:taigok:20171223120059j:plain

 

連署者のウォレットには下記のようなマルチシグウォレット作成の承認依頼がくるので、YESをクリックします。
f:id:taigok:20171223120032j:plain

 

5. マルチシグウォレット作成完了

連署者の承認が得られれば、マルチシグウォレットが作成されます。f:id:taigok:20171223120859j:plain

 

マルチシグウォレットでByteballを送信

1. 送金額、送信先アドレス、連署者を選択

ウォレットは2of3で作成したので、3人のうち2人以上から承認を得られればトランザクションを作成することができます。連署者は選択式で、この例の場合トランザクション作成者は自動的に署名したことになり、あと1人以上を選択することで送金をするための承認依頼を送ることができます。
f:id:taigok:20171223122805j:plain

 

下記のように3人を選択すると、
3of3のトランザクション承認依頼を作成することができます。
f:id:taigok:20171223122805j:plain

 

トランザクション承認依頼が選択した連署者に送信されます。f:id:taigok:20171223143316j:plain

 

2. 連署者のトランザクション承認

連署者は承認依頼に対して承認をします。

f:id:taigok:20171223143630j:plain

 

3. トランザクションの確認

連署者からの承認を得られるとトランザクションが作成され、Confirmedになれば送信完了です。
f:id:taigok:20171223143907j:plain

 

まとめ

Byteballウォレットのマルチシグ機能を試してみました。セキュリティのために複数署名を必要にしたり、複数人で管理するウォレットを作成したりととても便利な機能です。個人的にはトランザクション作成者が署名依頼先を選択するというのは意外でした。

また、マルチシグでのトランザクション手数料がシングルシグでのそれよりも高くなっているようです。Byteballのトランザクション手数料はDAGに格納するデータ量に比例するので、マルチシグでのトランザクションの方がデータが大きいということになるのでしょうか。

マルチシグを試してみたいという方は、ペアリングコードを送っていただければ対応します。