ソラナ日本人エンジニアの対談企画
エコシステム(経済圏)を急拡大し、秒間5万TPSという規格外のトランザクション処理を実現するSolanaブロックチェーンが、近年話題になっています。
この記事では、そんなSolanaを一推しのブロックチェーンとして自社プロダクトにも採用する株式会社アトノイの取締役 兼 ブロックチェーンエンジニアの高地明氏が、Solana LabsでSolanaブロックチェーンを開発する唯一の日本人エンジニアの小野寺 諒氏をゲストに迎え、Solanaについてお話を伺います。
Solanaは、なぜそんなに高速なのか。また、新進気鋭のブロックチェーンを開発するチームはどのような雰囲気で開発をしているのか。内部の人しかわからないことを率直にエンジニア視点で対談をしていきます。
- 目次
2.対談者プロフィール
- 小野寺 諒(Solana Labs)
オープンソースと非中央集権をこなよく愛するフルスタックエンジニア。
2019年11月にSolana Labsに参画。ステーキングやストレージサブシステムを担当。
10才からプログラミングを始め、過去にはClearCode、Cookpad、Emotion Intelligence、Uzabaseにて在職。
Linux kernelからReact.jsまで多種多様な技術スタック、言語、サービス開発・運用を趣味及び職業で経験。結果的に、機械学習以外を除くおおよそのコンピュータ技術に精通している何でも屋。Webではryoqunとして活動中。
- 高地明(アトノイ)
ITベンチャー、上場SI企業を経て、マネーフォワードにてアプリ開発を担当。
その後DMM.comのCTO室でR&D業務を行いながら、ブロックチェーンサービス開発を行い、マイニングプール、セキュアWalletの開発、Stellarの調査、検証などを実施。
退職後、ブロックチェーンベンチャーにてDID開発や、暗号資産取引所でNFTサービスの開発責任者として従事。
3.対談本編
3-1 Solana Labsにジョインしたきっかけは?
高地:本日は、ブロックチェーンSolanaを開発するSolana Labsの日本人エンジニアRYOさんと対談する機会をいただいたので、Solanaを始め、Solana LabsやThe Solana Foundation(以下、Solana Foundation)について、詳しくお聞きしたいと思います。
ブロックチェーンそのものを実際に開発している方にお話を伺えるチャンスはなかなかないので、いろいろ伺ってみたいと思います。
始めに、なぜ日本人のRYOさんがSolana Labsにジョインすることになったのでしょうか?
RYO:元々僕はブロックチェーンに興味があって、次の転職のタイミングでブロックチェーン業界に飛び込みたいと思ったんです。
転職を考え始めたのは2019年10月でした。当時のブロックチェーンの状況を僕なりに調べて、すでに立ち上がっているプロジェクトないしは進行中のプロジェクトの両軸を含めて調査したところ、Solanaが一番イケてると思いました。
それでSolanaに決めたんですが、ありがたく実際にジョインできました。
高地:Solana以外にも候補はあったんですか?
RYO:ありました。次に気になったのは、NEAR Protocolですね。
高地:Wasm(WebAssembly)ベースのブロックチェーンですね。
RYO:そうです。
高地:WebAssemblyでスマートコントラクトを実行して、ブリッジでイーサリアムとの互換性を考えているブロックチェーンですよね。
RYO:はい。当時のNEARはUXであったり、ユーザー目線寄りのメッセージングのプロダクトを進めていたりしていたんですが、僕自身、エンジニアとしてスピード狂のようなところがあるので、ハードウェアの限界を攻めつつ高性能であるという点で、Solanaに惹かれていったというところがありました。
ほかにも思想的な面で分散化という考え方が好きなので、コンセンサスアルゴリズムがPoSではなく、ストレージの量に応じたPoWを使っている(PoST)新興ブロックチェーンのSpacemeshというチェーンも候補でした。
あとは、Handshakeというブロックチェーンを見たり、当時既にMainnetが稼働しているものではイーサリアム、Polkadot、Cosmos、プライベートチェーンのHyperledgerとかいろいろ調査したりした結果、Solanaを選びました。
高地:すごく幅広いですね。
RYO:僕、転職するときは、徹底的に調べますね。
高地:レイヤー1だけではなく、クロスチェーンだったり、まったく毛色の違うものも調べたり、徹底していますね。
オープンソースという思想に自分の人生をコミットして生きる覚悟
高地:最初、1番目がSolanaで2番目がNEARと聞いたときに、両方ともRustでスマートコントラクトを書くブロックチェーンなので瞬間的にRust縛りかなと思いましたが、全体的な話を聞くとそうではないようですね。
RYO:僕は開発言語にはこだわりはなくて、ほぼすべての言語を今まで触ってきたので、それはなかったですね。
高地:ブロックチェーンを選考する上では、ソースコードまでチェックしますか?
RYO:ソースコードは必ず見ます。
高地:それを見た上で、やはりSolanaがすごいということでしょうか。
RYO:はい、そうです。僕、ブロックチェーンの思想的なところが好きでこの業界に入ったのもあるんですが、前提として子供の頃からオープンソースという思想が好きで、そこにはガチで自分の人生をコミットして生きているので、ソースコードをチェックするというのは大事ですね。
高地:つまりは、やはりSolanaが一番尖っていて、テック的にも興味を惹かれたということなんですね。
RYO:そうですね。
それですぐにGitHubでSolanaにコミットし始めてプルリクエストとかを投げていて、そのうちSolana Labsから一緒にやらないかというお声がけをいただいたというのがジョインの流れです。
高地:Solana Foundationは通年でリクルートしていますが、そこに応募されたんじゃなくて、ソースコードにコミットしていてコントリビュートから入ったということですね。
RYO:はい、そうですね。
高地:その間は無職というかフリーで動いていたんですか?
RYO:あ、そうですね(笑)。僕の認識では、転職活動の一環なんですけど(笑)。僕は、募集があってそれに応募するというような受け身の性格じゃないですね(笑)。
高地:でも、それはいいですね。会社として求人募集する上でも、ソースコードにコントリビュートしている人じゃないと、理解しているかどうかも怪しいし、面接等では両者の認識のギャップも出やすいので、いい方法ですね。
ソースも理解していて、プロジェクトも好きでいてくれるというのは、すごくマッチング率もいいですよね。
RYO:そうですね。
高地:日本の企業みたいに一時間程度の面接で決めちゃうと、入社後に問題も起きやすいですから、いい方法ですね。
RYO:ありがとうございます。僕もオープンソースプロジェクトならではのいいところだと思います。就職後にソースコードを取得する手間もなく楽ですからね。
あとは最初からソースコードにコミットしていると、Solana Labsに参加してからも何か変わったことや知らないこともほとんどなく、すぐにフルタイムでSolanaの開発に携われ、やりたいこともできるので、それも恵まれた環境ですね。
高地:それはうらやましい環境ですね。日本も含めて、エンジニアの理想型ですね。
RYO:そう思います。ただ、入ってから知りましたが、僕のようにプルリクエストから入社するパターンはアメリカでも少ないそうです(笑)。他にもいましたが、大多数はリクルーティングで入社されるそうです(笑)。
高地:キミ、変わっているね、みたいな感じですか(笑)。
RYO:僕は、グローバルでも変わっていました(笑)。
高地:ちなみに、コントリビュートしている間にどれぐらいコミットメントしてたんですか?
RYO:コミットログを見ればわかると思いますが、そんなにコミットしていないですね。ただ、難しいレースコンディションとかを直していました。
高地:すごいですね。
RYO:手っ取り早く自分の技術をアピールするには、それが一番早いかなと思いました。
高地:だから転職活動なんですね(笑)。
RYO:あはは、そうですね(笑)。何の目的もなくやっていたんじゃなくて、アピールしていました(笑)。
高地:日本のエンジニアの方たちに対しても、そういう方法があるんだといういいお話ですね。
実はコントリビュートでいうと、僕もSolana Labsにコントリビュートできそうです。
何をしたかというと、Solanaのプログラムライブラリ(SPL)をフォークしたんですね。以前、RYOさんと話をしていたときにtransferはtransferCheckedのほうが最新ですよって聞いていたので、フォーク後にいろいろ調べていたんですが、TypeScriptの型補完でtransferCheckedが出てこなかったんですね。
RYO:あ、プルリクエストかな? サラッと通知を見たかもしれません。
高地:実装されているというのに何で出てこないんだろう? と思って、プルリクエストを出したら、中の人からコントリビュートありがとうというメッセージが来たんですね。
ちょっと間違いもあって、自分のローカルリポジトリなんですが、なぜかゴミファイルみたいなもの上がっちゃっていたので、「それは消してくださいと」というメッセージが届いていて、消してコミットしたら、すぐに取り込まれて、びっくりました。
RYO:あ、おめでとうございます。
そうだったんですね。詳しくはわからなかったけど、通知は来ていましたね。
高地:飛んでくるプルリクエストなんかも全部チェックしているんですか?
RYO:流し読みですね。
僕が日々どのように仕事をしているかというと、開発メンバーのGitのレビューや開発が主なんですが、通知のようなものはザッと眺めるんです。その中に、開発メンバーのメッセージやコントリビューターのコミットなどが流れてくるんですね。全部は深くは読んでいないんですが、通知が来たのはわかります。
高地:すいません、雑談でした(笑)。
RYO:これもオープンソースのいいところですね(笑)。
3-2 なぜ、Solanaのトランザクションは速いのか?
高地:これでRYOさんの人柄がわかったと思います(笑)。
次は、Solanaについて本題ですが、まず速さの秘密ってなんですか? というところ伺いたいと思います。
代表の川本と一緒にと立ち上げたアトノイでは、Solanaを使って、Dappsを開発しています。。ブロックチェーンに関する相談も多く受けていて、「どのブロックチェーンがオススメですか?」と聞かれたときに、僕たちはやっぱりSolana推しなので、Solanaの提案をするんです。その理由の一つが速さなんですね。
Solanaの速さは、オフィシャルのページを見ればすごい勢いでトランザクションが流れているのがわかるし、1トランザクションのスピードが1秒を切っているというスタッツ(stats)情報も確認できますが、それは結果ですよね。
結果を見せたときに、なんでこんなに速いんですか? と必ず質問されるんですよね。そこがうまく説明できなくて、PoH(Proof of History)という新しいコンセンサスアルゴリズムを採用していて……、という説明をするんですが、僕自身も説明できるほど理解していないというのもあるんですが、エンジニアに説明するのも難しいんですよね。
わかりやすいところで結果を見せるんですが、あとはバリデータ(ノード)のハードウェア要求スペックが他のブロックチェーンよりも高いんですよという話でなんとなく納得してもらっています。
今日はRYOさんにお話が伺えるのでいい機会だなと思い、まずそれを伺いたかったんです。
RYO:まず、Solanaはデータベースだと思ってもらうと、そんなに速度に対する違和感がないのかなと思います。ハードウェアのスペックが高いのは、データベースを動かしているのと同じようなものだからです。
Solanaが他のブロックチェーンと違うのは、データベースレベルの処理速度を担保したまま分散型ネットワークを構築できている点にあると思います。
なぜSolanaが速いTPS(Transaction Per Second)を実現できているかというと、コンセンサスアルゴリズム(合意形成)が既存のブロックチェーンと大きく異なるところだと思います。
Solanaのノードのマシンスペックが高いことも速さの理由の一つでもあるのですが、それよりも合意形成の部分が非常に速いのが特徴で、ノード同士が非同期であることが大きな理由です。
普通のブロックチェーンは、合意形成にノード間で同期が必要です。それを非同期にできるのが、SolanaのPoHというコンセンサスアルゴリズムです。
非同期の合意形成のおかげで、世界中に点在するSolanaのノードがそれぞれタイミングを合わせる必要がないので、どんどん高速でトランザクションを処理することができます。
高地:そのPoHの非同期の仕組みがTurbine(タービン)ですね。
RYO:非同期の仕組みは難しいので、次のステップで話そうと思っていたのですが(笑)。
高地:なるほど(笑)。
それと他のブロックチェーンの合意形成でよくあるのが、メモリプールを導入して、どのトランザクションを優先するかトランザクションをプーリングして順番を決めたりするような仕組みを使いますよね。
Solanaは、そのプーリングがないと聞くんですが、それはプーリングせずに同様なことができるということですか?
RYO:そうですね。プーリングしないで、実現できています。プーリングすると、トランザクションが詰まるので、そうなるとガス代(取引手数料)のオークションが始まってしまうんですよ(手数料の高いものから処理する状況)。
もう一つ、MEV(Maximal Extractable Value)というフロントランニングなどの問題が出てしまうので、これはあまりよくないですね。
プールの話も難しい話になってしまいますが、話を始めてしまったので続けます(笑)。
プールがあるとなぜよくないかを初心者の人にもわかるように説明すると、証券取引所を想像してもらうとわかりやすいと思います。
証券取引所で例えると、取引をしてくれという保留待ちの人がたくさんいて、プールがあると承認者が自分の利益になるように取引を並べ替えたりすることができるということなんです。それは問題ですよね。
逆にプールがなければ、並べ替えはできません。利用者側からすれば、それは安心につながりますよね。
高地:なるほど。それは承認者に恣意(しい)的な力が働かないように、あえてなくしているんでしょうか?
RYO:そうです。さっきいったガス代の話では、MEV(マイナーが抜き取れる利益)プールにトランザクション承認待ちのものがたくさん詰まっていると、利益になるトランザクションを優先させる恣意的な承認ができてしまう問題のほかに、自分のトランザクションを他のトランザクションよりも早く実行してほしいということで、利用者がガス代を積み上げ、結果、ガス代が高騰してしまい、それも問題になります。
ブロックチェーンの設計として、Solanaはそれを廃絶したいということで、プーリングをしていません。
高地:なるほど。機能的な面だけじゃなくて、思想的な部分でも公平性ということを意識されているんですね。
RYO:そうですね。ブロックチェーンというのは、仲介する存在がなく、誰もが平等にというのがコンセプトですから。
どのブロックチェーンも同様の思想ですが、これまでの歴史の中ですでにそういう問題が発生しているので、Solanaは設計ないし性能要求の段階から、その問題を解決しようとしてきました。
高地:先ほど、ちょっと話に出てきた非同期を実現させるPoHという合意形成の仕組みとは具体的にはどのようなものなんでしょうか?
RYO:まず、それへの回答のために前提となる課題設定をすると、Solanaのメインネットワーク(β版)は1000台ぐらいのノードがいます。
ブロックチェーンがトランザクションの処理をする際には、合意形成に参加しているこの1000台のノードに必ず生データを伝搬させなければいけないんですよね。そこは合意形成の大前提の話ですね。
通常のブロックチェーンには無いSolana特有の問題としては、SolanaではTPSと承認速度を物理限界に逼迫させるために、この生データの伝搬方法に関してノードの1Gbpsの帯域をピーク時には飽和させなければならないというトリッキーなシステム要件があります。
なのでいかに効率よくかつ素早く生データを配るかという問題を解決するために、Turbineは設計されていてSolanaに実装されています。それが、非同期の仕組みです。
具体的にはブロックを伝搬させるために、ツリー構造のような連絡網があるんですよね。学校の連絡網というイメージですね。学年やクラスに分かれているようなグループです。
その連絡網を安全な形で作って、トランザクションが沢山詰まっている1MBとか10MBといったブロックを小分けにしてうまく連絡網に流し込むようなイメージです。そうすると、低レイテンシー(遅延)かつ大容量のデータが送れるようになるんですよね。ちなみにBitTorrentから着想されてます。
高地:それが、すべてのノードに行き渡ったかはどう判断するんですか?
RYO:いい質問ですね。非同期なので、その確認はあえてしないんです。
高地:しないんですか?
RYO:1000台の合意形成ノードがいるといえばいるんですが、データを送りつけるいっぽうで確認はしません。すぐに、また次のブロックのデータを伝搬し始めます。
そうやって非同期の処理を繰り返していくことで、高TPSが出せる土台ができています。
高地:ノードすべてに行き渡るまで待つんじゃなくて、次のトランザクションが来ているということは、その前のトランザクションはもうどこかで承認されたものだと判断して、それでどんどん進んでいくということなんですかね。
RYO:ざっくりいうとそうだと思います。ストリーミングのようなイメージですかね。どのトランザクションがブロックに記録されていて承認されているかいないかは、最終的には確認しないといけないんですが、それが非同期にあとから合意形成されるんですよね。
これはタービンとは別のサブシステムで、タービン経由で伝搬したブロックがそれぞれのノードで承認されたかどうかを確認する仕組みです。
高地:ちなみに、それは何という仕組みなんですか?
RYO:具体的には、特に名前はありません。最初のタービンの話は合意形成のデータの伝搬方法について話をしたんですが、合意形成の具体的なアルゴリズムはTower BFTというんですが、強いていえば、その部分に属するものだともいえます。
高地:今のお話をまとめると、Solanaのトランザクションが速いのはPoHという合意形成方法があり、タービンという伝搬方法があり、Tower BFTで最終チェックするというイメージですか。
RYO:Tower BFTが最終的に合意形成をチェックするんですが、これが新興のL1(レイヤー1)ブロックチェーンとは違うところですね。なにぶん非同期でチェックをするので、合意形成にもちょっとクセがあるんです。
どのブロックチェーンにもいえますが、新しいブロックがリーダーによって生成されましたということになると、それをみんな(他のノード)で検証するわけですよね。各ノードの検証の結果、その最新ブロックがOKであるかNGであるかをSolanaの場合は待たないわけですよ。
そうなるとバリデータAとバリデータBが同時に新しいブロックを提案することもあるわけですね。このあたりは、ビットコインやPoWである現行イーサリアムののリオーグ(再編成)やアンクルブロックに似た概念になります。Solanaには、それが存在しているんですが、これは既存のL1ブロックチェーンの合意形成投票アルゴリズムではうまくいかないんですよね。
これには、Nothing at Stake問題というのもあって、バリデータとしてはブロックAにもブロックBにも投票するのが一番得になるという、ようは八方美人だと得だという問題が生じ、セキュリティ的にはよろしくないんですね。そうした多重投票の禁止、後続ブロックへの投票手順のようなことを厳密にコントロールして、OKとかNGを判断しているのがTower BFTというサブプロトコルです。
速さの基本的なテーマとして非同期があって、非同期で合意形成するには何が必要なのかを逆算していろいろな仕組みが作られたのがSolanaですね。
高地:わかりやすいですね。速さの秘訣は非同期で、それを実現するための仕組みが存在しているということですね。
ちょっと話がまた脱線してしまうんですが、今、Solanaのクライアントプログラムを作っているんですが、トランザクションのステートを確認するメソッドの、パラメータとしてconfirmedとかmaxとか種類があり、その種類により、トランザクションのConfirmaion(コンファメーション)を指定できますよね。
RYO:ありますね。
高地:自分の認識では、maxが最終的にすべてのノードでチェックされたものとして使っていたんですね。今の非同期のお話だと、全部をバリデータがチェックしているわけじゃなくて、Tower BFTであったり、最終的な合意形成のサブシステムで合意が取れたのがmaxということでしょうか? プログラミングする上で、どう認識しておけばいいんでしょうか。
RYO:はい、合意が取れてロールバックする可能性がないのが、maxです。
高地:ちなみにパラメータにはmax以外にもありますが、順番としてmaxの手前は何になるんですかね?
RYO:maxが一番強いですね。次は何だったかな……。ちなみにmaxはファイナライズと同じです。maxだとわかりにくいので、finalyzed(ファイナライズド)といっています。
高地:すいません、いろいろステートがあるから、こんな質問をされても困りますよね。
RYO:いや、大丈夫です(笑)。いろいろあるといっても大事なのは、3つぐらいしかないんですよ。
高地:本当ですか。できれば、それを教えていただくと助かります。
RYO:finalizedが一番強くて、次が確かconfirmedです。これは、ロールバックの可能性は限りなくないんですが、若干あるという状況です。本当にあれば、スラッシング(ステークしたトークンの没収)が発生します。Solanaでは、まだ一度もスラッシュは発生していませんが、そういうステートです。
もっと弱いのがあって、これは確かprocessed(プロセッスド)ですね。processed(プロセッスド)は、名前の通り処理しただけというステートです。なので、ロールバックされる可能性もあります。少なくとも、Solanaのノードにに投げたトランザクションが届いたという判断ができるぐらいのステートですね。
高地:この3つがポイントなんですね。
RYO:はい、そうです。トランザクションというのは、ブロードキャストしてからprocessedになって、confirmedになって、finalyzed/maxになります。
高地:たくさんステートのパラメータが用意されているというのは、使う側が使いたいシーンに応じたステートで判断してねということでいいんでしょうか。
RYO:そうですね。それぞれに使い勝手があり、さっき話した順番でfinalyzedが一番遅いわけですよね。ですので、すごい大金の送金や重要なものはfinalyzedまで待ち、細かいトランザクションやインタラクティブな操作の時はコンファームドくらいがちょうどよいですし、processedは、スマートコントラクトのデプロイにはSolanaの場合は大量にトランザクションが必要になるんですが、そういうときにバッチ処理で投げてあとで確認するというときに利用します。
高地:ありがとうございます。よくわかりました。
RYO:最後に速さについて一つだけ言いたいことがあります。速さの秘訣というのは、非同期であるということを説明してきましたが、あとはハードウェアを限界まで酷使するというのがありますね。プログラムがRustで書かれているということもありますし、トランザクションが実行されているときにもマルチコアな時代においてそこらへんもフルに活用しています。ゆくゆくはGPUを使ってトランザクションの並列実行も目指しています。
その恩恵として、(半導体回路の集積密度は1年~2年で2倍となる)ムーアの法則によってどんどんTPSも上がっていけるぞという設計になっています。
それがSolanaの強みですね。
高地:今まだGPUを生かしていない段階でもこのスピードであるというのは、すごいですね。
RYO:まだベータの段階ですので、今後の改善によってまだまだポテンシャルがあるぞと思っていただけるとうれしいですね(笑)。
高地:その並列実行というのは、Solanaの8つのイノベーションの一つの「Sealevel(シーレベル)」のことですか?
RYO:はい、そうです。ビットコインやイーサリアム、ないしJavaScriptなどはシングルスレッド実行が前提にあって、そのために並列化がしにくいというのがあります。Solanaの場合は、そもそも並列化を前提に設計されているので、さらに高TPSが実質的に出せるようになっています。
Sealevelがその並列化の土台になっています。
高地:速さの秘訣がよくわかりました。ありがとうございます。では、次に行きます。
3-3 最近はSolana=NFTという印象が強いですがそれは戦略ですか?
高地:
二番目の質問は、はたから見ているとここ半年でSolanaのエコシステムの拡充もしくはサービスの展開がものすごく増加している印象なんですね。
最近、NFTのサービスなども増えているじゃないですか。Solana内部ではどのような変化がありましたか? 中にいる人ならではの視点でお話が伺いたいと思っていました。
RYO:僕は今、外からSolanaを見ている人のお話が聞けて面白いなと思っています(笑)。
まず、僕はエンジニアなので、これからお話しする僕の意見が全部正しいとは思いませんが、NFTはむしろSolana側が世間の盛り上がりに敏感に反応して迅速に仕掛けを仕込んでそれを放ったという印象ですね。
NFTが2020年の暮れから2021年の始めにかけてイーサリアムなどで盛り上がりを見せて、メディアでも取り上げられるようになり、それに対してSolana Labsのビジネスチームが後押しをして、SolanaとしてはNFTもやろうということになったんですよね。
その結果としてSolanaのエコシステムの中でMetaplexというNFTのマーケットプレイスが誕生しました。それで、NFTの界隈でSolanaのエコシステムが広がったんだと思うんですよね。
高地:Metaplexのおかげで、アート系のNFTのプライマリーマーケットって、すごく簡単に作れるようになりましたよね。リリースのタイミングもよかったです。
リリース当時、自分もMetaplex protocolでNFTを発行してみようと思って、ドキュメントを探したのですが、ちゃんとしたドキュメントもなく、ソースコードもなかなかの複雑ぶりでした(笑)。勢いは感じました。
RYO:そうなんですよ(笑)。おっしゃるとおりで、そこをしっかりしないといけないんですが(笑)。スタートアップあるあるですが、今は、その余裕がないですね。
オープンソースの文化としては、ソースこそがすべてで(笑)、今は、ドキュメントよりも新機能を開発したほうがいいだろうという雰囲気ですね。戦略的には、そっちのほうが重要度も高いですね。
結局、エコシステムとしてもっと成長するためには、僕らがどんどん前進していかなきゃいけなくて、大御所のオープンソースプロジェクトや大企業さんのところのようなことを期待されてしまうと、間に合わなくなってしまいます。
そうなると、エコシステムの成長が鈍化してしまい、開発者が勉強した投資コストが無駄になってしまうので、今のように頑張って我々についてきてくれ、という感じになってしまうんですよね(笑)。
高地:いいですね。そういうノリなんですね。ちょっと三番目に内情のほうを伺おうとと思っていたんですが(笑)、そういうことなんですね。
大企業などで、特に日本の大企業などでエンジニアチームが500人とか1000人規模のチームになると、ドキュメントを重視するスタイルのエンジニアもたくさんいますよね。まずドキュメントを書こうよという人もいますね。
ちなみに、Solanaの中にはそういう人もいたりしますか?
RYO:僕は、すごく書きたいですよ。時間があれば、ドキュメントは書きたいです(笑)。でも、今はどんどん先に進むしかないんですよ。
それがSolanaの成長スピードですから。さっきのNFTの半年間での飛躍の秘訣ですよね。
高地:それがあるからブーストしたということですよね。
さっきのエコシステムの話に戻りますが、以前に伺ったときは、Solana Foundationでは、NFTもそうでしょうけどDeFi(分散型金融)等に注力していくということだったんですが、エコシステムが広まってほしい分野としては、どのような分野に期待されているんですか?
RYO:そうですね。あとは、まだ攻め切れていない新領域に対しても開拓していこうと思っています。
高地:可能なら、どんな分野か伺ってもいいですか?
RYO:ブロックチェーン界隈ではよく引き合いに出されますが、僕らはVISAのTPSを常に意識しています。ペイメントにおけるセトルメントレイヤーですね。そこは、成長していく分野であると、容易に想像できる領域だと思っています。
高地:それを飛躍したいい方をすると、リアル世界への進出ということでしょうか。
RYO:まさにそうですね。
高地:DeFiやNFTは、ブロックチェーンであったり暗号資産の中の延長線上の話であったりですが、新領域への展開というのはリアルな世界での使われ方ですよね。
RYO:そういうことになりますね。Web 3.0の本来の理想である、実際のWeb 2.0と遜色のないことを実現させるためにSolanaがあるというイメージでしょうかね。
高地:今のSolanaのパフォーマンスがあれば、いけそうですね。
RYO:はい。なので、それを元にリアルで支払いができたり、NFTもゲームなどと組み合わせたり、安価に高速にいろいろ利用できるようになると、期待しています。
高地:イーサリアム界隈では、GameFiという言葉が昨今話題になっていますが、Solanaも意識はされていますか?
RYO:僕は、あまりゲームは詳しくないんですが、Star AtlasさんがSolana上でブロックチェーンゲームを作っていますが、まさにGameFiを意識されているんじゃないでしょうかね。
高地:Star Atlasさんも、話題になっていますね。
今のβ(ベータ)版のメインネットが、リアル世界でSolanaが使われるようになるのは、いつぐらいになるとお考えですか? ベータはいつ取れるんでしょうか。
RYO:いい質問ですね。ベータが取れるのは僕らが決められるわけではないんですよね。
高地:誰が決めるんですか?
RYO:僕らは、Solana Labsといいまして、エンジニアをいっぱい確保しているのがSolana Labsなんですね。もう一つ組織としてはSolana Foundationがあって、そこは開発を特にしていません。Solana Foundationは、Solanaの方向性を決めていく組織ですね。あとステークホルダーとしてSolanaコミュニティがあります。コミュニティはSolanaを使ってくれている人やノードとして合意形成に参加してくれている人たちが所属しています。Solanaは大きく分けて、この3つの組織で構成されています。Solana Foundationはそのコミュニティーの意思の取りまとめ役として委任されている感じです。
βが取れるかどうかは、Solana FoundationでもSolana Labsでもなく、Solanaコミュニティなんですね。
僕らSolana Labsは、コミュニティの要望を技術的に解決しているだけであって、ネットワークの運用に関わらず、意思決定を一切持っていません。これは、Decentralized(ディセントラライズド)、分散化機構のブロックチェーンにおいては大切なことだと思っています。
ですので、βが取れるのがいつかは僕らは答えることができないんですね。
高地:それは、決め方は決まっているんですか?
RYO:最終的には、オンチェーンによる投票ですね。
それでいうと、メインネットベータが2020年の3月にローンチした時も、僕らは関わっていなくて、TDS(Tour de SOL)を前身とする組織が母体になってブートストラップリーダーというのがコミュニティ内にできて、そこが決定したんですよね。
高地:TDSというのは何でしょうか?
RYO:Solanaのメインネットベータをローンチする前に、Solanaをテスト運用する人をWeb上で募ったんですね。それが元にできたチームです。
高地:投票に参加するにはSOL(Solanaの暗号資産)をステーキングしていれば誰でも参加できるものなんですか?
RYO:はい、そうです。
高地:コミュニティにおける投票権というのは、SOLをステーキングしている量に応じて投票権も変わるんですか?
RYO:はい、もちろんそういう仕組みです。これに関してはQuadratic Votingなどの代替手法もあると思いますが、僕としては妥当だと思います。
高地:ありがとうございます。二番目の質問はかなり脱線してしまいましたが、よく理解できました。
あと、Solanaのファウンダーで写真の見た目がファンキーなAnatoly Yakovenko(アナトリー・ヤコベンコ)さんっていらっしゃるじゃないですか。
RYO:はい、気さくな方ですよ。元々エンジニアです。ひと言でいうと気さくですね。話しやすい方です。エンジニアとしてもイケてるなぁと思います。僕は、いつもすごいなと思って見ています。
高地:Solanaのベース設計はヤコベンコさんがやったと前に伺ったことがあるんですが。
RYO:はい、そうですね。PoHは彼が考えましたね。
高地:今もヤコベンコさんは、アーキテクチャーの新機能を考えたり、コードを書いたりしているんですか?
RYO:設計については時々意見をいってくれたりします。コードは、ごくごくたまに書きますね。
高地:すごいですね。ファウンダーなのにエンジニア魂も残っていますね。やっぱり、ヤコベンコさんがコードを書いたりすると、中で「おー」となったりするんですか(笑)。
RYO:あ、新型コロナ禍になってリモートでチャットベースなので、そこまでの臨場感はちょっとわからないですね(笑)。
高地:定期的なオンラインミーティングは、されるんですか?
RYO:全社ミーティングみたいなのがあります。そういうときに、アナトリーとも話をするときはありますよ。あ、ファーストネームで呼びあうので、僕らは彼をアナトリーと呼んでます。
高地:そういうときにも、気さくにお話しされるんですか。
RYO:そうですね。アナトリーは、ファウンダーであるがゆえにビジョナリーですね。
高地:それ重要ですよね。先頭に立つ人は、ビジョナリストじゃなきゃだめですよね。
RYO:そうですね。アナトリーは、ブロックチェーンでここまでいけけるという強いビジョンを持っています。
高地:そういうのは、全体ミーティングでアナトリーさんが語ってくれるんですか。
RYO:語りますね。忙しいから毎回じゃないですが、語ってくれます。
高地:ちなみに今、みなさんは拠点としては主にアメリカの西海岸のほうにいらっしゃるんですか。
RYO:そうですね。
高地:今、ちょうどいいお話が出たので伺いますが、コンプライアンスやセキュリティを意識されている中で、具体的にどのようなことをやられているんですか? お話できる範囲でかまいませんので。
RYO:前提としてコンプライアンスに対する意識は、すごく高いと感じています。やはりブロックチェーンというのは新しい業界であって、たとえアメリカであっても規制ないし、レギュレーションリスクというのはすごくあって、そこらへんで僕らがつまずかないように、気を遣っているところはあります。
Solana FoundationやSolana Labsなど組織の棲み分けをしっかりして、役割分担をすることが大事ですね。あと、ブロックチェーンに起因するこれまでの訴訟やトラブルを学んで、僕らが二の足を踏まないように事前対策はしっかりしています。
僕がいっていることが正しいかどうかは、今後、Solanaに関してゴシップネタが出てくるか来ないかでしか証明できませんが(笑)。
高地:そうですね(笑)。
RYO:あとは、セキュリティ事故は防がないといけません。個人情報の流出とか、Solana FoundationはSOLを大量にステークしているので、そのへんのオペレーションミスであったり、ましてや秘密鍵が漏れたりするようなことがないように、気をつけています。
高地:そこは、どう管理しているか非常に興味がありますが、聞いても教えてもらえないでしょうから聞きませんが(笑)。
RYO:そもそも、僕も知りません(笑)。まぁ、必ずエアギャップないしコールドウォレットで、どこにあるのかもわからなくて、マルチシグで管理されているんじゃないかと思いますが(笑)。
コンプライアンスと共にセキュリティも重視していますね。
高地:アトノイは、Solanaブロックチェーンでエコシステムを作っていこうと思っていますが、お話を伺っていると安心してSolanaに身を任せても大丈夫そうだなと思えますね。
RYO:特に開発に関してはクリーンな環境でやっているということを知っていただければ、うれしいですね。
信用するという意味だと、コミュニティも信用していただけると思います。運用しているのはコミュニティですから。
高地:ちなみにですが、Solana FoundationやSolana Labsでは、Solanaのバリデータノードをまったく運営していないんですか?
RYO:まったく運用していませんし、そもそも運用してはいけないんです。責務として関わってはいけないんです。
高地:すごく徹底していますね。
RYO:そこはたぶん、ほかのブロックチェーンでも同じだと思います。最初の頃のテスト段階ではノードを動かしたりしますが、それだけですね。
最後に一つ運用の部分でいいたいことがあります。
運用の件では、今回Solanaに障害が起きてしまい、バグについては開発者の責務ではあるんですが、障害が起きてネットワークが一時中断し、復旧させるためにネットワークを再開させる(再起動)といった判断をコミュニティがしたことは大切なことだったと思います。
高地:確かにコミュニティチャットでノードに再起動をかけるかどうかの議論が行われていました。
RYO:そうなんですよ。僕らが急いでノードを再起動させるということはできないので、コミュニティは重要ですね。
AWSなどのようなCentrize(セントライズ)なシステムとは違って、障害が起きたから僕らですぐ直そうということはできません。コミュニティが最善の努力をして、十何時間かかってしまったんですが、分散化の観点では妥協できない。それは、しっかりとコミュニティによる分散化がされていることの証左に繋がりますから。
高地:ちょうど障害の話が出ましたが、実はそこも伺いたい点でした。
2021年9月14日にSolanaは、Botが原因で予想外の大量のリクエストが発生したことで、障害が起きてしまい、システムが一時中断してしまったということでした。 大量リクエストをケアする処理が入っていなかったことが理由で起きた障害だと報告にありました。その際に、コミュニティが判断し、メインネットを再起動させることで復旧させたということでしたよね。
RYO:そうです。
高地:障害が起きたということで、Solanaを使いたいと思っていた企業やプロジェクトグループ、エンジニアなどが、一時、ネガティブな気持ちになったと思うんです。Twitterでもそういう意見が見受けられました。
RYO:そうですよね。そういう障害が起きたと聞いたら、僕だって使う側だったらそう思います。
高地:障害が起きて、パッチをあてて再起動して一時対応が終わった後、RYOさんとチャットさせてもらったときに、「まだやれることもあったんですよね」というメッセージを頂いて、悔しさがにじみ出ていたというか、そう感じたんですね。そのときの、中にいるエンジニアの方々はどんな気持ちだったのかを伺いたかったんです。
RYO:ポジティブにいうのであれば、障害が発生したとしても僕らが絶対に担保しようと思っているのは、障害時にオンチェーンにのっかっている資産のインテグリティが損なわれないことですね。ようは資産が消えたり、勝手に増えたり減ったりしないことが大事だと思っています。
コミュニティによるリスタートの判断は、多少ダウンタイムが延びても確実に安全に再起動しようという方向性でした。根本的には、Solana Labsもコミュニティもそういう心構えでいます。
高地:いいお話ですね。ダウンタイムが長くなっても、資産を守ることを重視されているのは重要です。保全性を重視していたということですね。僕も、障害が発生したときには、自分の資産を調べましたからね。
RYO:ダウンタイムが長くなってしまう理由はもう一つあります。障害が起きると、ノードは1台1台がデータを検証するんですね。ノードが1000台といっても分散化されているということもあって、世界中に散らばっているので、タイムゾーンも違いますし、早く直そうとしても、どうしてもタイムラグは発生してしまうんですね。ですので、Centrizedなシステムのように1時間、2時間で復旧させるのは難しいというところがあります。
高地:障害のあとで、ヤコベンコさんがTwitterでつぶやいていたのが印象的だったんですが、「ブロックチェーンはOSを作っているようなものなので、安定するまで月日がかかる」というお話をされていて、本当にそうだなと思いましたね。
僕らSolana利用者としては、Dappsを開発していくので、Solana Labsが開発を継続してくれることで相互に理想的な協力体制が築けるのではないかと思っています。今日はSolanaの中の人であるRyoさんにいろいろなことを伺えて、安心することができました。今後も、頑張って引き続きよりよいプロダクトにしていっていただけたらと思います。
今日は、ありがとうございました。
RYO:こちらこそ、ありがとうございました。楽しい対談でした。
ソラナ(SOL)に投資したい方はこちらをチェック(PR)
様々な仮想通貨を購入したい方は、取引所別の取り扱い銘柄を確認してみてください。
(文・高橋ピョン太)
次回対談第2弾は、noteにて配信いたします。お楽しみに!
本記事は企業の出資による記事広告やアフィリエイト広告を含みます。CoinPostは掲載内容や製品の品質や性能を保証するものではありません。サービス利用やお問い合わせは、直接サービス提供会社へご連絡ください。CoinPostは、本記事の内容やそれを参考にした行動による損害や損失について、直接的・間接的な責任を負いません。ユーザーの皆さまが本稿に関連した行動をとる際には、ご自身で調査し、自己責任で行ってください。