効率的にブロックチェーンのリサーチをするための心がけ

Ryuya Nakamura
LayerX-jp
Published in
11 min readSep 17, 2018

LayerXにて研究開発、コード監査等を行なっている中村(@veryNR)です。

ブロックチェーン技術は日進月歩であり、ビジネスであれ研究であれブロックチェーンに関わっている人は、日々技術に関するリサーチ、サーベイを行なっていることと思います。ブロックチェーンに取り組んでいる会社の場合、経営上の不確実性を減らしたり、特定の事業における技術的な意思決定をするため、技術的な調査を行うことが必要不可欠でしょう。

ブロックチェーン分野では、毎日のように新しいペーパー・プロジェクトが誕生しています。当然全て追いかけることは難しく、少しでもリサーチを効率的にできたらいいのに、と思っている方が多いのではないでしょうか。

そこで今回は、筆者が個人的に守っているリサーチの心がけについて紹介します。これまで、State Channel, Plasma, eWASM, Vyper, スマートコントラクトの形式的検証, シニョリッジシェア系ステーブルコインやBancorなどの自律的な通貨発行プロトコルなど数多くのテーマについて同様の方法でリサーチを行ってきました。手前味噌ではありますが、皆さんの参考になる部分があれば嬉しいです。

ビジネスマン向けの(主に経営コンサルタントが書いた)本で同様のテーマのものはありますが、本記事では特にブロックチェーン関連の技術トピックに関して調査をすることに重点を置いています。

リサーチの流れ

リサーチはおおよそ下記のような流れで進めます。

  1. イシューの整理: リサーチの目的を明確にし、答えを出すべきイシューを洗い出す。
  2. 方針立て: 大まかに分野の全体感を掴んで、リサーチの戦略を立てる
  3. 体系的学習: 信頼できる情報源に絞り、腰を据えて体系的に理解していく
  4. イシューの解決: 集めた情報からイシューを解いていく。情報が不足していれば2や3に戻る。

それぞれについて説明して行きます。

1. イシューの整理

リサーチを始める前に、答えを出すべき問い(イシュー)を整理しておきます。

イシューが明確に意識されていることで、リサーチ作業中の細かい全ての意思決定を適切に行うことができます。例えば、リサーチの中で登場した未知の概念やプロジェクトについて「これを調べるべきなのか」という選択に頻繁に遭遇しますが、リサーチの目的に照らし合わせるからこそそれが必要・不必要であると高速に意思決定できるし、それが誤りだった場合にもすぐ気づけます。

むしろ、イシューを整理して初めて、「イシューに答えを出すためにどれだけ近道できたか」という意味での「効率」を測定できるようになります。このような考え方は有名なビジネス書『イシューから始めよ』を始め、広く紹介されていると思います。

最初にイシューを洗い出す時は、多少間違っても良いので、なるべく大胆な問いを出すよう心がけています。リサーチを進めるうちに「木を見て森を見ず」になり、徐々に他人と同じような問いしか生まれなくなりがちなので、頭がまっさらなうちに、ワクワクする問いを出しておくのがいいとでしょう。イシューへの取り組み方より、そもそもどんなイシューに取り組むかの方がはるかに独創性を出しやすいと思います。

ボトムアップなリサーチ

一般的なビジネスの現場に比べ、ブロックチェーン業界では、そもそも全く知らない分野のリサーチを行う場面が多いと思います。ある日を境に突然Twitterで知らない単語がバズっていたり、最近カンファレンスでよく聞くアレはなんなんだろう…(焦)ということがよくあります。

こういった場合、具体的にネクストアクションが意識されている訳ではなくても、ボトムアップに調査をするケースがあると思います。このような場合も、適当に調べ始めるのではなく、明確にイシューを用意します。大抵下記のような項目に答えを出すべくリサーチを開始します。

  • 何を解決するもの?
  • どんな仕組み?
  • 現状どこまでできる?
  • ツール・プレイヤー・コミュニティなど、エコシステムはどうなっている?
  • あと何年でどこまで出来るようになる?そのボトルネックはなに?
  • この技術は自社(自分)にどう関係する?

