By Danny Ryan Core Researcher, Ethereum Foundation , Hsiao-Wei Wang Core Researcher, Ethereum Foundation , Aya Miyaguchi Executive Director, Ethereum Foundation
Aya:昨日この2人が、スライド出ていますが、Ethereumのアップデート、2.0と言っていますが、そのプランについて今年決まった内容を話してくれました。その後いろいろなオーディエンスの方と話しつつ今日何を話すかディスカッションしていた。
1.0とはそもそも何か?と言う話と、ふたりとも研究チームのメンバーで、どういうふうにコラボレーションして他のファウンデーション外のメンバーと進めているか様子がわかればと思って会話します。
オーディエンスの方からも質問を受けます。
では英語で話します。
昨日セレニティの話をしました。ベーシックな話をしますといま日本語で言いました。
Danny:既存の1.0を大きく改定しよう、Bitcoinと同じPoWが使われています。お金の移転や、分散型のコンセンサス形成に計算力を使う、これがEthereumですね。最初に2014年にローンチされた。当時も発展過程だと理解されていました。そのあと非常に大きな運動になり、周りにコミュニティが出来てきました。ユーザーの可能性に非常に色々できるとなって、大きく進展してきました。最初からこれで終わりと考えていなくて、いろいろな改善をしてきた。既存のブロックチェーンを使ってEthereum2.0にしようといろいろな研究がされてきました。Serenityのロードマップは最初からずっと会ったと言って良いかもしれません。同効率を高められるか。Ethereumのシャーディングと読んでいますが、そうしたことをずっと考えています。Casperの話(PoS)の話もありますね。これも2つバージョンがあって、
Aya:そこまで掘っていく?任せるけど
Danny:2つのバージョンというのは目指すところは同じです。PoCをずっとやってきています。2つが同じチャレンジをし合いながら別々のアルゴリズムを進展させてきた。設計もアルゴリズムもちょっと違う。競争という程ではないが、それぞれがどんどん良くなってきた。そのなかのCasperFFGが本番稼働準備ができてきた。CVCはまだ作業中ということで、将来の技術かなと思います。
Hsiao-wei:プロトコルのスケーラビリティーを向上するプロトコルです。ステートエグゼキューションのファンクションに寄ってスケーラビリティが通貨にも使えるものになると。2.0のパティション、これがShardingというものになります。シャーディングは複数のチャンス(?)を設けて、毎秒あたりのトランザクション数を伸ばします
Danny:シャーディングデータベースのテクノロジからこれは来ています。お互いに隔離されているが、アルシュのコミュニケーション、ディスクリート、書き込みの際にお互いについて知る必要がある。シャーディングはそこからインスピレーションが来ている。1024の別々のブロックチェーンが並列に動いているかのようになる。ある種の処理のときだけお互いコミュニケーションを図る
Aya:それがもともとの1.0の考え方ですね。2018年に何が起きたかと言うと、なぜこういったものが出来てきたのか、教えていただけますか
Hsiao-wei:Shasper, Casperそれぞれことなることに取り組んでいました。最初からCasperチームはCasperテストネットの研究、それから...EIPについてもっと話しますか?
Danny:CasperもShardingも昨年かなり研究が進んでしっかりした実装がアアルという状況になっていました。1月の最初にテストネットがろーちされた。継続したテストを続けました。クライアントが本番の実装に取り組み始めました。
Hsiao-wei:研究の最中にわかったのは複数の共通の特徴がCasperとShardingにあると気づいたのです。Casperだけを使うのかという話になって、2つを組み合わせようということになったのです。
Danny:デザインを統一することが間違いない方向だということが明らかになってきました。既存のEthereum1.0チェーンがプロダクションで動いています。両方が既存のチェーンにつながっている。2つの取組みを統一しようと考えたとき、既存のインフラをこれらのソリューションに利用することは難しいと考えたのです、ある設計の判断が数年前にくだされているからです、バーチャルマシンやコアの実装の判断が数年前にくだされていたからです。トークンのコミュニティがあるからと言って既存のメンテナンスを他のものと買えることはリスクがあると考えました。革新的な提案をしました、CasperとShardingを統一しようということです。そしてそれを既存のEthreirumとパラレルで作ろうと考えたのです。効果とリスクを1.0と隔離する、同時に動き並列に動く。2.0が展開され安定し堅牢であるとわかった段階で1.0を2.0にロールアウトしようと考えたわけです。これに寄って早くいろんなものを壊したり、あるいは壊すこと無く、コミュニティのインフラの成果につながったのです。
Aya:アイディアからうまれ開発者が開発をしたのですね。皆さんのアイディアに基づいてどのように開発者はこれを実装できる、あるいは開発者とどのようにコミュニケーションできるのでしょうか。分散化された中でどのように協力するのか仕組みを知りたい
Danny:数年前まではいろいろな議論がいろいろなところで起きていて難しかったが、昨年まとまって、強力な提案ができると感じ、リサーチコミュニティーからも開発者からも積極的に関与することになりました。強固な基盤、提案を最初から出そうと考えたわけです。OSSリポジトリを作り、どのようにアルゴリズムがスペックとなるか考えた。私達は一緒にプロダクションエンジニアと仕事をしています。使用をより洗練されたものにしている。人々が協力して作る。お互いに作って影響を与え合う。使用が洗練されていくというフィードバックのループがある。よりオープンになり始めました。多くのチームと洗練させていった。
Hsiao-wei:頻繁にいろんなチームの戸の間でイテレーションしました。いま8つの実装があります。開発者だけではありません、リサーチャーも居ます。
プリズム、ライトハウス、パリティ、パリビアム、ハムニ、ジャバ、パンセオン、ペガサス、ロードスター、ニンバス、 1つぐらい聞き逃した
Aya:Statusの人たちがニンバスやってくれています。ほとんどの人たちがファンデーションに入っていますよね
Danny:ブロックチェーンコミュニティはみんはが考えているわけでは無いですが、1つか2つしか無いかと思われますが、いろんなプロトコルの実装が会ったほうが良いと思います。1つしか無くてバグがあったらブロックチェーン自体がダメになる。複数あった場合、2つでコンセンサスが取れなければ分かれてしまう。3,4となってくると、コンセンサスバグが有って1つが同期が取れなくなっても残りの3つで進めていくことができる。 たくさんの実装が会ったほうが良いと思います。様々な言語で世界中の人達ができるのがサイロ的に確立されていくのが良いと思います。 Ethereumの実装をコンシューマー向けのマシンに載せようとしている、もう片方では高効率を目指しているものもある
Aya:リサーチトピックに戻ってほかの、大学などの研究者をどのように巻き込んでいるか
Hsiao-wei:ワークショップをやって、IC3という大学機関や、ジャスティンドレイクという、共同VDAリサーチ、大学関係他にもやっています
Danny:この一年間で確実に大学関係とオープンに付き合うようになってきました。研究暗号化ゲーム理論などがスタンフォードやMITで集まってもらって3,4日、課題があるのだがと言ってみんなで知恵を寄せ合うという形で。大学関係でかなり関心が高まっていると思います。学術的にも面白い課題だということで。日本でもそうした事ができるといいですよね。
もう一つ興味深いのが、バルセロナのスーパーコンピューター
Hsiao-wei:レオナルドという人とが、Shardingをスパコンでやっている。興味深いシミュレーショングラフが出てきています。スパコンでシャーディングするとどうなるのかがわかる。
Danny:100シャードぐらいやっている。1000シャードとか何十万というバリデータがある場合、どうなるかわからない。ネットワークのトポロジーやメッセージチェーンなども含めてシミュレーションしている。
Aya:個人や学校ベースで貢献して下さる方々をいつも募集しています。
では質問を会場から
Q: 後方互換性はどのくらい気にしているのですか、アプリケーションなどこれから開発したい人たちに対して。企業向けにやっていこうとしているのですが。
Danny:もちろん大事にしています。既存のアプリもたくさんあり、既存コミュニティに対して、エコシステムにとどまってほしいですし。ただ今の段階、まだまだ技術も若いです。そしてこの技術が本当にモテる可能性を最大限発揮させたいので、一部ご完成を今の段階では無視することもあると思います。これから出てくるソリューションに今から入ってもらうのはいいタイミング。既存のものはブレイクすることはないと思います。しばらく別の環境で続けてもらって、2.0に統合されることになると思います。まだ実装が展開されていない、スマートコントラクトで作業しているものについては、コンパイルして展開するとき、2.0でも使えるようにと考えています。1.0で新しいシャーディングでやる場合にはツーリングやコンパイルツールはあります。継続性として、今のアプリケーションがどういう段階か、同デプロイしていくかで、共通のパスも1.0とあります。固有のところが出てくるのも確かです。
Q: 2つ質問がありますShardingをどうやるのか。ステートの変更がシャードをまたがって行われた場合どうなるのですか?
Danny:クロスシャードコミュニケーションと読んでいます。コントラクトが別のシャードをコールしたり値を受け渡すとき、コアの方で、まだ研究という段階でアイディアが出てきているところだが、Phase0,1,2でやろうとしています。ステートは2でやろうとしている。非同期のクロスシャードコミュニケーションを行います。トランザクションがシャード間でトランザクションされて最後にファイナリティされる。6分ごとにファイナリティが行われるので、その間にビーコンチェーンを通して非同期なトランザクションを行えます。非同期に寄ってリアルタイムアプリケーションのソリューションになると思います。
Q: もしコアのコミュニケーションが他のシャードと通信するのであればスケーリングが難しくなりませんか
Danny、はい、非同期のコールがファイナリティのポイントに依存しています。もし非同期のコミュニケーションを許可するなら、シャーディングはいろいろタンブリングしてべつの組織になる、一つのシャードが他のシャードに影響を与えることになる。しかしポイントファイナリティで調整するなら、そこで最終的に調整されて、何らかのリオル具が底であっても他には影響がない、非同期コールは隔離できるということです。確率論的、日和見主義的にそのときそのときで評価しコミュニケーションできると思います。 etheresera.chにたくさんのディスカッションが載っているので、興味があればチェックして、コントリビューションしてください。
Aya:日本語バージョン誰かが作っていますよね、翻訳じゃなくて、日本バージョン。
ありがとうございました。他にも質問があればWebサイトか今日この2人を捕まえてください。東京にまた戻ってきたいと思います。
Danny:日本からコミュニティが成長し何度も来日できることを望みます。