昨日、渋谷のコイネージさん(=ユナイテッドさん)のオフィスにてこんなイベントをやっていました。
ここで私は以下の2つのテーマで登壇したのですが
- NEMブロックチェーンの『いろは』(代打)
- 経済学的観点から見たNEMブロックチェーンのコンセンサス・アルゴリズム
登壇で話ししたことをブログで書き起こしてほしいとの声をいただいたので、書き起こしておきます。
初心者でもわかるように、とあるとおり、かなり厳密なところは端折っていたりもありますがご容赦ください。
NEMブロックチェーンの『いろは』
これは諸事情により代打でした。
なぜNEMを選んでいるか
ここは自分用にスライドを作らせていただきました。
ブロックチェーンにプログラムをデプロイするいわゆる「スマートコントラクト」というものは改ざんされないプログラムである一方でアップデートもできないものが多く、これは経済学的に交渉コスト∞の不完備契約であるというお話をしました。
一方でNEMはスマートコントラクトを搭載せず、再設定可能なマルチシグを利用してブロックチェーンを活かすアプローチをとっており、これは完備契約(交渉コストが気にならないため、不完備性を交渉により解消できる)だということです。
サービスを市場に投入するまでの時間
以降は作っていただいたスライドです。
まず、いわゆるスマートコントラクトプラットフォームと呼ばれる分散型台帳は、上部灰色のフローとなります。
nemは下部のフローとなります。
上部右から二番目に「コントラクト監査」というものがありますが、例えばQuantstampのように、スマートコントラクトプログラムを監査する企業が存在します。
他にも、Tezosのように、スマートコントラクトを関数型言語でプログラミングすることによって形式検証を容易にするアプローチをとっているプラットフォームも存在します。
これは先程も申し上げたように、一度デプロイするとアップデートもできないプラットフォームが多く、やり直しが聞きづらいので一発でバグを排除する必要があるからです。
一方でnemは不完備契約の部分はなく、そのようなコストを節約してサービスを市場に投入できるため、コストを節約するという目的には適していると言えます。
アグリゲートトランザクション
ここから、NEM2で追加される機能の話になりました。
アグリゲートトランザクションでは、複数のトランザクションを配列的に保持して一括で執行できるようになり、スワップのような複雑なロジックをトラストレスに行うことができます。
マルチレベルマルチシグ
マルチシグ設定が、多階層的に組めるようになります。
クロスチェーントランザクション
アトミックスワップ機能が提供されます。
使い方
- Aliceはまず秘密の値xを作成し、ハッシュ関数fを使ってそれのハッシュ値hを作ります。
- AliceはチェーンAにてhをつかってBobにアセットを送信します。
- BobはチェーンBにて、Aliceの作ったhをつかってAliceにアセットを送信します。
- 現在、どちらが送ったアセットも宙に浮いている状態で、誰も引き出すことができません。
- Aliceは自分の作ったxを使って、Bobに送られてきたアセットを開封します。
- Bobにはxがバレます。
- Bobはxを使って、Aliceに送られてきたアセットを開封します。
このように、チェーンをまたいでもトラストレスにスワップ(=アトミックスワップ)するための機能が提供されます。
ハッシュ関数fは何種類か選択できるので、理論上はどのブロックチェーンともアトミックスワップができます。
スライドを見た個人的感想
nemは、エンタープライズが手軽にブロックチェーンを活用するのに適しているなと思いました。
経済学的観点から見たNEMブロックチェーンのコンセンサス・アルゴリズム
本職プレゼンのほうです。
ブロックチェーンの上に、分散型台帳技術=DLTという概念を用意し、そこでブロックチェーンとPBFTをまず整理します。
(一般的には)こういう違いがあるよー、そしてnemはブロックチェーンのほうだよー、という話をしました。
PoWやPoSブロックチェーンの仕組み
この記事と同じことを説明したので、詳しくはこちらの記事御覧ください。
Proof of Importance
このページについていけなかったいう声をいただき、あまり反省はしていませんが、Importance計算に使われているページランクアルゴリズムについて少し説明をしました。
整理
整理するとこういう表になります。
PoS,PoIよりもPoWに有効な攻撃
PoWよりもPoS,PoIに有効な攻撃
nemはそれなりに対策が考えられてますよーと。