Blockchainに関する技術力

Kenichi Kurimoto
Nayuta ブログ(日本語)
12 min readDec 3, 2019

--

Blockchainや仮想通貨の技術開発に関して、私達が考える捉え方というものがあり、私達はそれが当たり前の捉え方だと思っていたのだけど、世の中そうでもなさそうなので書いておくことにした。

SoC(SystemOnChip)の開発、医療機器の組み込みソフトの開発、DRMプロトコル・スタックの開発、こんな種類の開発の開発リーダー経験者がNayutaには集まっている(Webサービスやモバイルアプリの開発リーダーもいます)。それぞれ厳しい品質管理が求められる分野で、オープンソースではないので未完成で公開することもないような分野で長いキャリアを積んできた人間が多い。

Blockchainや仮想通貨はまだ始まったばかりの技術で、物事の捉え方は人それぞれ違って当たり前だと思っている。あくまでも私達がどのように考えているかの話。

また、ここに書いていることはあくまでも自分達の開発する基盤プロトコルレイヤーの話であって、アプリケーション部分はまた違うポリシーで進めている。

1. Blockchainはオープンソースで開発して、標準プロトコルに従う

自分達はBlockchainは、多数のエンティティ間にまたがる信用基盤インフラと捉えている。そのように捉えた時にクローズドソースで開発することはできない。仮にクローズドソースで開発した場合、信用に関してSPoFが存在することになる。コードの中に何かが仕込まれてないことや、開発チームが無くなった時にも運用が維持されることが保証できない。Trustlessはグラデーションとなっている概念だと考えているが、メインのプロトコル実装がクローズドソースでは成り立たない。ただ、例えばSPV walletのような補助的な立ち位置のものであればクローズドソースでもおかしいとは思わない(特定の会社のサービスの裏側に完全プライベートチェーンの場合は当然クローズドソースもあると思うけど、オープンソースのプロトコルをクローズドで使うところに向かうのではないかと想像してる)。

暗号セキュリティ基盤はオープンソースであることが要求されるのは技術に詳しければ社会常識だ。オープンソースでありながら安定して破られないことがもっともセキュリティが高いと判断される。TLS等、重要な暗号セキュリティ基盤は全てオープンソースだ。

また、自分達は標準プロトコルと言うものを非常に重要視している。Lightning Networkの論文を読んだ後、Hub&Spokeモデルの2nd Layer実装を行ったが、コーナーケースがあまりに多く、自分達だけで完全な検証を行うことは不可能に近いということを感じて標準仕様に参加した。未だにTLSやLinuxにクリティカルなバグは見つかる訳で、基盤技術部分でオレオレプロトコルを進めるのは非常に無理があると思っている(もちろん、EthereumやEOSも最初はオレオレプロトコルだった訳で、標準的なプロトコルになれる自信があればやっても良いとは思っているが、技術が初期状態から成熟期に向かおうとしているタイミングでそこにチャレンジするのは非常に難しい)。

2. グローバルな技術競争ではオリジナリティが問われる

自分達は海外のコミュニティにも参加し、Lightning Networkの開発にもコントリビューションしている。海外に行って強く問われると感じるのは「あなたのオリジナリティは何ですか?」という部分だ。ここは日本とは大きく違うと感じるポイント。日本では海外で生み出される技術をしっかり追いかけて物知りであるかどうかを競っていると感じることが非常に多い。そしてキャッチアップできていると「日本も負けてない」みたいなことを言うのだけど、実際は挑戦していることは全く別種のことだ。技術の先端でオリジナリティを出して技術の可能性を広げることを皆がやっているところからみると、知識を増やす勉強を目指しているのは「存在していない」と捉えられるというのが事実だ。先端技術の可能性を広げる競争をしているところではキャッチアップしていることにアイデンティは持たない。なので自分達は先端技術の可能性を広げるテーマを決めて(これが難しい)、それに必要なことは当たり前のように努力してキャッチアップしているが、特にそれを意識はしていない。

ここら辺、Blockchainや仮想通貨に限らず、他の分野でも日本だけ感覚がずれてるんじゃないの?って疑問を感じること結構多い。

3. プロダクトを出す

当たり前のことなんだけど、とにかくプロダクトを出すということを重視している。ベータ版でもいいので使ってみることができるプロダクトを出す。2.と同じでそもそも使ってみてもらわないとグローバルな競争では認知されない。なぜなら普通にトッププロダクトを出している人達がそこら辺に普通にいるからだ。日本の場合、そういうトッププレイヤー自体が非常に少ない上に、言語バリアがあるためトッププレイヤーとのインターネットでのコミュニケーションも限られている。なので適当なものを出して、あとは口で語るという手法が普通に使われているけども、オープンソースが基本で、プロダクトを出しているトッププレイヤーとSNSで気軽にコミュニケーション取れる英語圏のBlockchain界隈では誰も認めてくれない。

