IOST CTO Terrence Wang氏へインタビュー!コンセンサスやシャーディングなど技術的な仕組みを徹底究明!

2018/07/19・

Yuya

IOST CTO Terrence Wang氏へインタビュー!コンセンサスやシャーディングなど技術的な仕組みを徹底究明!

時価総額59位に位置するIOST(アイオーエスティー)は、スケーラビリティネットワークの非集権化に力を入れたプラットフォーム系プロジェクトです。

以前は、IOSTのCMOであるサマンサ氏にインタビューを実施させていただきました。

そして、今回は、IOSTの最高技術責任者(CTO)であるTerrence Wang氏にインタビューをさせていただくことができました。

エンジニアの方に直接お話しできる機会を活かし、IOSTのシャーディングや独自のコンセンサスメカニズムについて深く質問しました。

IOST(アイオーエスティー)プロジェクトとは?

IOSTとは、スケーラビリティとネットワークの非集権化に力を入れたプラットフォーム系のプロジェクトです。

同プロジェクトでは、ネットワーク維持作業を分担して行えるシャーディングといった技術を導入することで処理速度を改善し、スケーラビリティ問題の解決に取り組んでいます。

また、IOSTはProof of Believability (PoB)と呼ばれる独自のコンセンサスメカニズムを使用しています。

このPoBとは、ノードのネットワーク貢献度に応じてブロック承認権が与えられるという段階型のプロトコルで、ネットワークの維持力が資金や設備の整った一部の人々に偏らない仕組みになっています。

Terrence Wang氏にインタビュー!

今回インタビューに応じていただいたのは、IOSTで最高技術責任者を務められているTerrence Wang氏です。

Terrence Wang氏は米ミネソタ大学で分散型システムについて学び、その後プリンストン大学でビットコインのコーディングについて学び修士号を獲得しています。

2013年から仮想通貨・ブロックチェーンに興味を抱いていたというTerrence Wang氏は修士獲得後、米マイクロソフトやUberを経て、昨年の9月にIOSTのチームに加わりました。

コンセンサスプロトコルについて

— 本日はインタビューに応じていただきありがとうございます。今回は、IOSTの技術面について詳しく質問させてください。まずは、IOSTの目玉であるProof of Believability (PoB)について教えてください。

Terrence Wang氏(以下:テリー): 今メジャーなProof of Work (PoW)やProof of Stake (PoS)というのは、マイニング設備やトークンをたくさん持っている人が積極的にブロック承認を行えるプロトコルとなっており、ネットワークの集権化が懸念されています。

私たちのPoBは、ネットワークの非集権化にフォーカスしたプロトコルです。IOSTのノード(ネットワーク参加者)は、トランザクションの承認を行うノーマルリーグと、ブロックの生成を行うビリーバブルリーグという2つのグループに分けられます。

ノーマルリーグには、一定以上のトークンやトランザクションがあれば誰でも参加することができます。ここに属するノードは、トランザクションの承認を通してネットワークへの貢献度(SERVIと呼ばれる)を積み上げていきます。トランザクションの承認にはIOSTトークンで報酬が支払われます。

このネットワークへの貢献度(SERVI)が高ければ高いほど、ビリーバブルリーグのノードとして選出される確率が高くなります。ビリーバブルリーグでは、ブロックの生成を行うことができます。この際の報酬は、ノーマルリーグより大きいものになります。ブロックを生成したノードはSERVIを全て失い、ノーマルリーグに戻ります。このシステムを設けることで、特定のノードがブロックを生成し続けるのではなく、全員が入れ替わるようになっています。

シャーディングについて

— IOSTといえば、非集権性、それからスケーラビリティ問題の解決ですね。この問題への取り組みとして導入しているEfficient Distributed Sharding (効率分散型シャーディング / EDS)の仕組みやメリットについて教えてください。

テリー : シャーディングというのは、分散型ネットワークのノード(参加者)をシャードと呼ばれるグループに分けて、それぞれのシャードに別々の作業をさせるというシステムです。ひとつひとつのシャードが別々のブロックチェーンになっている、と考えるとわかりやすいでしょう。

こうすると、ネットワーク全体でひとつのブロックを生成するのではなく、それぞれのシャードがひとつずつブロックを生成できるため、ネットワーク全体の作業速度が飛躍的に上昇するわけです。

— なるほど。誰がどこのシャードに行く、というのはどのように決められているのですか?

ノードは無作為に割り振られるようになっています。また、ノードはだいたい1時間を目安に別のシャードに移る仕組みになっています。

分散型ランダムネスについて

