今週の注目トピック
Tomoaki Kitaoka(@tapioca_pudd)より
Eth 2.0 Phase 0のローンチへの期待が高まる中、今週はVitalik Buterin氏が描くRollup中心のEthereumのロードマップが公開され、スケーリングソリューションのトレンドがRollup系へと変化するのを垣間見ました。Eth 2.0 Phase 0のテストネットSpadinaではインシデントが発生し、新たなテストネットZinkenのローンチが決まりました。ACSAC2020ではARM TrustZone上でアプリを開発するRust SDK、RusTEEが採択され、メモリ安全でない言語によるメモリ破壊が大きく改善されることが期待されます。
リスト編と合わせてご覧ください。
Section1: PickUp
●Vitalik Buterin氏が描くRollup中心のEthereumロードマップ
Ethereum創設者のVitalik Buterin氏が、Rollup中心のEthereumのロードマップを公開した。Rollupは、データはオンチェーンで記録するが、検証をオフチェーンで行うことでスループットを向上する技術であり、Layer 2スケーリングに分類される。現在EthereumのTransaction Per Second (TPS)は15ほどしかないが、Rollupを適用すれば3,000 TPSほどになると予想されている。今回発表されたロードマップは、このRollupに主力を注いだときにEthereumがどう発展していくかを描いたもの。
Rollupは、チャレンジ方式による「Optimistic Rollup」とゼロ知識証明による「zkRollup」の2種類に大別される。Optimistic Rollupの一つであるOptimismは、先日テストネットの第一段階の立ち上げとメインネットに向けたロードマップを公開した。Optimismは、Optimistic Virtual Machine (OVM)と呼ばれるバーチャルマシンで、Ethereum Virtual Machine (EVM)が実現できる状態遷移のほぼ全てを行うことを目指している。同じくOptimistic RollupのプロトコルであるFuelやArbitrumもテストネットが動いている。zkRollupは、Loopring、zkSync (Newsletter #63)、DeversiFiが既に稼働している。
Ethereumで運用予定の他のスケーリング技術には、Ethereum 2.0で導入されるシャーディングがある。しかし、アプリケーションのスケーリングが可能となるPhase 2の「バーチャルマシンありのシャーディング」は、その複雑さから導入される時期は未定であり、何年も先になる可能性がある。一方で、Rollupは前述のようにメインネットがローンチ済みのプロトコルもあり、実用化までの時期が早いと思われている。Buterin氏は、近頃の手数料の高騰や混雑も踏まえると、Ethereumエコシステムは短期及び中期的にはRollupに全面的に取り組む可能性が高い、と述べている。
Buterin氏は、Rollupを中心とした取り組みを前提として、研究開発の優先度を考察している。Rollupが主流になれば、Ethereumのベースレイヤーで「どれだけのデータを保持できるか」が重要となり、オンチェーンの計算やI/Oの効率性は比較的重要ではなくなる。引き続き問題になるものとして他には、DoS攻撃を緩和するためにステートアクセスのガスコストを増加させるEIP-2929や、手数料マーケットプロトコルEIP-1559などを挙げている。
また、Rollupを利用するためのインフラ整備も重要であると述べている。現在、ユーザーはLayer 1にアカウントやENSネームを持ち、Layer 1のアプリケーションを利用しているが、これらを全てLayer 2の世界に移行あるいは変更する必要がある。さらに、異なるLayer 2プロトコル間で資産を移動するユーザー体験を良くするために、クロスL2送金について研究が求められる。
長期的な話として、RollupはTPSを3,000ほどに押し上げるが、Ethereum 2.0のPhase 1でバーチャルマシンのないシャーディングが導入されれば、理論上100,000TPSになる。一方で、Buterin氏はバーチャルマシンありのシャーディングが導入されるPhase 2がローンチされても、ユーザーはあまり気にしないと予想している。Phase 2でバーチャルマシンのあるシャーディングが導入されれば、Layer 1で1,000~5,000 TPSを実現できるようになるが、その時には既にユーザーはRollupの高TPSの世界に順応しているためである。
今回のButerin氏の投稿で、Rollupの技術及びプロジェクトに関心が集まった。Rollupとシャーディングが組み合わさり、高いスケーラビリティを獲得したEthereumが待ち望まれる。(文責・岡南)
●Eth2.0 Phase 0のテストネットSpadinaでインシデント発生、新たなテストネットZinkenのローンチへ
Eth2.0 Phase 0の年内ローンチを目指すEthereumコミュニティだが、デポジットとジェネシスのテストを目的としたテストネットSpadinaでインシデントが発生した。Eth2.0 Phase 0ローンチに向けた開発はほぼ完了しているが、最後のテストネットでの試運用でここ2ヶ月は苦戦を強いられている。
8月にローンチされたEth2.0 Phase 0のテストネットMedallaではPrysmクライアントにおいて時刻同期周りのバグがあり、修正パッチを慌てて開発した結果、初期化処理にバグを作ってしまい、バリデーターが大量にスラッシングされるという事態を招いた(Eth2のMedallaテストネットで発生したインシデントの概要と教訓、またPhase 0の今後)。
Spadinaは特にリスクの大きい初期のデポジットやジェネシスブロックの作成に焦点をおいたテストを9/29から3日間のみ行った(Ethereum 2.0に向けた2つ目のテストネットである「Spadina」を発表)。しかし、バリデーターの参加が異常に遅く、ブロックのファイナリティに必要な数が参加するまでに~70 epochs (約8時間)もの時間を要した。
主な原因は、 Prysmatic Labsの開発するEth2クライアントのPrysmのCLIやドキュメントがSpadinaの仕様に合っていなかったことにあった。
(引用:https://docs.google.com/document/d/1pn9giIODBUCpgImZRPR34RbF-jAp1W4xTT_8gdcKFCw/edit# )
幸いにも、今回のインシデントはコンセンサス部分などの致命的なバグではないため、すでに問題のあったPrysmのv1.0.0-alpha.26は修正され、アップデートされている。
今回のインシデントを受けてコミュニティは新たなテストネットZinkenのローンチを10月12日に実施し、Spadina同様geneisisのプロセスのテストを再び行う旨を発表した。
先日はEth2.0 Phase 0のEIPがオープンし、Eth2.0 Phase 0の年内のローンチに向けて大きく期待が高まったが、まずはZinkenのローンチがスムーズに行われることを期待したい。(文責・北岡)
●ACSAC2020にARM TrustZone上でアプリを開発するRust SDK、RusTEEが採択
The Annual Computer Security Applications Conference (ACSAC) 2020にウィリアム・アンド・メアリー大学のWan氏らによる「RusTEE: Developing Memory-Safe ARM TrustZone Applications」が採択された。会議の開催自体は12月だが、事前に公開されている論文を紹介する。
RusTEEはARM TrustZone上で動作するTrusted Application (TA)の実装をサポートするSDKであり、OSSとして公開されている。ARM TrustZoneの脆弱性は100以上報告されているが、ほとんどはメモリ安全でない言語(例:C言語)によるメモリ破壊が原因だ。RusTEEはTAをRustでコンパイルすることで、メモリ安全性を達成する。Rustの低レベルライブラリでは、TrustZoneで利用するARMアセンブリ命令の一部をサポートしておらず、RustTEEではCとRustの間のバインディング層を設けている。なおRust-SGXでも同様のアプローチが採用されている。
また、セキュリティ上もう一つの重要な観点としてcross-world communicationが言及されている。GlobalPlatformが仕様を定めるTEEでは、CPUをNormal WorldとSecure Worldに分けるアーキテクチャとなっている。TAはSecure Worldで実行されるアプリケーションであるが、リクエストや付随するパラメータはNormal World上のアプリケーションから発せられ、2つのWorldを跨いだcross-world communicationが発生する。RusTEEでは、GlobalPlatform仕様で定義される4つの構造体 (Context, Session, Command, Parameter) に着目し、Normal WorldのアプリケーションとSecure Worldのアプリケーションを協調的に動作させる。特にContextとSessionにおいては、メモリの初期化と解放が適切に実行される必要があり、これの解決にRustコンパイラの機能を利用している。Rustでは未初期化変数の使用をコンパイル時に検出できる他、変数が有効なスコープから抜けた際にdrop関数が呼び出され、解放されることを保証する。
本論文中では、RusTEEの性能評価をQEMUによるAArch64のシミュレーションとJuno r1開発ボード(実機)で実施している。評価の結果、Rustを用いたことによるC言語に対するオーバーヘッドは平均1%程度だったとしている。
多くのスマートフォンに搭載されているARM CPUでTAの実装をサポートし、Rustのメモリ安全性を十分に活用した内容で大変興味深い。(文責・恩田)
Section2: ListUp
1. Bitcoin
●BitcoinフルノードとBTCPayServerがバンドルされたHack0の紹介動画
●MITのDigital Currency Initiative、51%攻撃回避に向けたモニタリングツール開発中
2. Ethereum
●(特になし)
3. Smart Contract・Oracle
●BitGo、WBTCのProof of ReserveにChainlinkのオラクルを利用へ
●規制取扱がクリアになる中で、スマートコントラクト用いた干ばつ保険のようなDeFiがメインストリームに載ってくるとするGartner記事
4. DeFi
●Uniswap、トータルロック額(TVL)が20億ドル到達
●DeFiを代表するプロダクト|Uniswap、Kyber Network、MakerDAOを解説
●投資額1兆円超のDeFi(分散型金融)、「3つの革新性」と「フィンテックとの違い」
5. Enterprise Blockchain Infrastructure
●(特になし)
6. Other Chain
●CodaProtocol、R3との商標紛争調停を経てMinaへ名称変更へ
●Filecoin、2週間後のローンチにあわせ、「Filecoin DeFi Bridge」「Filecoin Storage Market」といったツールをローンチ予定
7. China Tech
●中国BSN、10月中にクロスチェーンコミュニケーションのテスト実施へ
8. Digital Identity
●Self-Sovereign Identityが2030年のインターネットにもたらすインパクト
●Microsoft IgniteでのDID/VC (Decentralized Identifier / Verifiable Credentials)関連トピックまとめ記事
9. 統計・論考
●分散コンセンサスとブロックチェーンに関するテキスト(ドラフト版)
●NISTから、トークン設計・管理方法のフレームワークについてドラフト発表
●「プログラマブルマネー」と「プログラマブル ペイメント」の違い
10. 注目イベント
●ETHOnline (10/2-10/30)
●USENIX PEPR(10/15-10/16)
●IEEE CLOUD(10/20-10/24)
●ACM Advances in Financial Technologies – AFT 2020(10/21-10/23 at New York)
●戦略的イノベーション創造プログラム(SIP)による「IoT社会に対応したサイバー・フィジカル・セキュリティONLINEシンポジウム〜 Withコロナの世界を支えるセキュアなIoTサプライチェーン基盤」(11/6, オンライン開催)
●ACM CSS(11/9-11/13)
Disclaimers
This newsletter is not financial advice. So do your own research and due diligence.