【Neutrino、LongHash主催】スケーラビリティ問題最新動向参加レポート

はじめに

2018年10月23日に開催されたNeutrinoさん、LongHashさんが主催の勉強会「スケーラビリティ問題最新動向」に参加してきました。

ブロックチェーン技術のスケーラビリティ問題に取り組む様々プロトコルを紹介する、といった趣旨の勉強会です。

紹介されたのは以下の5種類のプロトコル(とプロジェクト)。

  • Cybex (by Yanfeng Chenさん)
  • FastX(by Min wengさん、Bing Yangさん)
  • Lightning Network(by 今井崇也さん)
  • Plasma(by Osukeさん)
  • NEO(by ookimakiさん)

資料などはイベントページ( https://neutrino.connpass.com/event/103247/ )に掲載されています。

本稿ではこれらがいったいどのようなものなのか、簡単に紹介していきたいと思います。

CYBEX

https://intro.cybex.io

CYBEXは分散型取引所にあたります。EOSでも採用されているGrapheneブロックチェーンをベースに開発が進んでいます。

CYBEXネットワークにはCYBと呼ばれるトークンが存在します。このトークンが、DEX使用時の手数料となります。また、CYBEXはDPoS(Delegated Proof Of Stake)を採用しているのですが、トークンを保持する事でこのデリゲーターになれたり、デリゲーターを決定する投票ができたりします。

CYBEXネットワークへのdeposit、withdrawはGATEWAYを通して行われます。ここに例えばBTCをdepositすると、BTCの価値の裏付けをもつ独自トークンに変換され、実際にはこのトークン同士で交換を行うことになります。トークンdepositのTransactionが完了してから、画面に反映されるまでは数分程度かかるようですので、試される場合は気をつけてください。

また、CYBEXはDEXとしての役割だけではなくETOができるプラットフォームでもあります。ETOとは「Earlybirds Token Offering」の略称で、James Gong氏(CYBEXのco-founder)が提案したICOの新しい枠組みのようなものです。
ICOはご存知の通り、危険なプロジェクトに対して脆弱なものでした。そこで、ETOでは一気に大量の資金を集めるのでなく、コミュニティの成長と共に複数ラウンドに分けて資金調達を行います。
また、一部の投資家に寡占されることなくコミュニティ参加に意欲のある人がトークンを購入できるよう、購入できる人を制限します。
例えば、HerdiusのETOでは事前に最大200点で評価されるテストが公開され、それに参加し高い得点を獲得しないとホワイトリストに登録されずトークンの購入ができませんでした。

既に稼働しておりTransaction量もそこそこあるCYBEX。今後の動向にも注目していきたいと思います。

また、日本ではDEXの運用は原則禁止(交換業の登録が必要)、利用も税制的な理由でかなり厳しい、ETOによるトークン販売も日本人向けに行うのは原則禁止と、日本にいる限りCYBEXを活用するのは難しい状態ですが、今後変わっていくことを期待したいですね。

FastX

http://www.fastx.pro/

FastXはPlasmaをベースとしたEthereumの分散型トークン交換プロトコルです。

現在、トークンを交換する時は中央集権型の取引所を使うのが主流ですが、これらはハッキングによる資産流出の事件が後を絶ちません。そこで、DEX(分散型取引所)がこのセキュリティ上の問題を解決しようとしていますが、取引速度が中央集権型取引所に比べて格段に遅いといった問題があります。

そこで、FastXと呼ばれるEthereum上に新しい分散型トークン交換プロトコルが提案されました。FastXはサイドチェーン上で取引の仲介を行うため、交換処理そのもの自体は非常に高速に行うことができます。ただし、Plasmaベースのため、Plasmaが内包している問題(Challenge-Exitゲーム等)にそのまま影響を受けてしまいます。

FastXはPlasmaをベースに開発が進められており、現時点ではERC20、ERC721トークンに対応、サイドチェーンに直接オーダートランザクションを作成する拡張機能などが実装されています。

今後の開発ロードマップなどはよくわからなかった(存在しない?)のですが、FastXが実運用レベルにまでなるということはPlasmaが実運用レベルになるという事に繋がりますので、今後の開発に期待したいですね。

Lightning Network

Lightning NetworkはBitCoinのセカンドレイヤー技術であり、オフチェーンで高速かつ安価な手数料で送金が可能になります。

Lightning Networkは、2者の間でペイメントチャネルと呼ばれるP2Pネットワークを開通しその中でトークンのやり取りを行います。ペイメントチャネルを開通していない相手であっても、他の誰かのチャネルを経由して取引を行うこともできます。
つまり、A→Cに送金したいがペイメントチャネルを開いていない場合であっても、A→B→CとBを経由するような経路で送金が可能、ということです。この技術により、0.1円程度の少額決済(マイクロペイメント)を高速で行うことができます。

ただし、Lightning Networkにもいくつかの制約が存在しています。
まず、ペイメントチャネルを使って送金できるのは自分がチャネルにdepositした額まで、といった事があります。この額をチャンネルのキャパシティといいますが、キャパシティはチャンネル作成時で決定され、後から増やしたり、他のチャネルからキャパシティを移動させたりといったことはできないのが現状です。これを解決するためSplicingと呼ばれる手法が提案されていますが、v1.0の段階では実装されていません。

また、ペイメントチャネルで双方向のやり取りをするためにはチャネルを監視しておかなければならないといった制約もあります。というのも、A→Bにペイメントチャネルを介して送金が行われたのも関わらず、Aが最新の状態(Bに送金された状態)より前の状態をブロードキャストしてしまうと、Bは送金されたはずのトークンを受け取る事ができなくなってしまいます。
そこで、Aが不正なトランザクションをブロードキャストしようと試みた間にチャネルの財産を全てBが没収するような仕組みがあるのですが、これにはBがチャネルを監視している必要があります。
(AがUnilateral Close = 一方的なペイメントチャネルのcloseを試みてから、デフォルトでは144ブロックが経過するとそれはブロードキャストされてしまいますので、その期間内に不正を申告しなければなりません)

これはスマートフォンなどの暫くオフラインになりうる端末で利用することを考えると非常に不便です。そこで、WatchTowerと呼ばれる監視役のサーバを立ててそこに監視を委託する方法が提案されています。
(lndでは最近PRがmergeされました! https://github.com/lightningnetwork/lnd/pull/1512)

ただし、送金だけを行う一方向のペイメントチャネルで送金側であれば監視の必要はありません。
仮に受信側が古い状態(送金を受け取る前の状態)をブロードキャストする不正を行っても、送金側にデメリットは一切ないためです。
Eclairというウォレットアプリ はこの性質のため「送金」だけlightning Networkを使用することができるようになっています。

この他にも課題となりそうな点は多々あるものの、Lightning Networkを活用したサービスも出現しつつあり、来たる?マイクロペイメント時代の主役になり得る技術だと思っています。
今後もキャッチアップしていきたいですね。

Plasma

PlasmaはEthereumのセカンドレイヤー技術で、サイドチェーンにより高速な送金を実現しようとしています。

PlasmaはLightning Networkと違いサイドチェーンを用いているので、ネットワークにさえ参加すればその中では自由に取引ができます。流れとしては、Plasmaチェーンに資産をdeposit→Plasmaチェーン上で取引→メインチェーンに資産を戻す(exit)のようなものになります。
depositした資産の範囲内でしか送金はできませんが、Lightning Netoworkと異なり追加depositが容易に実現できます。また、資産をメインチェーンに戻すといった処理が必要なことから、コンセンサスアルゴリズムにはファイナリティが要件として求められます。

Plasmaではブロック作成者のことをPlasmaOperatorといいます。もちろん単一である必要性はありません。Plasmaチェーンはメインチェーンより小さなコミュニティになりますので、51%攻撃のリスクが高くなります。そこで、ユーザはPlasmaOperatorを監視しておくと同時に、もし不正が起きた時にはPlasmaチェーンから資産を引き出さないといけません。ここがPlasmaの難しいところになっています。

例えば、Aが使用済みUTXOを未使用だと偽ってルートチェーンに資産を戻そうとしたとします。すると、一定の期間(Challenge期間)の間に監視しているユーザはこの「UTXOは使用済みである」といった証明をしなければなりません。
これを証明するには、対象のUTXOがInputとなっているTransactionを提示すれば良いのですが、これがどこのブロックのマークル木のどの位置に含まれているかといった事は知りようがありませんので、結局監視役の人は全てのブロックを保持しておき全て確かめていかないといけないことになります。

信頼できる監視役をどのように設けるか、不正の証明の為に必要なデータをどれだけ少なくするかといった事が議論の中心となっており、PlasmaCashやPlasmaXT等の色々なアイデアが考案されています。

どのようにサイドチェーンの安全性を担保するかは非常に難しい問題ですが、様々なアイデアが出てきておりPlasmaCashは既に実装を公開している企業も存在します。Lightning Netowork同様、スケーラビリティプロトコルの本命だと思っているので、今後もキャッチアップしていきたいです。

NEO

https://neo.org/
NEOはNEO Foundationが主導しているブロックチェーンになります。
NEOの特徴はNEOとNeoGasと呼ばれる二種類のトークンが存在すること、dBFT(Delegated Byzantine Fault Tolerance)という珍しいコンセンサスアルゴリズムを採用していることが挙げられます。

NEOトークンは既に全て発行されており、その半分を財団が保持しています。
NeoGasは新たにブロックが生成された時に、NEOトークン保持者にトークン保有額に応じて与えられます。NeoGasはスマートコントラクト をデプロイするときの手数料として必要です。(NEOはTransaction発行には手数料はかかりません)

dBFTですが、delegatedとついている通りブロックを作成する権利をもったノードを投票により選出します。このノードをBookkeeperと呼びます。
Bookkeeperを決定する投票ができるノードはNEOトークン保有者に限られています(保有量に応じて投票の重みがかわります)
実際にブロックを生成するノードはBookkeeperの中から毎回ランダムに選出されます。そして、ブロックが生成されたらそのブロックが正しいかどうか、Bookkeeperの中で投票を行います。これが66%以上の賛成票を得られれば、ブロックが生成されます。dPoSと似たコンセンサスアルゴリズムですが、異なる点はトークン保有量に応じてでなくランダムにブロック生成者が選ばれる点と、投票を行うのでブロックが生成した時点で即ファイナライズされるという点でしょうか。

NEOのTPSは1000程度で、EthereumとEOSの中間的な値になっています。
また、日本でもコミュニティ(NEO Keymakers Japan)が発足されていたり、スマートコントラクト 記述言語の種類も多かったりと、開発の敷居は低くなっています。各地でもMeetupやハッカソンが開催されたりと、コミュニティ運営にも力をいれていますので、今後世界的にメジャーなブロックチェーンになっていくかもしれません。

ただ、スマートコントラクト のデプロイに必要なGASが490GASなんですが、今1NeoGasは日本円にして530円ほどになっています。つまり、スマートコントラクト のデプロイに26万円ほどかかってしまうのが辛いところです。

まとめ

今回取り上げた様々なレイヤーの5種類のスケール技術以外にも、数多くスケール技術は存在しています。どれもかなりのスピード感で提案・開発が進んでおり、全てをキャッチアップするのは実質不可能になってきていますが、組織やコミュニティの力をうまくつかって置いて行かれないようにしていきたいですね。

Author

Contact

Contact