LayerXのR&Dが目指すところ

Osuke
LayerX-jp
Published in
17 min readDec 14, 2018

いつもお世話になっています。Osuke(@zoom_zoomzo)です。

LayerXはブロックチェーンのテクノロジーにBetしている会社です。まだ未成熟な技術分野に積極的に張っていき、新しいプロトコルを生み出し、それを実際に事業・ビジネスへ応用・開拓していく会社です。

つまり、ブロックチェーンに対して技術とビジネスの両面からアプローチして、新しい「モノ」を生み出そうとしています。

これを実現するためにLayerXのR&Dチームではブロックチェーンのプロトコルレイヤを主な対象にR&Dを推し進めています。

そこで、今回の記事では、R&Dチームが実際に何をR&Dしていて、どこを目指しているのかということをお伝えしていければと思います!

なぜR&Dするのか

以下の記事で@mosa_siruがお伝えしているように、publicブロックチェーンはほとんどの領域がR&Dのフェーズです。

つまり、ブロックチェーン自体がまだ多くの未解決の問題を抱えており、ブロックチェーンに詳しくない開発者やエンドユーザーが実際に「役立つ」ブロックチェーンベースのサービスを使ったり、そのサービスが社会的なインパクトを与えるようなフェーズにはまだまだ到達していません。

そして、当然これはブロックチェーン技術の未発達だけが原因ではなく、各国のレギュレーションや標準化が追いついていないことも大きな影響を与えていると考えられます。

そこで、僕らR&Dチームは現状のブロックチェーンのボトルネックとしてあげられる前者の「ブロックチェーン自体の問題」を解決するためにR&Dをしています。

