無人島で紙とペンだけでブロックチェーンを体験する方法

飯田 諒

ブロックチェーンを紙とペンのみで実現してみよう

前回の記事(「なぜビジネスに分散型合意システム(ブロックチェーン)が必要なのか」)で、ブロックチェーンの必要性が理解できたかと思います。

本記事では、前回の前提に基づいて、無人島で実際にブロックチェーンのようなシステムを紙とペンのみで実現する方法を紹介します。

もちろんこの記事でブロックチェーンを理解するのに必要な概念を全てカバーできているわけではありません。しかし、ブロックチェーンをできるだけやさしく実生活に寄り添いながら説明しているので、初心者にとっては理解を大きく促進するものであると確信しています。

原文を書いたのはOrbs(既存の事業者に対して分散型ビジネスモデルを構築するためのコンサルティングを行うイスラエル企業。複数の巨大ICOプロジェクトのコンサルを務めた。)のCEO Tal Kol氏です。本人からの許可を得て翻訳しています。

何人かと一緒に無人島で生活することを想像してみよう。そんな時に、分散型コンセンサス(またの名を「ブロックチェーン」)の仕組みを理解していれば、とても役立つことだろう。必要なのは無人島でともに生活する何人かの仲間、この記事、ペン、そして何枚かの紙のみだ。

無人島生活で分散型コンセンサスの仕組みがいかに重要かまだわかっていない場合は、前回の記事をまず呼んでみてほしい。分散型コンセンサスでない場合にどんな課題が起きるかがわかるだろう。

登場人物を紹介する。飛行機事故によって無人島に漂着した4人-Hugo、Sawyer、Kate、Jackだ。

軽く概要を説明すると、4人のメンバーはIslandCoinという通貨で経済システムを構築しようとしている。それまでは物々交換で乗り切っていたが、自分が欲しい時に欲しいものを買えないという問題があるため、価値を媒介する通貨が必要であった。4人はそれぞれが100コインを手元にもつ状態でスタートし、通貨を鋳造する貴金属がないため、各メンバーの入出金を紙に記録することで各メンバーの残額を計算できるようにする。誰か1人が全員分の入出金を管理する方法を試したが、それでは管理人の都合のいいように不正が働きかねないので、全員で管理する方法をとることにした。

この記事では考えうる最もシンプルなブロックチェーン技術の実現方法を無人島生活のケースで紹介する。今後の記事ではそれに肉付けする形で「Proof of Work」や「Proof of Stake」などの概念を紹介し、利益や不利益を考察していきたい。とりあえず今回は一番シンプルな説明をしていく。

1日目:そもそもなぜブロックチェーンを導入するか

そもそも、ブロックチェーンを導入する目的はなんなのだろうか?

答えはとてもシンプルで「メンバーが持つコインの残高を不正なく管理する」ということである。

この仕組みの大きなポイントは、1枚の紙で管理するのでなく4人全員が自分の紙を管理し(”分散型”の部分)、後々4枚の紙を照らし合わせて一致することを確認する(”コンセンサス(合意)”の部分)というところである。

下に示したのが、残高を管理する紙だ。

初日、全員に100コインが配られた(もちろん実際のコインではなく書類上だが)。 その下にはそれぞれのサインが書かれている。

この紙は、一番最初にメンバー全員が同意するものである。それぞれが持つ100コインの残高は、事前に全員の同意を持って決定された額だ。この紙を全員がコピーして、それぞれが自分の紙を管理していくことにする。

当然、入出金があればメンバーが持つコインの残高は変化していくので、一日の終わりにこの書類をアップデートするとしよう。

そしてもう一つ重要なことがある。このメンバー内には信頼関係がほとんどないため、それぞれが個別に残高書類のアップデートを行う。書かれている内容に同意できる場合、自分の名前をサインしてもらう。これにより、メンバーの残高に毎日全員が同意することができる。

何人が同意すれば「承認」となるだろうか。合意形成(コンセンサス)をする必要があるので、「過半数」以上が必要だ。今回の話では4人で行うので、3人以上の同意があれば合意形成ができる。

上に添付した画像だと、4人が同意しているので間違いなく合意形成がされたということになる。

ところで、なぜ私たちは全ての紙に対して4人全員の同意は必要ないのだろうか。もし全会一致で合意形成をしなければいけない場合、悪意の有無に関わらず1人でこのプロセスを台無しにすることができるからである。もしSawyerが数日間釣りに出かけてしまったら、その間残された3人は残高の管理をすることができない。つまり全会一致にすると、1人に対する力が偏り過ぎてしまうのだ。

