コンソーシアム型ブロックチェーン運用モデル

Takanobu ()
コンソーシアム型でポイントをブロックチェーン運用する場合に、
ユーザ所有の暗号鍵(おそらくショップが代理で保有している)を他の店舗に教えたくない。
といった要求があるかと思います。
また、コンソーシアムからすると、共有財産であるポイントを1ショップに無尽蔵に使ってほしくない。
といった要望もあるかもしれません。

ここでは、そういったコンソーシアム型のブロックチェーン運用についての議論を進めます。

Takanobu ()
まず、コンソーシアムアカウントの定義、と言いたいところですが、
一番最初に作るのはショップになります。(後から追加も可能です)

shop1
shop2
….

これはふつうに定義していきます。ショップの数は有限個とします。
次にコンソーシアムアカウントの作成

bankwallet
bankuser

これは、ポイントを持つ実態(bankwallet)と、操作するアカウント(bankuser)に分けま す。
何故、分けるのか?それはショップ側からのポイント供給依頼を承認する権限をbankuserに持たせたい ためです。

最後にコンシューマの定義です。

consumerwalletX
consumeruserXY

コンシューマの数は無限個(X)とします。
どの店舗で会員になったコンシューマなのかをYで表します。
実態はconsumerwalletで管理し、操作するユーザは店舗の数分作成します。

アカウント構成はここまでです。
後々ショップ側のポイント転売用としてshopresell というアカウントも考えますが、これはまた別の話。

(つづく)

Takanobu ()
次に、手数料対策として、以下のウォレットにxemを送金します。
なお送金元はマスタアカウントとします。

bankwallet
consumerwalletX
shopY

bankwallet には同時にマスタアカウントからpoint単位となるMosaicを送信します。
次はマルチシグのコンバートを行うので、いったんスリープ zzZ。

(つづく)

Takanobu ()
次にマルチシグのコンバートです。

署名者をbankuserとしてbankwalletをマルチシグにコンバートします。
署名者をconsumeruserXYとして、consumerwalletXをマルチシグにコンバートします。

マルチシグの追加、最小署名者数を変更するため、再び15秒スリープ zzZ

(つづく)

Takanobu ()
久しぶりの追記です。

consumerwalletX の最小署名者数を1に変更します。署名者はconsumeruserXY
同じタイミングで、bankwallet の署名者にshopYを追加しておきます。

これらの処理は同じブロック内でも問題ありません。

ここで20秒ほどスリープ。

最後に、bankwallet 最小署名者数を2で固定します。署名者はbankuserとshopY
これにより、コンソーシアムが持つポイントを申請者shop と 承認者 bank で役割分担できるようになります。

以上で、コンソーシアムのアカウント構成のひな形ができました。
あとは、consumerwallet を使えるconsumeruser、bankwallet を使える shopをどんどん追加していくだけです。


なんとなくマルチシグのイメージがつかめましたでしょうか?
不明点などありましたら遠慮なく。

Takanobu ()
この数か月間、マルチシグが使い物になるかどうかを徹底的に検討しました。
マルチシグこそがプライベートブロックチェーンが一般的なクラウドdbに勝るメリットだと考えたからです。

オープンな場合のブロックチェーンは分かりやすいかもしれませんが、プライベート環境でそのメリットを生かそうとした場合、
「コンソーシアムに参加する企業には可能な限りオープン」を実現しなければなりません。
一方で、それぞれの企業が持つユーザ情報は出来るだけ守らなければいけません。
この相反する条件を実現するためには、マルチシグを使いこなす他ありません。
他のブロックチェーンでは敷居が高いと思われます。(イーサリアムでフルスクラッチで組んでもいいですけど、どうダオ?)

文章だけではちんぷんかんぷんかもしれません。
半年にわたり検証環境を利用させていただきましたせめてものお礼に画像を添付させていただきます。

また機会がありましたら、オープンソースなどで検証を進めていきたいと思います。
どうもありがとうございました。

LHJ ()
Takanobu さん、こんばんわ。

約半年間、ありがとうございました。なんか2人でやってきた感じですね…。
LHJさんは、mijin を触らせていただいたことで、Blockchain の「いろはにほへと」の「いろは」位まではわかりました。
いつかどこかで、お会いできることを楽しみにしております!

もし、何かありましたら Twitter: @leonhard_jp までお気軽に Tweet してください!

本当にありがとうございました。

LHJ ()
LHJさんも mijin 実証検証開始当初より、マルチシグネチャに注目していました。まだ、日本では「マルチシグネチャ」に注目している方は少数と思われます。そういった意味でも、mijin においてマルチシグネチャの知見を高められたことは価値あると思いました。