自分がState Channelに関して調べていた時もおおよそこれらのイシューに答えを出すよう務めました。

https://blockchain.gunosy.io/entry/state-channel

https://speakerdeck.com/nrryuya/state-channelekosisutemutoshi-yong-shang-falseke-ti

ビジネス上は最後の「この技術は自社(自分)にどう関係する?」というのがとても重要で、会社(や自分個人)として具体的にアクションを取る必要があるのかないのかはっきり結論づけましょう。(自社事業にどんな影響を与えるか、何かのソリューションとして使えないか、事業のタネはないか)

2. 方針立て

イシューを洗い出せたら、それらに答えを出すための手がかりを探し、ざっくりと戦略を決めます。戦略と言っても、

(1) 何をどういう順番で調べればいいか

(2) どの(誰の)情報源を当たれば良いか

というシンプルなものです。

(1)について、ブロックチェーンだと、テーマにもよりますが暗号学やコンピューターサイエンス、経済学などの知識を前提にしていることが多々あります。Aを理解するためにはBを理解することが必要、と言った依存関係から、学習・調査するべき順番がわかります。

(2)は、ブロックチェーン界隈では特に重要です。査読されていない論文(というかホワイトペーパー)や、アフィリエイト記事などが氾濫するため、情報の取捨選択が重要です。分野ごとに最先端を走っているチームは違うので、例えばEthereumの場合はEthereum Foundationのメンバーが発信する情報やGrant programに採択されているチームなどから探すのが良いと思います。研究機関だとIC3などが質の高い論文を出しています。

具体的に(1)(2)を掴むため、論文のIntroductionやRelated workを読みながら挙げられている論文を当たったり、詳しい人に聞いたりするのが良いでしょう。海外の人でもSNSやGitterなどで簡単に連絡を取ることができます。

この「雰囲気を掴む」ステップはダラダラ時間が過ぎてしまいがちなので注意しましょう。ある程度雰囲気を掴めたら、次の体系的に学んでいくステップに移ります。

3. 体系的学習

広く浅く文献を漁りその分野の全体像が見えてきたら、いくつか論文・本を決め、それらを集中して読みましょう。まとまった時間を作り、腰を据えてまずは一通り読んでみるのがいいと思います。ある程度体系的に理解するまでは、論文・本を一部分だけ読むのは二度手間になることが多いので避けています。

その過程で、2でざっくり決めた戦略を修正して行きます。学ぶ分野の順番を変えたり、特定の分野の学習を追加したり、逆に不要そうなものの調査を削ったりします。

2の広く浅い情報収集と、3の特定の論文・書籍への集中のバランスが非常に重要です。いきなり特定の論文・書籍に賭けてしまうと、それがハズレくじだった場合に気づくのに時間がかかったり、過度に影響されて本質を見失ったりします。逆に、色々な情報源からちょこちょこ掻い摘むのを続けていても知識が繋がらないまま時間が過ぎていきます。

理解の深さを調節する

リサーチ中に出会うサブトピックに関して、「どれくらい深く仕組みを理解するべきなのだろう」と悩むことがよくあります。

筆者は、「仕組みの理解の深さ」に関して以下のような基準を設け、リサーチの目的に合わせてどの段階の理解が必要なのか決めています。

1. 表面だけ理解

いわゆる「何ができるのかわかる」というやつです。仕組みや原理など中身はブラックボックスだが、要するに何ができるのか、何が便利なのかだけざっくり状態です。これだけ分かっておけば他のもっと重要な概念を理解するのに支障がない、中身の理解は今回のリサーチとは関係ない、という時はこれですませます。

例えば、Bancorのスマートトークンに関してなら「流動性リスクがないトークン発行プロトコル」といった程度の理解です。

2. 十分性の理解

1に加え、なぜその仕組みで期待する要件が達成できるのかを理解します。Bancorのスマートトークンなら、「コントラクトに準備金を持たせ、自律的にトークンのmint/burnと売買を行う、売買における価格は、準備率固定と価格が微小部分でも成立するという条件から微分方程式を解いて得られた式に基づいて行われる、そして…(略) よって、トークンは取引板無しに常に売買可能で流動性リスクがない」という感じです。

