2024.12.10
“放置系”なのにサイバー攻撃を監視・検知、「統合ログ管理ツール」とは 最先端のログ管理体制を実現する方法
リンクをコピー
記事をブックマーク
中村龍矢氏:それでは「シャーディング技術の全体像と研究動向」ということで発表します。よろしくお願いします。
本日はシャーディング祭りということで、まず序盤に僕からシャーディングの概論的なことをお話しします。それから題材としてEthereum 2.0のシャーディングについて話して、最後にQ&Aとして、Sli.doでもらった質問に答えていこうかなと思っています。資料は、あとでTwitterで公開します。
それではまず自己紹介も兼ねて、弊社の研究開発についてお話しします。LayerXはブロックチェーン開発会社です。創業したときからR&Dチームがありまして、先端の技術にキャッチアップすること、キャッチアップにとどまらないで自分たちで技術を生み出して発展に貢献すること、それからこの技術的なビジョンを持って社内外で発信することをビジョンにやっています。
今までのテーマを全部総合すると、セキュリティ、スケーラビリティ、インターオペラビリティ、プライバシーという、けっこういろんな方面の研究をやっています。
最初はスマートコントラクトのセキュリティから研究を始めました。ここにあるVyperというのは、Ethereumの有名なSolidityに代わる言語として作られたものです。最初はこのコンパイラにコントリビューションをしたりとか……。ここに書いてある「Vyper Compiler」は、Ethereumの「Remix」という有名なブラウザのコンパイラですが、そこにVyperプラグインというのがありまして、それは弊社が昔作ったものです。
ここから転じて、形式的検証というスマートコントラクトのセキュリティを数学的に証明する、といったプロジェクトを始めました。
ここで使っているのは「K Framework」という形式的検証のツールなんですけれども、Ethereumのコミュニティに限らず、本当にパブリックチェーンコミュニティで、今、広く扱われている形式的検証ツールになっています。
ここから徐々に、「形式的検証の対象をプログラムからプロトコルに変えてみたらおもしろいんじゃないか?」ということで始めたのが、CBC CasperというEthereumのProof of Stake向けのコンセンサスアルゴリズム。これの形式的検証を始めました。
こちらはプログラムの形式的検証と違うので別のツールを使っていて、Isabelleという定理証明器を使って証明を進めていきました。
こちらの研究は論文になっていまして、世界で初めて査読つきの国際学会に通ったCBC Casperの論文になってます。こういったCasperに関する学術的な研究は、Ethereum Foundationの「Grants Program」というものにサポートしてもらっています。
2019年の秋ぐらいから、今日のテーマでもあるEthereum 2.0のセキュリティを研究し始めまして、ここに書いてあるBouncing Attackとか、2つほど脆弱性の発見と改善策の提案を行なっています。こちらは2つともEthereum 2.0の公式の仕様にマージされています。
こうしたかたちで、既存のコンセンサスアルゴリズムに対して証明を与えたりとかセキュリティをチェックするということだけではなくて、我々もどんどん自分たちで作っていこうと、いくつかオリジナルのコンセンサスアルゴリズムに関しても提案をしています。
こういったCasperの研究に関しては、弊社の中で閉じこもるのではなくて、なるべく外の研究者と議論をしながら進めていまして……。とくにCasperはEthereumのプロトコルですので、VitalikをはじめとするEthereum Foundationのメンバーが議論にとてもつき合ってくれて、2019去年のDEVCONでもいろんな方に紹介をしてもらいました。
ここまでがセキュリティです。今日のトピックであるシャーディングというのは、スケーラビリティ関連の研究です。去年の秋・冬ぐらいから始めたもので、今日このあと岡南君が発表するシャーディングの負荷集中の現象、それからその緩和策の提案といったものを研究して、こちらも学会というかワークショップに発表しています。これは後ほど紹介します。
それ以外も、少しずつスケーラビリティに関しては既存の提案を見ていて……。僕はわりとセキュリティ・スケーラビリティ周りを研究しているのですが、もう1個プライバシーを主にやっているチームがあって、そちらで2019年の今ごろ作ったのが「Zerochain」という秘匿送金ブロックチェーンです。
これはPolkadotを運営しているWeb3 Foundationが作っているSubstrateというブロックチェーンフレームワーク上に、Rustで実装されています。こちらはWeb3 Foundationのグラントに採択されていて、サポートを受けています。
最近の新しい研究トピックとしては、「インターオペラビリティ:クロスチェーン」で、「Cordage」がつい最近リリースされています。
こちらはオープンソースの「Corda」というブロックチェーン、わりとエンタープライズ向けのブロックチェーンと、それからほかのチェーンをつないでいくというプロジェクトになっていまして、現在はEnterprise Ethereumの中でも非常に有名な「Quorum」というものと接続しています。これは絶賛開発中ですので、今後もいろんなアップデートがあるかと思います。
そういったかたちでEthereumとかCordaみたいな実際のインダストリーのブロックチェーンの研究ということもあるんですけれども、それをなるべくアカデミアのほうに論文で発表して、「こういった問題があるんだよ」ということをベンチャーとして伝えていきたいなと思っています。2019年は、国内で2つほど、国外で4つのカンファレンスに参加しています。
今ザーッとこれまでの研究についてやったことを話してきたんですけれども、その背景にどういった目的があるかとか、スタートアップとしてどういうふうにほかの大学や大企業と競って研究をしていくかということに関しては、最近記事を書きましたので、こちらをぜひご覧ください。このリンクから行くか、Twitterで発表しています。
というわけで、いよいよ本題のシャーディング概論とEthereum 2.0のほうに移りたいと思います。1点目は「シャーディングについて」です。
まず「シャーディングとは?」ということですが、非常に広い定義から紹介します。非常に広く言うと、複数のブロックチェーンで、1つの分散台帳、アプリケーションプラットフォームを作っていくというものです。
ここで、それぞれのシャードというのが右の図にある一つひとつのブロックチェーンのことを指していまして、大事なのは、それぞれのシャードが別々の履歴を管理する、別々のヒストリーを管理すると……。なので、あるシャードにあるコントラクト・アカウントはほかのシャードには基本的にはない、というかたちになります。
なぜやるかということなのですが、非常に乱暴に言うと、シャードの数だけTPSが上がっていくので、スケーラビリティの改善が主なモチベーションになります。
これは非常に広い定義ですが、狭義のシャーディングの定義として2つほど条件があります。こちらがわりとEthereumとかアカデミアでシャーディングと呼ばれているものです。
1つ目の定義が「異なるノードが各シャードに割り当てられる」というものです。自分があるシャードに割り当てられたとしたら、そのバリデーターはほかのシャードのことは見ない。これがシャーディングのスケーラビリティ改善としての特徴でして、TPSが上がっても1つあたりのノードが見るべきデータの量は変わりませんので、ストレージに関してTPS分だけ要求が増えることがありません。
この1つ目の条件を満たさない広い意味のシャーディングも「Transaction sharding」と言われたりして、こちらもこれで論文とか研究はあります。
2つ目の条件が非常に大事でして、「セキュリティは“あまり”落ちない」と書いてあるのですが、このようにブロックチェーンを分割してしまうと、かつ条件1を満たすと、一つひとつのシャードに属するノードの数、バリデーターの数は、当然N個に分けたらN分の1になりますので、セキュリティもN分の1になってしまうと。
これだと正しいスケーラビリティのソリューションじゃないので、これをなんとかして解決するのがシャーディングの2個目の条件になります。残念ながら完全に落ちなくするのは難しいと。ですが、“あまり”落ちないということで、その落ち幅がある程度に収まるというのが2つ目の条件になっています。
シャーディングに取り組んでいるのか誰かということですが、今日紹介するEthereumも当然やってるんですけれども、新しいブロックチェーン系のプロジェクトもシャーディングを導入しています。NEARというのはスタートアップでパブリックチェーンを作っていくというところで……。Polkadotは知ってる方もいるんじゃないかと思いますが、非常にEthereum 2.0に近いシャーディングの設計をとっています。
アカデミアでも2018年頃から急にいわゆるさっきの2個の条件を満たすシャーディングが現れ始めています。どれもセキュリティ系のトップカンファレンスですが、Omniledger・Chainspace・RapidChainということで、2018年ごろに出た提案になります。
では、こういったシャーディングのプロジェクトはどのように見たらよいかということで、今日はこの3つのポイントから見ていこうかなと思います。
1つ目がアーキテクチャ。シャードが分かれると言ってるんだけれども、どれぐらい・どういったかたちでそのシャードがつながっているのか。
2つ目がシャードセキュリティ。先ほどの条件の2つ目である、セキュリティがN分の1になってしまう問題をどう解決するか。ここでまたシャーディングの提案が分かれていきます。
3つ目がクロスシャードトランザクション。これもまた2つに分かれまして。ほかのシャードのデータをどういうふうに見るかというデータ層の話、それからそのデータ層の上でどういうふうにシャードをまたぐトランザクションを実行するかといったアプリケーション層。この2つに分かれるんですけれども、このクロスシャードトランザクションのつくり方によってもシャーディングの提案は分かれていきます。
それぞれいろんな提案をラフに見ていくこともできるのですが、今日はあえてEthereum 2.0に絞って解説しようかなと思っています。その理由は、Ethereum 2.0は比較的オーソドックスな提案をしていて、これを見ると他のシャーディングの提案も見やすくなるかなと思っています。
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
2024.12.09
10点満点中7点の部下に言うべきこと 部下を育成できない上司の特徴トップ5
2024.12.09
国内の有名ホテルでは、マグロ丼がなんと1杯「24,000円」 「良いものをより安く」を追いすぎた日本にとって値上げが重要な理由
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.11.29
「明日までにお願いできますか?」ちょっとカチンとくる一言 頭がいい人に見える上品な言い方に変えるコツ
2024.12.06
嫌いな相手の行動が気になって仕方ない… 臨床心理士が教える、人間関係のストレスを軽くする知恵
2024.12.10
職場であえて「不機嫌」を出したほうがいいタイプ NOと言えない人のための人間関係をラクにするヒント
PR | 2024.12.04
攻撃者はVPNを狙っている ゼロトラストならランサムウェア攻撃を防げる理由と仕組み
PR | 2024.11.22
「闇雲なAI導入」から脱却せよ Zoom・パーソル・THE GUILD幹部が語る、従業員と顧客体験を高めるAI戦略の要諦
PR | 2024.11.26
なぜ電話営業はなくならない?その要因は「属人化」 通話内容をデータ化するZoomのクラウドサービス活用術