では逆に、そもそも過半数である必要はあるのか?

4人中2人が同意すれば合意形成されたということでいいのではないか?

結論から言うとそれではダメで、なぜなら、書類のバージョン1(HugoとSawyerが同意し成立)とそれにマッチしないバージョン2(KateとJack)が共存してしまう可能性があるからだ。相反するバージョンが2つ認められてしまうというのはあってはならないのだ。だから過半数が同意する1つの書類が必要なのだ。

2日目:1つの取引を紙に記録

2日目。KateはHugoから2コインでトマトを買った。彼女は2コインをHugoに送金する記録を紙に書いた。

自分が行ったアクションの番号、内容を記載し、一番右に自分のサインを記す。

Kateにとって最初のアクションだったので「#1」というラベルをつけて、自分でサインもした。他の人が彼女が送金したかのように偽造することを不可能にするために、直筆のサインが必要である。

2日目が終わる前に、書類を最終化して残高をアップデートしなければいけない。書類をアップデートする担当は4人で日毎に担当を回すことになった。1日目はHugoが担当したので次はSawyerが担当する番だ。2日目の書類はKateの送金を反映した以下のような書類になるはずだ。

この書類が最終化されるためには過半数(3人以上)のサインが必要である。

しかし、上に添付した書類だと未完成である。なぜなら過半数のサインが得られていないからだ。Sawyerは他のメンバーを訪ねてその書類にサインを求める。

この書類の検証プロセスは簡単である。まずサインを求められたメンバーは自分の書類を確認し、前日の残高を確認する。次に送金履歴を確認する。今回の場合はKateの送金履歴のみ。この検証プロセスは簡単で、Kateの直筆サインがあり、前日Kateには残高に余裕があるのでHugoへの送金は承認ということになる。

全員の検証が終了してサインをもらったら、2日目の確定した書類を全員に発表する。全員はそのコピーを取ってから眠りにつく。

4人からの承認を得たので、送金と残高がアップデートされた。

3日目:安心してコインを使える土壌が整って取引が活発に

3日目がやってきた。システムはちゃんと動いていて、みんなが安心してコインを使える土壌が整ったようだ。HugoはSawyerから10コインで薪を買い、SawyerはJackか25コインで錠剤を買い、JackはHugoから2コインでトマトを買った。彼らはそれぞれ自分の送金を自分の書類に付け加えた。

1日が終わろうとしている。今日の書類のアップデート担当はKateだ。

Kateが上に添付した3つの送金情報を間違いなく追加するために、メンバー各自は自分の送金情報をコピーしてKateに渡さなければいけない。

しかし、Jackは送金情報のコピーを取るのが遅くなって、Kateにコピーを手渡す時にはもうすでにKateは書き終えてしまっていた。

SawyerとHugoの送金情報は記載されたが、Jackはコピーが間に合わなかったため、3日目の書類には記載することができなかった。送金が間に合わなかったJackはトマトを手に入れることができない。

これではJackからHugoへの送金が完了せず、Jackはトマトを手に入れることができない。Jackはお腹をすかせたまま寝なければいけない。お腹が空きすぎたJackは、Kateの書類にサインせずに何か食べるものを見つけるためにキャンプ場の外に出かけてしまった。もっとも、KateはJack以外の2人からサインをもらい、それぞれの送金情報と残高は承認されたが。

分散型合意システムであれば、Jackの行方が分からなくても3人のサインで書類が承認される。

→次ページ「4日目:一人がどこかに行ってしまった」へつづく

この記事の著者・インタビューイ

飯田 諒

あたらしい経済編集部。
ブロックチェーンをはじめとするテクノロジーが今後の経済をどう変えるのかを考えています。
インタビューを通して人の想いをメディアで伝えるのが好きです。
英語が得意なので、海外コンテンツの配信や外国人インタビューをします。Twitterにてお気軽にご連絡ください。

あたらしい経済編集部。
ブロックチェーンをはじめとするテクノロジーが今後の経済をどう変えるのかを考えています。
インタビューを通して人の想いをメディアで伝えるのが好きです。
英語が得意なので、海外コンテンツの配信や外国人インタビューをします。Twitterにてお気軽にご連絡ください。