3. 必要性の理解

「なぜそのような仕組みでうまくいくのか」に加えて、「なぜそのような仕組みでなくてはならないのか」を理解します。設計の特定の部分に関して、他に方法はないのか、こう変えたらどうなるだろうか、などと考えていくと、その設計の必要性を理解することができます。

例えば、「Bancorのように自律的なトークン造幣局・交換所を作る上で、他にもっと良い価格の関数の構成の仕方はないのだろうか?」「Plasmaのexit待ちのtxの管理方法、優先度つきキュー使う以外にないのか」「なんでLightning Networkでは二つのトランザクションを”交換”するのか、1つではダメか」など、間違ってもいいので大胆な問いを立ててみましょう。

「必要性」も度合いがあり、要件を満たすために確実に必要というものから、実装を楽にしたり分かり易い設計にするためにそうなっているものまであります。これらから設計の自由度を理解することで、実際に利用したりする場合に応用が効きます。

1. 表面だけ理解, 2. 十分性の理解, 3. 必要性の理解というのはあくまで目安です。いずれにせよ、新しい概念に出会っているのだと自己認識し、「分からないことが分かる」ことがスタートだと思います。個人的には、特に英語文献の時に専門用語や分野特有の単語の使い方を見落とさないように注意しています。

4. イシューの解決

リサーチテーマについて、全体像と体系的な理解が済んだら、最初に準備したイシューに答えを出して行きます。(もちろん、2, 3の過程でイシューは追加されたり修正してOKです)

可能なかぎり、白黒はっきりつけましょう。答えが出せないなら何の情報が不足しているのか洗い出し、再調査によって解決できるのか、そもそも答えが出せない問いなのか考えます。

リサーチの目的によっては、チームに共有することもあると思います。どんなに深く調査・研究をしても、アウトプットするべき項目は一部です。結論と理由を整理し、1分で答えられる状態であるべきです。

LayerXでは毎日お昼過ぎに全社員で集まって勉強会を行っており、リサーチの結果もここで共有されることが多いです。

まとめ

いかがでしたでしょうか。簡単にまとめるなら、答えを出すべき問いを明確にし、適切な順番で物事を理解し、イシューにシンプルな結論を与える、という流れです。こういった、作業・思考の方法の改善は一朝一夕でできるものではなく、自分の悪い習慣を見つけて良い習慣に矯正して行く地道なものだと思います。利き手の反対の手で箸を練習するようなもどかしさがあります。

非常に乱暴ですが、バックグラウンドによって以下のようなことに気をつけると良いのではと思います。

  • 学生時代の研究などでリサーチ自体には慣れている方→ブロックチェーン界隈の情報は他分野に比べて整理・体系化されていないし間違っていることが多いこと
  • コンサル出身の方→最初のイシューの洗い出しでこじんまりせず、大胆な問いを技術でアクロバティックに解くこと、そのために腰を据えて技術を体系的に理解する時間を惜しまないこと
  • エンジニアの方→コードを読めばなんでもわかるぜ!というのは良いですが、設計・実装の部分はどこまでいじっていいのか、いじるとどうなるかの自由度を意識すること、抽象化すること

最後に

今回は「特定の技術に関してどう効率的にリサーチを行うか」という話でしたが、本来大事なのは、他者の後追いをすることではなく、独自のコンセプトを生み出したり、コードを書いてプロダクトを作ることだと思っています。リサーチはあくまでその補助です。(自戒を込めて)

また、企業における研究開発というのはそれ自体が深いテーマであり、特にブロックチェーン分野においてどう企業が研究開発をしていくべきなのかは個人的にも興味のあるテーマです。これについては、また記事を書こうと思います。

LayerXのメンバーと一緒に研究したりプロダクト作ったりして見たい!という方はぜひ来てください!!!

エンジニア: https://www.wantedly.com/projects/175017

BizDev: https://www.wantedly.com/projects/225562

--

--