LayerX Newsletter for Tech (2020/03/23–03/29)

Issue #51

今週の注目トピック

Taisho Nishiiより

今週のTech編は、ゼロ知識証明に関わる技術の進展に関わるトピックを2点取り上げています。一つが、SNARKsベースの軽量ブロックチェーンCodaに関する技術論文の公開について、そしてもう一つが、Aztecがプライバシーを担保した高速なネットワークを実現するZK² Rollupを発表したことについて。また、今月ローンチ予定のEthereum2.0Phase0について、Least Authority社が監査レポートを公表したことについて取り上げています。絶えず進歩する技術について、キャッチアップにお役立ていただけたらと思います。List編と合わせてご覧ください。

Section1: PickUp

●SNARKsベースの軽量ブロックチェーンCodaの技術論文が公開

  • 軽量なブロックチェーンを目指すプロジェクトCodaの技術論文 “Coda: Decentralized Cryptocurrency at Scale” がePrintに公開された。著者には、暗号通貨関連で数多くの研究業績のあるニューヨーク大のJoseph Bonneau (筆頭著者)とCodaを開発するO(1) Labsのメンバーが名を連ねる。本論文のプロトコルはCodaのテストネットで使われており、その結果についても報告されている。

  • Codaのコアアイデアは、ブロックチェーンの状態遷移をゼロ知識証明(SNARKs)を使って効率的に検証できるようにすることである。通常あるブロックのstate rootが正しいことを示すには、ジェネシスブロックからそのブロックまでの全てのトランザクションを実行することが必要であるため、現状では新しくフルノードを立てるのに、マシン性能によるが数時間 ~ 数日かかる。Codaはこれを数百ミリ秒のSNARKの証明検証だけで済ませることができる。

  • あるブロックの検証には、その親ブロックからの状態遷移の正しさの検証に加え、親ブロック自体の正しさの検証が必要なので、CodaではSNARKを“再帰的に”用いる(SNARKの証明検証自体をSNARKで証明する)ことが必要となる。SNARKの証明検証はそれ自体が膨大なステップを必要とする計算のため、工夫をしないとたった1階層の再帰ですらその証明生成には極めて長い時間がかかってしまう。そこで、Codaでは“cycle of elliptic curves” (E. Ben-Sasson et al., CRYPTO’14) というテクニックを用いている。具体的には、お互いの証明検証が効率的なTickとTockの二つのSNARKの構成を組み合わせ、状態遷移の履歴をバイナリーツリー形式で証明する。