— ホワイトペーパーを読んでいると、IOSTでは「ランダムな値」を出す特別なプロトコルがあるとされていますね。なぜこのようなプロトコルが必要なのでしょうか?仕組みや使用用途なども教えてください。

テリー : ランダムな数字を生み出すというのは、実は分散型システム上ではとても難しいことなんです。先ほどEDSについて解説している時にも触れましたが、ノードをシャードに移す時に、行き先をランダムに選ばなければいけません。ここで、悪意のあるノードがランダムを装って特定のシャードに移ったりできないように、ネットワーク参加者全員が「この数字はランダムだ」と確認できなければいけないのです。ここで私たちがOmnichainを基に開発したのがDistributed Randomness Protocol (分散型ランダムネスプロトコル / DRP)です。

DRPは、次のように例えるとわかりやすいです。ネットワークのノード(参加者)ひとつひとつがコイントスをしたとしましょう。それぞれのノードのコイントスの結果(表・裏)を組み合わせてひとつの大きな数字を作ります。一人一人がコイントスをした値を並べたわけですから、このひとつの数字はランダムになります。これの何が良いかというと、それぞれのノードがこの値と自分のコイントスの結果を照らし合わせることができる、ということです。誰かが一見無作為に見える数字を生成したとしても、それぞれのノードのコイントスの結果と一致しないわけです。

TransEpochとAtomixについて

— IOSTではひとつのネットワークをシャードに分割して、なおかつノードが所属するシャードを無作為に入れ替えることで公平性を保っているわけですね。「それぞれのシャードがブロックチェーン」とのことですが、シャード間での情報のやりとりというのはどのように行われているのでしょうか?

テリー: IOSTでは、一定の大きさのグループにまとめられた情報をシャード間でやり取りするTransEpoch (トランスエポック)という技術が使われています。情報をまとめて送るので作業速度が速く、まとめられた情報の中から特定のものを見つけることが難しいというセキュリティ面での利点も存在します。

また、シャード間でやり取りをする際に情報の入れ違いが起こらないよう、Atomix (アトミクス)という技術も導入しています。これは、ノード同士のトランザクションを「ちゃんとやるか、一切やらないか」はっきりさせるというものです。例えば、トークンをやり取りするとき、両者の残高や、送信額・受信額などといった情報が全て揃った時にのみ実際にやり取りが行われ、少しでも不備があった場合は何も行われない、と自動的に決められます。IOSTでは、シャード間のトランザクション全てにアトミクスを使うことで、ノード間の情報が入れ違わないようにしています。

マイクロステート・ブロックについて

— 新規ノードがネットワーク参加する際や、既存のノードがシャード間を移動する際に使われているマイクロステート・ブロックというものがありますね。この技術の仕組みや、導入するメリットについて教えてください。

テリー: ブロックチェーンには、ノードのストレージを圧迫してしまうという問題があります。例えば、ビットコインでは、ノードは1番目から最新のブロックまで全て保存しなければなりません。この膨大なデータをしなければいけないとなると、新たなノードがネットワークに参加しづらくなります。また、IOSTでも、ノードがシャード間を頻繁に入れ替わるため都度それぞれのシャードの情報を全て保存しなければいけなくなってしまいます。

そこでIOSTでは、特定のブロックをマイクロステート・ブロックと呼び、チェックポイントとして使用することにしています。新規ノードや入れ替わるノードは、このチェックポイントとなるブロックから最新のブロックまでを保存していればよいということになります。動画のストリーミングサービスなどに例えるとわかりやすいですね。途中から再生する場合は、それ以前のデータはダウンロードする必要がない、という感じです。IOSTではマイクロステート・ブロックを使用することで、ノードのストレージを80%ほど節約できます。

チームについて

— 最後に、IOSTのチームについても教えてください。

テリー: 私たちエンジニアチームは中国・北京にオフィスを構え、約20名ほどで開発を進めています。エンジニアというと自由なイメージもありますが、IOSTチームは、朝出社しみんなで会議をして、ひたすら開発を進める、という普通のワークスタイルになっています(笑)。

マーケティングチームとは、開発状況の宣伝などの際にコミュニケーションを取っています。また、プロダクトチームは、IOST上のDApps関連の展開を進めており、現在はCrypto Heroesというゲームの制作に取り組んでいます。

まとめ

今回はCTOインタビューということで技術的にかなり深い質問をたくさんさせていただきましたが、Terrence Wang氏は終始丁寧に解説してくださりました。

IOSTは日本の大学でワークショップなども行なっており、近日チームのコアメンバーが来日する予定でもあるということです。

関連リンク

ニュース/解説記事

Enable Notifications OK No thanks