実際に使って分かるブロックチェーンの仕組みとハードル

2018/6/22
6月11日から始まった、新しいコメント体験のβテストには、おかげさまでたくさんのピッカーさんが参加くださっています。皆さまありがとうございます!
特に試していただきたいのが、「サンクスポイント」機能。いいコメントに“ありがとう”を送ることができる機能です。
皆さんがポイントを送ったり受け取ったりした履歴は、イーサリアムと呼ばれるブロックチェーン技術のプラットフォーム上に記録されています。
注目を集めながらも、まだ活用事例の少ないこのブロックチェーン技術。機能を皆さんに使っていただく中で、さまざまな問題や課題が見えてきて、発見の連続でした。
そこで今回は、NewsPicksのCTOの杉浦に、テストが始まってからの1週間を振り返ってもらいました。皆さんのご協力のもとに私たちが得た知識やノウハウが、ブロックチェーンへの理解を深める一助となれたらうれしいです。
そして、βテストは途中からでも参加可能です。よろしければぜひお申し込みください。
※β版アプリはiOS版のみのご提供になります。あらかじめご了承ください。

Gethに泣かされる
小野 βテスト開始から1週間がたちました。特に初日は、テストの開始時間が遅れてドキドキしましたが、何が起きていたのでしょうか?
杉浦 お昼すぎにテストを開始するはずが、早々にトラブルに見舞われ、スタートできたのが夜21時ごろでした。楽しみにお待ちくださっていた皆さまには、大変申し訳なかったです。
テストを開始した6月11日、突然NewsPicksで管理しているGethの動作が不安定になったんですよ。イーサリアム・ネットワーク上で直接つながっていたノードが減少し、データが送れなくなってしまいました。
小野 さっそく話を止めてしまってすみません、Geth? イーサリアム? ノードってなんですか?
杉浦 βテストに申し込んでくれたピッカーさんには、最初にサンクスポイントを100ポイントお配りましたよね。
こうしたポイント履歴は「Geth」というソフトウェアを使ってイーサリアムのネットワークに送信、記録しています。ところがそのGethの動作が不安定になり、データの送信に想定外の時間がかかったのです。
写真左・杉浦正明(すぎうら・まさあき)
NewsPicks 取締役CTO。大学卒業後、日立ソリューションズを経て、シンプレクスに入社。大手証券会社向けプロジェクトのマネージャーを歴任した後に、高速為替取引システムの開発リーダーとしてアーキテクチャ設計に従事。2012年にトークノートに取締役CTOとして参画し、2014年にユーザベースに入社。
2016年にユーザベースから分社化したNewsPicksの取締役CTOに着任。
イーサリアムで実現できること
小野 そもそも、データを送るだけで、なんでそんなに時間がかかるんですか?
杉浦 それを理解してもらうために、少しイーサリアムについて説明しますね。
イーサリアムは、①中央管理者が存在せず(非中央集権)、②誰もが自由に参加できる、という特徴を持ったネットワークです。「ノード」と呼ばれる参加コンピューターで構成されていて、それぞれが複製された台帳を持っています。
この台帳にはこれまでイーサリアムに書き込まれた情報がすべて記載されているんですよ。
そして先ほど言ったとおり、このネットワークには管理者が存在しない代わりに、データをネットワークの参加者同士が直接やりとりして台帳に記録するんです。
その上で、その台帳上のデータを誰もが見ることができるというのが、ブロックチェーンの特徴です(編集注記:パブリックブロックチェーン)。
小野 大事なデータを、見知らぬ参加者に管理してもらうって、ちょっと怖くないですか?
杉浦 送信者とそのデータが信用に足るものかを確認しないと、悪意のある参加者に乗っ取られて改ざんされる可能性がありますよね。
そこで、送られてきたデータが正しいかどうか、確認し承認する仕組みを、イーサリアムは持っています。
例えば私たちがサンクスポイントの履歴データを送ると、他のノード(参加端末)はまず“未承認”のデータとして受け取ります。そして15秒に1回ほどの頻度で、受け取った内容が正しいものであるかを確認し承認します。こうして承認された情報は「ブロック」に取り込まれます。
杉浦が描いた、イーサリアム・ネットワークの図解。
この承認作業は「マイニング」と呼ばれていて、マイニングすると報酬がもらえる仕組みになっているんですよ。そして始めて、ブロックは他のノードにも記録されて行くことになります。
小野 なるほど、この辺のことってそういえば、NewsPicksでも以前に連載していたのを思い出しました!
杉浦 こうした複雑な仕組みにしているのも、すべては「非中央集権で、誰もが自由に参加できるけど、改ざんが難しい」、信頼できるネットワークにするためなのです。
「ノードが見つからない」問題
杉浦 最初の話に戻りますね。
6月11日に時間がかかった理由は、ポイントを付与するために新しく発行した未承認のデータを受け取ってくれるノードが全然見つからなくなってしまったんです。
それまでは、5~10個のノードと接続していたのに、不安定な時期には接続ノードが 0~1個になってしまいました。
接続するノードが少なくなると最新のデータを受信することができず、結果として送付履歴を送ることができなくなってしまいます。
小野 どうやって対処したんですか?
杉浦 まずやったのが、イーサリアムのネットワークに接続可能で、NewsPicksで管理するGethの端末を、より良いマシンに変えました。そして常に複数のノードが起動している状態を保てるように台数に増やしたりしたら、だんだんと復活したんです(笑)。
そんなわけで、12時ごろには配り終わるはずだったポイントが、「Aさんに100ポイント送った」と記録するのが21時頃になってしまったんですね。
小野 こうしたトラブルが起きることって、想定されていたんでしょうか?
杉浦 いや、想定外でしたね。というのも、小野さんも記憶にあると思いますが、βテストを始める前に社内で1ヶ月間テストしましたよね。
小野 私も参加しました。
杉浦 こうした機能を実装するときは、実際にやってみないと分からないことも多いんですよ。ひとつひとつ問題を洗い出しては対応して行きましたが、社内でのテスト期間中にこの問題は一度も起きませんでしたから。
テストに参加しているピッカーの皆さんに、実際に機能を使ってもらうからこそ、課題が見えてきて、対応することができる。
βテストには大きな意味があるんです。
(続く)