このようなR&Dを行なっていくことで、中長期的に見て自社プロダクトに技術的アドバンテージを与えられるような、あるいはその分野の「見晴らしの良い場所」になり得るようなことを目指して、R&Dを行なっています。(参考:“A Great Vantage Point” ブロックチェーンのトレンドとキャリア

何をR&Dするのか

ブロックチェーンにはさまざまな未解決の問題がある、と上述しました。この記事を読んでいる方なら、実際にどのような問題があるのかいくつか想像できると思います。

僕は、現状のブロックチェーンの問題は大きく分けて以下の5つに分類できると思っています。

Problems with blockchain
  • Usability

秘密鍵管理・Tx処理時間などエンドユーザーが使う上での障壁

  • Privacy

秘匿送金・個人情報保護など

  • Verifiability

フルノード運営コスト増大に伴う分散性の低下

  • Scalability

単位時間あたりのトランザクション処理能力制限

  • Security

スマートコントラクト・プロトコルの脆弱性

それぞれの問題の詳細についてはまた別の記事で解説するとして、上図にあるように、現在R&Dチームではよりプロトコルレイヤに近い、「Security」「Scalability」「Verifiability」「Privacy」の大きな4つのテーマに対してアプローチしています。

そして、この中で全ての土台になっている大きな問題・課題がセキュリティにあると考えています。

ブロックチェーンは互いに信頼していない不特定多数の主体がいる状況下でブロックチェーン内のデータに関して自由に合意形成できる場です。もし、ブロックチェーンのセキュリティが脅かされてしまったら、ブロックチェーンがブロックチェーンたる性質が失われてしまいます。

つまり、他の問題を語る以前にブロックチェーンのセキュリティが一番重要であると感じています。ここでいう「セキュリティ」とは、実際に多くの資産に影響を与えているスマートコントラクトのバグだけではありません。ブロックチェーン自体のプロトコル、コンセンサスアルゴリズムであったり、PlasmaやState channelのようなオフチェーン技術のセキュリティも指しています。

特に、これからSerenityに向けてEthereum自体が大きく変化していく過程でさまざまな脆弱性が危惧されることになるでしょう。

さらに、セキュリティという土台ができあがっただけでは実際にブロックチェーンは実社会でワークしません。より多くのトランザクションを処理する必要があり、個人情報のコントロールも必要になってくるでしょう。さらに、Verifiabilityが改善されないとgasに悩むだけでなく、分散性が低下し再びセキュリティの大きな問題に直結してしまいます。

このようなブロックチェーンの課題を解決するためのアプローチとしては、僕たちR&Dチームは「Vyper / Formal verification」「zk-SNARKs / zk-STARKs」をメインに担当するさらに2つのチームに細分化して取り組んでいます。

Vyper / Formal verification (形式的検証)

このチームでは、主にブロックチェーンの「セキュリティ」問題を解決するためにR&Dを行なっていて、具体的にはVyperとFormal Verificationに主に取り組んでいます。

Vyperとは、PythonライクなシンタックスでSolidityよりも可読性を高めることで安全性向上を目指しているスマートコントラクト言語です。形式的検証とは、コントラクトやプロトコルの仕様を厳密に定義することで安全であることを形式的に検証する手法のことを言います。

実際に、real worldなexampleとしてPlasma MVPをvyperで実装したり、vyper開発者コミュニティを促進するべくremixのvyperプラグインの開発、そして現在はvyperにおけるopenzeppelinのようなライブラリを目指すFVyperプロジェクトが進行しています。

FVyperの接頭辞”F”はFormal Verificationを意味し、実際にK Frameworkという形式的検証のためのツールを用いて形式的検証を行なったコントラクトのみをこのライブラリに追加しています。

これにより、仕様通りのコントラクトのみをライブラリ化することができ、予期せぬコントラクトのバグを最小限に抑えることができます。

さらに、形式的検証の分野ではスマートコントラクトだけでなく、コンセンサスアルゴリズムやState channelなどの今後標準化していくであろうoff-chain技術も含めた形式的検証を行うR&Dも行なっています。

スマートコントラクトのバグだけでなく、プロトコルやクライアントレベルまでを含めたEnd-to-Endな形式的検証を行うことは、「ブロックチェーンのセキュリティ」という土台を固める上で必要な安全性検証になるでしょう。

zk-SNARKs / zk-STARKs

上述したように、ブロックチェーンにはセキュリティの他にも、Scalability/Verifiability/Privacyなどの大きな課題があります。これらの課題を解決するべくLayerXではzk-SNARKs/zk-STARKs(ゼロ知識証明システムの一種)に対しても1つチームを組みR&Dに取り組んでいます。

なぜS[NT]ARKsにフォーカスしているのかというと、汎用性の高さです。ブロックチェーンのような分散システムとゼロ知識証明システムの相性の良さがゆえに汎用性の高さを生んでいます。

それぞれの技術についてここでは詳しく解説しませんが、実際に現状だけでも以下のようにS[NT]ARKsをベースとしたプロジェクトが多く誕生しています。

S[NT]ARKs based protocols

しかし、S[NT]ARKsのような証明システムが今後もブロックチェーンに応用されていくことを考えると、S[NT]ARKsの専門性の高さがどうしても学習コスト・導入コストが障壁になり発展が阻害されてしまいます。

そこで、LayerXのS[NT]ARKsチームでは上記のプロトコルの中のひとつを作るよりも、S[NT]ARKsベースのプロトコルが簡単かつ性能高く作れるようなtoolkitの開発を優先してR&Dに取り組んでいます。

もっと簡単にS[NT]ARKsをブロックチェーンに適用できるようになり、さまざまなプロトコルへ応用され、ブロックチェーンの課題が解決されていくことが僕たちの目指しているところです。

ここまで具体的に現在、何をR&Dしているかお伝えしてきました。そこで、最後にLayerXのR&Dチームがどのようなカルチャーで上述したようなR&Dを推し進めているのか紹介していきます。

どのようにR&Dしているか

ここまで紹介してきたようなR&Dを進めていく上で、大きく分けて3つの必要なスキルがあると感じています。

  • どの問題を解くべきなのか探し出す力
  • その問題を実際に解いていく力
  • R&Dの成果を社外(国外)に発信していく力

詳しくは後述していきますが、要は「正しい問題を効率的な方法で解いていき、その成果をできるだけ多くの人に知ってもらう」ということです。

いかにして解くべき問題を見つけ出し、それをスピード感持って解決していき、実際に多くの人に知ってもらい使ってもらうか、が大切になると考えています。

僕らR&Dチームでは、これら3つのスキルを磨いていけるように研究開発をしています。

そして、これら3つのスキルは以下の3つのHowに対応しています。

  • 探し出す力:機動力高く、常に問題(What・How)を探し続ける
  • 解く力: 基礎学問の重要視 & Academic・海外勢との積極的な提携
  • 発信する力:コミュニティに貢献する

以下では、これらの内容について紹介していきます。

機動力の高いR&D:解くべき問題を探し出す力

R&Dで最も難しくかつ一番重要であると考えているのが、研究開発を行うテーマ設定です。つまり、解ければ大きなインパクトを与えられる問題です。(ここでいうインパクトとは、上述のブロックチェーン問題解決に大きく貢献することです。)

一番適切な問題は、「難しくて現状では実現していないが、おそらくあと1〜2年頑張れば解けてインパクトを与えられる問題」です。プロトコルの形式的検証も実現すれば、ブロックチェーンのセキュリティに大きく貢献しますし、S[NT]ARKsのtoolkitも実現すればその上に多くの課題解決プロトコルが乗っかってきます。

このようなブロックチェーンが抱える問題を根本的に解決できるような問題設定には、ブロックチェーンに関する包括的な知識とセンスが必要になり、これ自体がとても難しい問題です。

また、テーマ設定の中、「解けてもうれしくない問題」をはじくことは比較的簡単です。しかし、「実際に解ければ大きなインパクトを与えられるけど、難しすぎて数年では解けない問題」をはじくことはとても難しいです。特にブロックチェーンの分野では、いろいろなプレイヤーが絡んできて数ヶ月先の状況を予測するだけでも困難です。

通常のR&Dのイメージでは、大きなテーマをしっかりと定め中長期的に成果を積み上げていくことが多いはずです。しかし、僕たちのR&Dでは、ブロックチェーン分野の大変動する状況に対応できるように、少し変わった「機動力の高いR&D」を行なっています。

つまり、現状のフォーカスしている分野だけではなく、まだ見つけられていない「取り組むべき問題」を見つけ出せるように下図のような派生するさまざまな分野のリサーチも並行して行なっています。

機動力高く、いろいろなトピックに興味を持ち、常に問題(What・How)を探し続けるように意識しています。

今の問題設定(形式的検証とSTARKs)と同じように「良い問題」はまだまだ眠っているはずです。ブロックチェーンの課題解決に取り組む全てのソリューションが多くのポテンシャルを持ってると思っており、リスペクトしています。八方美人な訳ではなく、それだけブロックチェーンが「不可解なもの」だと考えているからです。

このような問題にも取り組めるように冷静に意思決定できるように視野を狭めず、機動力高くR&Dしていくことが重要だと考えています。

基礎学問の重視 & 積極的な社外提携:問題を解く力

形式的検証もS[NT]ARKsもブロックチェーン分野だけでなく、コンピューターサイエンスとして幅広く応用可能で、かつそれぞれが1つの学問分野として成り立っている大きな分野です。

そして、それぞれがブロックチェーンと親和性が高い分野でその分野の基礎をしっかりと固めることがR&Dを進めて実際に問題を解いていく上で重要だと考えています。

土台となる体系的にまとまっている学問分野を学び活用することがまず重要だと考えており、しっかりと基礎を学ぶことでブロックチェーンへの応用範囲が広げることができると考えているのです。

イメージ的には、下図のようにそれぞれの学問分野をブロックチェーンに応用していく橋渡しを僕たちは担おうとしています。

「問題を探し出すこと」にも関連しますが、自分たちで一から新しい分野を開拓したり、アカデミックな分野の研究を進めていくのではなく、すでにあるブロックチェーンとの親和性が高い分野の最先端をキャッチアップし、「橋渡し部分」を研究開発していると言うこともできるでしょう。

具体的な例をあげると、Ethereum上の秘匿送金を開発しようとしてまず思い浮かぶ技術はゼロ知識証明としてブロックチェーン界隈で有名になっているzk-SNARKs / zk-STARKs / Bulletproofs などです。

しかし、最近話題になった秘匿プロトコルのAZTEC Protocolは上記の技術は利用しておらず(類似している部分はありますが)、コミットメントのスキームを応用しています。つまり、基礎がしっかり分かっていれば同じ問題に対して違うアプローチを行うことができ、そういった部分からブロックチェーンの可能性を広げることができると思っています。

また、R&Dで解こうとしている問題は、当然かなり難しく実際にその問題を解いていくための相応のエンジニア力が必要になります。元々、その問題分野に対するバックグラウンドがあれば良いですが、多くの場合はほとんど詳しくないところからのスタートになるでしょう。

ある程度のレベルまでは本やネット情報をベースにキャッチアップしていくことが可能です。しかし、それらの知識をベースに新たな仮説を立てたりするフェーズになると、正しい仮説検証を行うためには自分たちが持っている知識だけでは足りないことがほとんどです。

そのため、その分野の最先端を研究している大学などの研究室や似たテーマに取り組んでいる海外プレイヤーなど「より詳しい先行者」とコンタクトを取り、議論したり一緒に進めていくなどの工夫が必要になります。

ネット上のオープンな議論の場に積極的に参加したり、直接コンタクトを取ることで自分たちだけでは直接仮説検証できないレベルの意見を聞き、積極的に参考にしています。

それぞれの学問分野の最先端に対する基礎研究ではなく、それぞれの最先端を理解し、それらの理論をブロックチェーンに応用していくことで、ブロックチェーンの最先端を少しでも広げようとしています。

発信する力:アウトプットを出す

「詳しい人に聞くことが大切」と上述しましたが、逆に僕ら自身が有益な情報発信をしていくことも大切であると考えています。自分たちの中だけに知見を溜めるのではなく、コミュニティに貢献していくことが大切でああり、業界全体を少しでも盛り上げられるように意識しています。

実際に、リサーチした内容はほとんどScrapbox上で公開し、R&Dの開発も全てオープンソースで行なっています。

このような知見のアウトプットがエコシステムの拡大に繋がると考えています。

また、当然ですが「良い」研究開発をするだけで世界中の人が勝手にその成果を見つけてくれて評価してくれることはありません。そのために、日々のアウトプットの積み重ねが大切だと思っています。

そして、そのためにもResearchをするだけではなく、実際に”Development”をして、簡単でもいいから動くモノを作っていくようにしています。実際に、開発することでキャッチアップするだけでは得られない深い理解ができ、新しい問題を生み出すきっかけになりますし、それ自体がアウトプットになり得ます。

また、実際のリサーチ方法は以下の@veryNRの記事がとても良くまとまっているのでぜひ参考にしてください。

以上、LayerX R&Dチームの取り組み方であったり、考え方を紹介しました。偉そうに色々書いてきましたが、僕ら自身もまだまだ道半ばでブロックチェーン分野に対して何のValueも出していないと自覚しています。R&Dは分野やチームの規模によってもアプローチ方法はさまざまなはずですが、「ブロックチェーン分野の小規模なR&D」としてぜひ参考にしていただければうれしいです。

仲間を募集しています。

LayerXでは一緒にブロックチェーンのR&Dを取り組んでいける仲間を探しています。現時点で、暗号学や形式的検証に詳しい必要はありませんし、僕らもまだまだ未熟です(し、1ヶ月後には全く別の分野をやっている可能性もあります。笑)また、これからブロックチェーンの変化に合わせてさらに他の技術も開拓していく必要があります。

上述したようなR&Dカルチャーにagreeしていただける方、変化の激しいブロックチェーン分野の幅広いトピックスに強い興味関心を持っている方、ぜひわいわい一緒にR&Dをしていきましょう!

また同時に、LayerX の事業紹介とカルチャーで紹介しているようなブロックチェーンをビジネスに適用していくエンジニアも募集しています!

--

--