ブロックチェーンの”スピード”をテーマに実用化までの現在地を議論 | イベントレポ
「Bitcoinは使えない」
そのように言われてきた大きな原因の一つがスピード問題です。しかし、インターネット技術がアップデートを続け、今ではクラウド技術が当たり前になったように、ブロックチェーンも複数のレイヤーが相互作用しながら技術的進化を続けています。
今回、ブロックチェーン技術のコアテーマの一つ”スピード”に焦点を当て、”スピード”において特徴的なプロジェクトに従事しているスピーカーが集まりました。
目次
ブロックチェーンスピード編①:Ethereum PoAの高速化 コンソーシアムブロックチェーンのチューニングと管理 G.U. Labs | 西村祥一
西村 祥一 Yoshikazu Nishimura | コンプス情報技術研究社代表取締役 自然言語処理・機械学習などの学術系案件の開発・コンサルティングを行うと共に、ブロックチェーン技術を用いた開発に取り組んでいる。Global Blockchain Summit2016ではブロックチェーン技術による位置情報プラットフォームを提案し、Best Innovation Awardを受賞。共著に「はじめてのブロックチェーンアプリケーション~Ethereumによるスマートコントラクト開発入門」(2017年、翔泳社)がある。 |
ブロックチェーンのトリレンマ
ブロックチェーンのトリレンマとは、以下の3要素を全て満たすことは非常に難しい、または不可能に近いことを言います。
- Decentralization(分散性)ー 分散化したい
- Security(安全性)ー 改ざん耐性が欲しい
- Scalability(スケーラビリティ)ー 速く、多く処理したい
Public Ethereumもその例外ではなく、秒間15トランザクション、レスポンス10-19秒とスケーラビリティだけが満たせないのが現状です。一方でConsortium/Private Ethereumは分散性は劣るものの、秒間1,000〜トランザクションとレスポンス1-5秒と高速な処理と安全性が実現できます。今回はEthereumの高速化におけるパフォーマンスについてお話します。
ブロックチェーンの高速とは?
高速とは何かを定義する上でレスポンスとキャパシティの2つの側面があると考えられます。
まずレスポンスにかかる時間は以下の3段階に分けられます。
- ある人がtx(トランザクション)を投げてからtxHashが帰ってくるまでの時間
- txが最初のブロックに取り込まれるまでの時間
- txがブロックに取り込まれた後、十分な数の連続ブロックが生成されるまでの時間
このうちのどれを高速化するのか見極める必要があります。
高速化というとまずキャパシティを考える人が多いのではないでしょうか。これは単位時間あたりに処理したtx数(tps)を増やせばいいので単純です。
しかし同じ4tpsでも1秒間に4tx処理するブロックチェーンと15秒間に60tx処理するものでは体感時間が大きく異なるのが問題視されています。
コンセンサスアルゴリズム
ブロックチェーンにはノード間の合意を取るためのアルゴリズムがいくつかあります。
- PoW(Proof of Work):現行のEthereumが採用している方式で計算力(hash計算)によりブロックを生成する
- PoS(Proof of Stake):次期Ethereumが採用する方式で保有ETH量によりブロックを生成する
- PoA(Proof of Authority):信頼できるノード(サーバ)だけでネットワークを構成する方式
- RAFT/PBFT:許可されたノード(サーバ)だけでネットワークを構成する方式
この中でもPoAによる高速化は将来性があります。高速化を図るためのチューニングパラメータは以下の通りです。これらをうまく調節すれば1,200tpsぐらいまで上げることは可能になります。
- Block Interval(ブロックインターバル):ブロックが何秒間に一回生成されるのか
- Block Size(ブロックサイズ):各ブロックにいくつのトランザクションを入れられるのか
- ノード数:少なければ合意を取る回数が減るので高速化が図れる
- CPU性能/ディスク性能/ネットワーク性能
話題となっているFacebookのLibra は100ノード立てて、1,000TPSを超えています。 ブロックチェーン業界のスピードの目安としては1,000TPSを超えるかが一つの基準と考えられているように感じます。
ブロックチェーンスピード編②:高速トランザクションEOSのDPoSとは BlockBase株式会社 | 山本大貴
山本大貴 Daiki Yamamoto| BlockBase株式会社 大学卒業後、サプライチェーンのERPパッケージのシステムエンジニアとして従事。 2017年からブロックチェーン技術に興味を持ち、ブロックチェーンエンジニアとして実証実験や自社プロダクト開発の中で基盤構築からアプリケーション開発までの開発全般に取り組む。 2018年からBlockBase株式会社にテックリードとして参画し、主にインフラ周りでの環境構築やスマートコントラクトの開発を担当している。 |
EOSのエコシステム
ノード数が約18,000あるEthereumが直接民主制で全員の合意を取るのに対して、EOSは21と少ない投票によって選ばれたノードがブロックを生成する間接民主制が取られています。この方式をDPoS(Delighted Proof of Stake)と言います。
そのため代表者になるためにはコミュニティに貢献する必要があり、結果として中央集権性の高い仕組みになるのです。ブロックチェーンのトリレンマを用いるとBitcoinやEthereumはスケーラビリティ以外は強いのに対して、EOSは分散性や安全性が弱い分、少ないノードで高速処理を得意としています。
手数料モデルから考えるEOSのビジネス活用
EOSはギャンブルと相性のいいように設計されているという特徴があります。ギャンブルでなくなったお金を借金するように、EOSはリソースを打ち出すモデルがいくつか用意されています。これらのリソースモデルを他のビジネスにも応用することが試されています。
- RAM:スマートコントラクト、アカウントなどのデータ保存に利用(保存量に比例して必要)
- CPU:トランザクションの送信、スマートコントラクトの実行処理に利用(処理量に比例して必要)
- NET:トランザクションの送信、スマートコントラクトの実行処理に利用(転送量に比例して必要)
RAMは保存する領域が増えるほどコストが高くなるため、掲示板のような使用領域が増えていくようなモデルとは相性が悪いです。CPUやNETは使用した分が3日でリセットされるため使用領域内でデータが更新されるギャンブルやゲームのモデルだとRAMの支払いを気にする必要がないので実質無料で実行可能になります。
EOSはホワイトリスト外の通貨ですが、法的に問題とされるのは仮想通貨の転売なので、ビジネスに活用することは問題ないと考えられます。
最後にEOSによるトランザクションの様子のデモの紹介をしました。
ブロックチェーンスピード編③:ZilliqaのShardingについて 株式会社Gaudiy | 永井翔
永井翔 Sho Nagai|株式会社Gaudiy ブロックチェーンエンジニア。 約8年ほどCRMパッケージのエンジニアとして従事した後、ブロックチェーンに興味を持ち独学を始める。 2019年Gaudiyへジョイン。フロントエンド開発やマネジメント、リサーチ等を担当している。 |
Gaudiyとは
GaudiyはSlackのようなチャットツールで自立分散的なトークンコミュニティでプロダクトを共創することを目的として運営されており、以下の特徴があります。
- RAM:スマートコントラクト、アカウントなどのデータ保存に利用(保存量に比例して必要)
- CPU:トランザクションの送信、スマートコントラクトの実行処理に利用(処理量に比例して必要)
- NET:トランザクションの送信、スマートコントラクトの実行処理に利用(転送量に比例して必要)
- 独自のトークンの発行:コミュニティ内外で使えるトークンを発行
- 貢献を分散的に評価:コミュニティへの貢献に繋がる書き込みや活動をユーザが相互に評価し合う
- 評価をトークンとして還元:評価に応じてトークンが自動付与され、ギフト購入や他トークンと交換可能
Zilliqaについて
Zilliqaはパブリックブロックチェーンとして初めてシャーディング(Sharding)実装したスケーラブルでセキュアなプラットフォームです。EthereumでいうSolidityのような独自のスマートコントラクト言語(Scilla)やエコフレンドリーなコンセンサス(PoW, PBFT)を備えています。
Shardingとは
Shardingはデータベース分野で昔から使われてきた手法で、データを複数のデータベースに分散することで負荷の偏りを減らすという考えをブロックチェーンに応用しています。
データを分散させることのデメリットとして以下の3つが問題視されています。
⒈シビルアタック(51%攻撃を受けやすくなる)
・悪意のあるノードが特定のシャードに集中した場合
・1シャードあたりのノード数が少なかった場合
⒉二重支払い
・データが複数のシャードに分かれてしまった場合
⒊コントラクト間の状態の参照可否
・シャード毎にState(状態)が発生する場合
Zilliqaにおいては、Network Shardingでグループ(シャード)に分割して並列に処理を行うので、ネットワークの参加者が増えるごとに処理性能が向上する仕組みになっています。
BitcoinやEthereumなど既存のPoWブロックチェーンの処理速度はそれぞれ7tps, 15tpsと言われており、クレジットカード決済と比較するとVISAは8,000tps(最大20,000tps)とされています。一方でZilliqaは3,600ノードのテストネット内で2,828tpsという報告があるので10,000ノードあればVISAに匹敵すると期待されています。
Zilliqaのデメリットへの解決策
⒈シビルアタック(51%攻撃を受けやすくなる)
- 参加ノードに対するPoWによる検証
- シャードへの割り振りにコストとランダム性を持たせる
- 1シャードあたりのノード数を600に
⒉二重支払い
- トランザクションをシャードに取り込む際にGlobal Stateを更新
- シャードへの割当はアカウントアドレスに基づいて割り振られるので、同じシャードで処理されると検知されて二重支払いを阻止
⒊コントラクト間の状態の参照可否
- スマートコントラクト実行にシャーディング未使用
- アカウントをロックし、UTXOの様な解決策で検討中
Zilliqaの現状と課題
Zilliqaはtpsを増やすことには成功したものの体感時間は30-40秒と長く、遅延時間は約1分というのが現状です。またデータ(ZIL)の転送代として0.001ZILあたり1.88円かかるため、送信量が増えるほど料金がかさみます。現在のノード数は2,400と報告されていますがノード数の拡大も今後の課題とされています。
さらにブロックチェーンは上記であげたトリレンマに加え、UI/UX的観点の検討が社会実装する上で重要になっていくでしょう。
ブロックチェーンスピード編④:Lightning Networkについて 株式会社Nayuta | 栗元憲一
栗元憲一 Kenichi Kurimoto| 株式会社Nayuta Nayutaファウンダー CEO 十数年間SoC設計に取り組んだ後、IoT関連の開発に従事。IoTとブロックチェーンの組み合わせによる可能性を感じ、研究開発開始。2015年Nayuta創業。Bitcoinの2nd Layer技術Lightning Networkの開発。 |
Bitcoinは定義が曖昧になっていきながら、分散性と誰でも参加できる事にこだわりを持ったコミュニティとして発展してきました。しかし実際の決済で使われることが少ないのは取引が確定するまでに平均約10分かかる事や手数料の値上げなどが理由としてあげられます。7tpsという処理速度の遅さは、大規模なIoTや社会インフラには不向きです。
そこでLightning Networkという技術が解決策として考えられています。これはBitcoin 1st Layerの性質を保ったまま、高いtpsを達成し、リアルタイムな送受金を可能にする技術です。
ライトニングネットワーク(Lightning Network)
Lightning NetworkはBitcoinにおいてブロックチェーン層の上のペイメント層の役割を果たします。ペイメント層では任意の参加者がバケツリレーの様に通貨を取引するため改ざんが起きにくい設計になっています。
Micropayment channel, HTLCs, Routingの3つがネットワークを構成する特徴的な技術です。
Micropayment channel
取引きをしたい2者間で、ネットワーク上で一時的にチャネルと呼ばれる共有口座を開き、そこでリアルタイムに直接通貨の交換を行なった結果をどちらかがブロックチェーンに書き込むとチャネルが閉じる仕組みです。仮想的な場所での取引きをなかったことにしないために複雑なアルゴリズムを採用しています。
HTLCs
2者間の取引きの間に誰かを挟んで、盗み取られることなく通貨を渡す技術です。これも安全性を保つために非常に複雑な暗号が設計されています。Micropayment channelと組み合わせることで、ある2者が新しく共有口座を開設しなくても共通して開設している誰かを中継して取引きができるためネットワーク上に膨大な量のチャネルが増えずにすむメリットがあります。
Routing
Micropayment channelとHTLCsを組み合わせた時に誰と誰を繋げるかを考える技術として重要な役割を果たします。
Lightning Networkを用いた取引きの流れとしては、まずチャネルを作るために1stレイヤーで共有口座に送金をします。これがブロックに取り込まれることで2ndレイヤーであるLightning Networkのノード間にチャネルが開きます。そして各ノードがチャネル情報を拡散してレイヤーの構造を把握します。送金者はどのルートで取引きするかを決めることができますが、中継者として使われた人は自分に関係する一部ルートのみ知り得て、全体を知ることはできません。このやりとりが2ndレイヤー上で複数同時に行われているためブロックチェーン層でマイニングやトランザクションといった段階を経て送金するよりも遥かに高速な処理が実現しています。
ディスカッション:リアルタイム処理への挑戦-社会実装を見据えたブロックチェーン技術のスピード”最前線”
石井氏(司会):皆さん違ったブロックチェーン技術を専門とされてますがお互いに参考になった技術や今後取り入れたい技術などがあれば教えてください。
西村氏:ネットワークの高速化を図る上で、一つのノードで処理するのではなくデータを分散させるShardingの技術は非常に参考になりました。
山本氏:私もShardingの技術がとても興味深く、汎用的な技術だと思うのでZilliqaに限らず全てのプロジェクトを推進するものなので勉強したいと感じています。
永井氏:Zillqaが抱えているスマートコントラクトの課題を解決するに当たってPoS(Proof of Sake)を使いたいなと思いました。ある程度権限を持ったノードを回す仕組みが必要だと思うのでそこを勉強したいです。
栗元氏:Lightning Networkは概念が特殊なので、他のプロジェクトを直接取り入れることはないが、PoWやPoSの仕組みの理解を深めていきたいと思っています。
伊藤氏:様々な種類のブロックチェーン技術がある中で皆さんどういった経緯や熱意を持ってそれぞれの技術開発に取り組んでいらっしゃるんでしょうか。
西村氏:Ethereumはブロックチェーンの中でも歴史が長いので文献が多いのとコミュニティが大きいのが理由ですね。
山本氏:私がEOSを触り始めたきっかけとしては日本ではEthereumが推進されている一方、海外で始まったばかりのEOSに新しさを感じたからですね。EOSの発信をしていくうちに講演者として呼ばれるようになり、だんだん深く勉強するようになりました。ブロックチェーンの分散性を重視する思想から一度スイッチを切り替えて別の視点からフォーカスしている点にEOSの面白さを感じますね。
永井氏:私はメンバーも含めて元々Ethereumを使っていたのでアプリを作っている段階でスケーラブルが出ないことが分かり、解決手段としてZilliqaを使い始めたという経緯があります。Shardingという技術自体に分散性があるので適正があるのではないかという賭けもありました。
栗元氏:私が始めた時は今のように沢山プロジェクトはなかったので、初期からあるBitcoinとEthereumを好きで触っていたぐらいです。その中で、安全面を理由としてBitcoinを使っています。
石井氏:栗元さんのプレゼンの中で、IoTへの対応という話がありましたが、専用のハードウェアやIoTの用途、達成するまでの時間など具体的なイメージはありますか?
栗元氏:まずはペイメントを通じた価値を移転するところが固まらないと、IoTは始まらないのではないかと思っている。人からモノへの価値移転はそこまで時間がかからないと思うが、M2Mのようなモノからモノへの価値移転にはまだ時間が必要だと思います。
永井氏:シャーディング自体もまずペイメントが先という感じです。ハードウェアでいうと、専用というよりもまずはスマートフォンが先にくると思います。
山本氏:データストアの点がEOSは特にネックになるのではないかと思う。データベースと組み合わせるなど方法論は色々あると思う。
西村氏:ハードの話の時によくでるのは鍵管理。今後、そういった文脈でハードウェアとブロックチェーンが語られることは増えていくと思う。
会場Q:数多くあるプロジェクトはお互いどのように関わっていくと思いますか?
栗元氏:Bitcoinは他のプロジェクトと共存していくと思う。内部でまずは技術を磨いていくという段階で、競争みたいな感覚は持っていない。
永井氏:インターオペラビリティーということが言われることが増えているように、最終的には共存すると思う。
山本氏:10年後にどのブロックチェーンが残っているかわからないが、それぞれが特徴を持つ中で、補完できるところは補完していくと思う。
西村氏:残っているブロックチェーンは共存しようとしていると感じる。レイヤーごとの組み合わせは普通に起きると思う。
石井氏:技術が複雑化していく上で、説明も高度化していくと思う。その中で人間にわかる形で本当に整合性を証明できたりすることなどは非常に重要だと思う。
栗元氏:そのアプローチの一つとして、視覚化していくなどのサービスは今後出てくると思う。
まとめ
ブロックチェーンの解決したいトリレンマの一つ、スケーラビリティ(高速化)は様々なアプローチで取り組まれています。その中で同時に3つの要件を満たすことは難しいからこそ、レイヤーごとの相互サポートは必然に起きると言えるかもしれません。
今後、ブロックチェーンが価値の移転を実現するために、IoTデバイスなどに搭載されると、より処理速度が求められてくるでしょう。
一つのプロジェクトに偏ることなく、あらゆる視点からブロックチェーンのテーマを扱うBlockchain EXEだからこそ、新しいアイデアが生まれる、そういう場になることを願っています。