例: 状態x0がx4まで遷移したことを証明する際のバイナリーツリー

  • また、SNARKの証明生成は時間がかかるため、ブロック生成時間を伸ばさないように証明生成を複数参加者に委託し並列的に行う。証明生成に貢献した場合は報酬が与えられる。

  • 本論文はCodaで使うコンセンサスアルゴリズムとして、Ouroboros Samasikaを提案している。SamasikaはPoSのNakamoto consensus系アルゴリズムOuroboros Genesis (C. Badertscher et al., CCS’18)を、Codaのアーキテクチャに合うように変形させたもの(詳細は割愛)。

  • 補足1: 本研究を始め、近年はOuroborosの研究エコシステムの広がりを感じる。Ouroborosは元々IOHKが研究していたPoSプロトコル群だが、関連研究がトップ学会に継続的に採択されていることからか、徐々にIOHK以外のチームによる発展・拡張が目立っている。Polkadotを開発するWeb3 FoundationがOuroboros PraosをBABEOuroboros Clepsydraに発展させていたり、オーフス大のEUROCRYPTO’19の論文もある。残念ながらこのような流れはEthereumのPoSプロトコルであるCasperではあまり見られていない。弊社では今後もCasperをはじめとするオープンソースコミュニティの技術をアカデミアに伝えていく橋渡しの役割を担って行きたい。

  • 補足2: SNARKsを用いて状態遷移の検証をするアカデミアの関連研究として、今年のIEEE S&P(参考: ニュースレター#49)で採択されたPiperineが挙げられる。

Aztecがプライバシーを担保した高速なネットワークを実現するZK² Rollupを発表

  • Aztecはプライバシーを担保した高速なネットワークをEthereum上で構築することを目指している。開発状況としては、送金額の秘匿化はすでに開発済み、送受信者の匿名化は実装中、コードレベルの秘匿化は未実装となっている。Ethereumは複雑であり、プライバシーを担保するには大きなコストがかかるためRollupなど工夫が必要になる。

  • ZK-ZK Rollup(ZK² Rollup)はプライベートトランザクションのガスコストを大きく削減する。古典的なZK RollupではSNARKの簡潔さ(succinctness)を生かし、ブロックチェーンのスケーリングにアプローチしていた。これは多数のトランザクションを一つのトランザクションの中に‘rolled up’ させることを可能にし、一つのトランザションによって100~1000個の決済処理を実現可能にした。

  • このようにZK-SNARKはスケーリングに有効だが、プライバシーにも有効であることも広く知られてる。ZK² Rollupは複数のレイヤーでSNARKを利用することでスケーリングとプライバシーの両方を実現可能にする。

  • 下位レベルのZK-SNARKsはプライベートトランザクションを表し、上位レベルのZK-SNARKはRollupのSNARKで, 低レベルZK-SNARKsの正しさを証明する。

1つのSNARK proofに100個のトランザクションをrollupする図

  • Aztecはメインネットで残高情報の秘匿化と、送受信者の匿名化を実装したプライベートな決済は100tpsまで可能であり、秘匿化、匿名化のないrollupでは2000tpsまで理論上可能と述べている。

  • AztecはZK² Rollupの課題として以下の3つを挙げている。Recursion(再帰)、ステートのアップデート、立証可能なランダム性。

  • Recursion(再帰、ProofのProof) :通常のZKRollupではSNARK proofは比較的計算が容易なものだった。例えば、トークンの移転などは”算術的サーキット”に置き換えやすいものだった。しかし、ZK² RollupではSNARK サーキットの中でSNARK proof を検証する必要があり、難易度が上がる。

  • ステートのアップデート:ZK² Rollupにおけるステートの管理も通常のZKrollupと比べると難しいものになっている。ZK² Rollupsでは更新するステートが多く、また多くのデータのディスパッチを必要とする。

  • 立証可能なランダム性:ランダム性を立証することで‘non-interactive’なproofを実現することができるが、SNARK における乱数生成(SNARKではハッシュを用いる)はいくつか問題を内包している。SNARK-friendlyなPedersenハッシュは擬似乱数関数として使えないため検証作業で不正が可能である。また、SHA256や Blake2などは重い計算を強いられます。PoseidonやRescueはまだ実用の段階には早すぎるといえる。

  • このようにいくつか課題は残っているものの、Aztecはメインネットでのスケーラブルなプライベートトランザクションの実現に向けて着々と前進しており、今後も注目が集まる。

Least AuthorityがEthereum2.0Phase0について監査レポートを公表

  • 大手セキュリティ会社のLeast Authorityが、Ethereum2.0の仕様に関する監査を完了し、レポートを発表した。この監査は、Ethereum Foundationのリクエストに基づき、当該財団と密に連携をとりつつ、2020年1月より実施されていたもの。

  • また、Ethereum2.0とは、EthereumのPoSの移行などEthereumのアップデートを実施するプロジェクトであり、以下ロードマップのもと、進められる予定。

Phase0:新しいブロックチェーンBeacon Chainのローンチ

Phase1:Shardingの実装

Phase2:実行環境eWASMの実装によるコントラクトの利用開始

Phase3::ライトクライアントの実装

  • このうち、Phase0が今回の監査の対象であり、当該フェーズのメインネットローンチは2020年4月に実施される予定。

  • レポートは、全体として、「仕様は綿密に設計されており、包括的である」、「セキュリティについては特段の考慮が設計段階から払われており、特にコンセンサスレイヤーではその傾向は顕著である」と評価した。一方で、Phase0の段階では、強固なネットワーク層の基礎を築くことが重要になるため、P2PのネットワーキングレイヤーのプロトコルやEhereumノードレコード(ENR)システムについては更なる検討や追加のドキュメントが必要であると指摘した。全体としては、これらを含め、Beacon Chainの仕様書に7つの問題点を特定し、2つの改善提案を行っている。

  • 改善提案について紹介する。一つ目は、ブロック提案システムについて。Ethereum2.0ではPoWからPoSに移行することとされている。PoWでは、ハッシュ値を求め、マイニングに成功する者が誰なのかやその順序を予測することはできないが、PoSでは、ブロックの提案者がどのブロックがチェーンに取り込まれるか選択可能であるため、攻撃の対象となりやすいとしている。そこで、レポートにおいては、選別プロセスを可能な限り秘匿化するため、Single Secret Leader Election (SSLE) mechanismの採用を提案している。この提案について、Ethereum2.0はこの提案を受け入れつつも、Phase1や2においては、多くの情報が手に入り、アップデートもされるだろう、語る。

  • 二つ目は、P2Pメッセージングシステムについて。前提として、ドキュメントの少なさやプロジェクトが始まって間もないことから、攻撃ベクトルや脆弱性について完全な分析はできてないとしている。その上で、ノードの行動を監視する中央機関がいない場合、不誠実なノードは、ペナルティなく過去のメッセージを無限にかつ無制限に送信でき、そのため、正当なメッセージを受け取れなくするという。同様に、チェーン上に不要なトラフィックを生成することもできるようなってしまうため、この種の攻撃は、ネットワークの処理速度を遅めてしまうと指摘している。この問題に対処するため、BAR-resilientシステムを提案している。このプロトコルにおいては、ノードのタダ乗りや改ざんのリスクを排除できるとしている

  • その他、レポート内においては、Ethereum2.0はPoSとシャーディングプロトコルを用いた初めてのプロジェクトであり、このブッロクチェーンの安定性は、長きにわたってモニターされるべき研究である、とされている。

  • Ethereum2.0プロジェクトをリードする Danny Ryanによれば、Ethereum2.0の次なるステップは、マルチクライアントのテストネットの実装と、Phase0のバグバウンティを実行すること、とのこと。ただ、開発者はPhase0のメインネットローンチの少なくとも2ヶ月前にマルチクライアントのテストネットの実装を終えている必要があるともされており、迫りくるローンチ日に間に合うかは不確定。

  • Ethereum2.0についてはPoSヘの以降やシャーディングなどの機能実装を始め、大きく進化しうるパブリックチェーンの 一つとして注目が集まっている。一方で、ブロックチェーン全般にも当てはまるが、セキュリティ対策や脆弱性への対応についても同様に注目が集まるのは確か。引き続き、2024年頃まで続くとされるEthereumのアップデートについて注視していく。

Section2: ListUp

1. Bitcoin

Liquid SidechainのBTC保持量、Lightning Network Channelsを上回る

Transcript: Miniscript workshop with Andrew Poelstra

Discreet Log Contractのデモ

Liquid Network上でのアセット発行について

2. Ethereum

HashHub、ブロックチェーンに取り組む企業向けサービスに開発ツールのMythXとInfura無償トライアルを追加

3. Bitcoin/Ethereum以外

AVA Labs、「Avalanche Protocol」のオープンソース化を経てウォールストリートビジネスのモダナイズを目指すと

Microsoft、新たなマイニングシステムの特許

GrinでUTXOのCommitmentの重複を許可する変更の提案

●FuturexとR3、CordaへのHSMインテグレーションで提携

Corda4.4 / CE4.4 / CENM1.2がリリース

4. 統計・リスト

ConsenSysが発表した開発者むけライブラリ。ウェビナーやチュートリアル、ツールキット、プロダクト等

Dappユーザーの2019年推移チャート

DeFiの価値流通メカニズム含めて図示されたエコシステムマップ

●不確実な時代に向けたa16zのリーディングリスト

5. 論考

Skuchainのトレードファイナンスプロダクト用いたHyperledger Fabric/Corda間のInteroperabilityに関するレポート

6. 注目イベント

TPBC20: Theory and Practice of Blockchains 2020:(4/20–4/22、Barcelona)

Eurocrypt 2020(5/10–5/14、Zagreb, Croatia)

IEEE S&P: 41st IEEE Symposium on Security and Privacy(5/18–5/20、 San Francisco)

Blockchain Core Camp Season3(5/15–5/17 at Tokyo)

TPMPC 2020: Theory and Practice of Multiparty Computation Workshop 2020:(5/25–5/28、Aarhus N, Denmark)

CRYPTOLOGY2020: 7th International Cryptology and Information Security Conference 2020(6/9–6/11、Putrajaya, Malaysia)

Summer School on real-world crypto and privacy(6/15–6/19、Sibenik, Croatia)

SECRYPT 2020: 17th International Conference on Security and Cryptography (7/8–7/10, Paris)

Crypto 2020 (8/16–8/20, Santa Barbara, CA, USA)

Disclaimers

This newsletter is not financial advice. So do your own research and due diligence.

Loading more posts…