プロダクトを出すというのは本当に大変で、例えばLightning Networkの開発を始めて、testnet版をリリースするのに2年近くかかっている上で、そこからmainnetのreckless ver.を出すのにさらに1年2ヶ月かかっている。そしてまだもう一度作り直したらもっと良いものが作れると思っている。

元々2015年にBitcoinのブロックチェーンを用いた電源コンセントのプロトタイプを作って、実際にお金を動かすサービスを世に出すにはこれから相当な努力が必要だと認識してチャレンジを続けてきた。Lightning Networkプロトコル自体の開発はオープンソースで誰でも参加でき、グローバルトッププレイヤーもそこにコントリビューションする人達には非常に親切であったので、そこに貢献しながら本当の実装力をつけてきたと言える。

総合すると

上記の1.2.3.を総合すると、「標準プロトコルでオープンソースで開発して、その中で技術の可能性を広げるオリジナリティを示すプロダクトを出す」ということが自分達のやることになる(あくまで基盤レイヤーについての話)。これをやるのは実は非常に難易度が高く、凄まじく大変だ。けど、実際にグローバルトッププレイヤーがやっていることはこれであり、そこから逃げていても何も始まらない。ここがメジャーリーグ。

標準プロトコルには普通にコントリビューションしている。

(1)ptarmiganのメインネットリリース

これは、Lightning Networkの実装の中で、性能の低いハードウェアでも動作するというオリジナリティによって可能性を示した。

(2)Lightning Shield

上記のptarmiganを使って、クラウドにノードを建てること無しにLightning NetworkをIoTプロトタイピングに使用するという可能性を広げている。

(3)Stuckless Payment

Lightning Networkの産業利用において、stuckという状態が発生するは非常にクリティカルな問題になり得るということで、改善策を提案。BerlinのconferenceでChristian Deckerの発表でも言及され、現在プロトコル開発における検討項目の一つになっている。

(4)Nayuta wallet

こちらにおいても、Bitcoinのwalletとして現在の先端技術から可能性を広げるための技術の実装を行っている(もうすぐプレスリリース予定)。

実装力

ガラパゴスに逃げずにちゃんとメジャーリーグの問題に取り組んでいれば日本の会社であっても普通にグローバルなメディアが取り上げてくれる。

その他、英語圏で様々なところでとりあげられる。グローバル・メディアはBlockchainを国境のある技術とは思っていないので、”本当の技術開発”をしていれば日本でやっていても普通に問い合わせがきて普通に取り上げられる。

多くの人はビジネスモデルのチャレンジをプロトタイピングで行っているのが国内の状況だと思うけども、自分達は大きな金額の動くプロダクトをリリースできる”実装力”をつけるということも大きなテーマにして何年も取り組んできている。そしてそれができるところはグローバルでもそんなに沢山無いということを知っているのでそれだけでビジネス上の大きな競争力になると考えている(もちろんサービスのビジネスモデルも大事だ。基盤レイヤーを使ったアプリケーション開発ではそちらのほうが大事だし、クローズドソースも普通にある。しつこいようだけど、この文章は自分達で開発する基盤レイヤーについての話。けど、そこを綺麗に切り分けるのが難しいフェーズでもある)。"本当の技術開発"に取り組んでグローバルに名前を知ってもらうこともビジネス上の競争力になる。

ブロックチェーンの素晴らしいビジネスモデルを作れたとしても、大きな金額が移転する実サービスを動かす実装を発注できる先を見つけるのは難しい。そういう意味では実サービス実装できるということで大きなビジネスインにエントリーできるチーム数は限られている。

今回挙げた中でStuckless Paymentsはアルゴリズム部分の提案だけど、実際のところ「標準プロトコルでオープンソースで開発して、その中で技術の可能性を広げるオリジナリティを示すプロダクトを出す」というグローバルで競っている当たり前のことをやろうとすると、技術的に一番難しいのはプロダクトを出せる実装力だ。

何年も努力し続けて実装力をつけてきた思っている。それでもまだまだ伸ばさないといけないと思っていて、いくつか明確なテーマを持っている。それぐらい”プロダクトを出せる実装力”というのはBlockchain基盤レイヤーの技術力と言ったときに大きなものであるというのが自分達の考えだ。

--

--