サトシ・ナカモト「ビットコインの成熟」についての議論

特集 サトシ・ナカモトが残した言葉〜ビットコインの歴史をたどる旅

小宮自由

サトシ・ナカモト「ビットコインの成熟」についての議論

ビットコインを発明し、未だその正体が分かっていないサトシ・ナカモト。そんなサトシが残した約2年間の文章を、小宮自由氏の解説と共に紹介する連載「サトシ・ナカモトが残した言葉〜ビットコインの歴史をたどる旅」の第25回。

まずサトシのメールの前に、本連載の元になっている書籍『ビットコイン バイブル:サトシナカモトとは何者か?』の著者フィル・シャンパーニュ氏の解説も掲載する。

フィル・シャンパーニュ氏の解説

「成熟*1」は、採掘者のブロックチェーン作業の報酬として新規発行されるという、ビットコインに特殊な概念である。孤児ブロック化する可能性が消えると、報酬用のビットコインが成熟に達し、採掘者へ安全に支払われる。

ビットコインの成熟? サトシ・ナカモト 2009年11月22日 午後06時31分44秒

それではサトシの投稿を見ていこう。

========================

(注:斜体部分は、サトシ以外の者の質問を指す)

ビットコインの成熟
投稿:2009年10月01日 木曜日(14時12分UTC)

利用者の視点から見ると、ビットコインの成熟プロセスは八つのステージに分かれます。

1. 最初に「コイン*2 生成(Generate Coins)」をクリックすると、開始のネットワーク取引が始まる。

2.開始のネットワーク取引から、ビットコインエントリーが「全ての取引リスト(All Transactions list)」に現れるまでの時間。

3.ビットコインエントリーが「全ての取引フィールド(All Transaction field)」の外側から内側に変わる。

4.ビットコインが「全ての送金リスト(All Transfers list)」に現れてから、「記述(Description)」が「生成済み(あとx個のブロックで50.00*3 が成熟){Generated (50.00 matures in x more blocks)}」に変わるまでの時間。

5.「記述」が「生成済み(あとx個のブロックで50.00が成熟)」に変わる。

6.「記述」が「生成済み(あとx個のブロックで50.00が成熟)」を表示してから、「生成済み(Generated)」に変わるまでの時間。

7.「記述」が「生成済み」に変わる。

8.「記述」が「生成済み」に変わったあと。

ネットワーク接続、ローカルCPUの顕著な使用、リモートCPUの顕著な使用を要求するのはどのステージですか?このステージにはそれぞれ名称はありますか?

Re:ビットコインの成熟?

Sirius-m 2009年10月22日 02時26分UTC

私の知る限りでは、「コイン生成」をクリックするときにネットワーク取引は生じません。コンピューターが次のプルーフ・オブ・ワークの計算を始めるだけです。コイン生成中のCPU使用率は100%です。

この例では、ネットワーク接続を使用するのは、プルーフ・オブ・ワークのブロックを作成した情報(新規コイン獲得の権利が与えられる)をブロードキャストするときです。コイン生成中は、他の人が現在のブロックを先に獲得したときに新しいブロックの作業をスタートできるように、常にネットワーク接続が必要です。

ビットコインの成熟?
サトシ・ナカモト 2009年11月22日 午後06時34分21秒

コイン(ブロック)の生成中とコイン生成の成功時にはネットワーク接続が重要になります。

1.生成中は(ステータスバーが「生成中(Generating)」を表示し、プルーフ・オブ・ワークの発見作業にCPUを使っているときは)、最新のブロックの受信のため、常時、ネットワーク接続が必要です。自分の作業中のブロックが最新のブロックに連結されなければ、承認は受けられません。

2.ブロックの生成に成功すると、即座にネットワークへブロードキャストされます。それを受信した他のノードはそこにリンクし、最新の新規ブロックとして承認します。

これはチェーン作成の共同作業と考えて下さい。リンクを加えるときは、まず、チェーンの現在の終点を探す必要があります。これからあなたが最新のリンクを付けるとして、一時間中座し、自分のリンクを作成し、戻ってから、一時間前に終点だったリンクにそれをリンクさせても、他のノードはその間に数個のリンクを追加済みかもしれず、すると、あなたのリンクはもう中の方に枝分かれしているので、他のノードはこれを使おうとは思わないでしょう。

ブロックの作成後、120ブロック分の成熟時間があるのは、そのブロックがメインのチェーンの一部になっていることを、コインが使用される前に絶対的に確定するためです。あなたのノードはその間、ブロックに対しては何もせず、自分のブロックの後に他のブロックが追加されるまで待つのみです。この間はオンラインにする必要はありません。

========================

【訳注】
*1 原文では “maturation” と記載されている。ビットコインにおいては、決済やマイニング報酬などのコインの総量の変化は確率的に定まり、時間の経過とともにその確率は 100% に近づく。この近づいていくプロセスのことを maturation と表現している。

*2 「ブロック」と同義。つまり、ブロックの生成(マイニング)のことを述べている。

*3 最初期のビットコインのマイニング報酬は 50BTC だったので、恐らくこれはマイニング報酬のことを指している。

解説

ビットコインにおいては、全てのコインの移動は確定的なものではありません。こう聞くと不安定なシステムに聞こえますが、そうではありません。「99.99999999999% 確定している」というときに「0.00000000001% で覆るから不安」という人はほぼいないでしょう。そのような確率より、核戦争で全ての取引記録が失われるリスクの方がまだ高そうです。

一旦承認されたブロックは、それに対して新しいブロックが追加されれば追加されるほど、技術的にも経済的にも覆されにくくなります。これは以前「経済的ディスインセンティブが、51%攻撃を防ぐ」で解説した通りです。実務的には6つのブロックが先に存在すれば、そのブロックが覆されることはほぼないとされています。

マイニングにおいては100ブロック(42時間弱)経過しなければ、マイニング報酬を使用することができません。これは COINBASE_MATURITY という変数で定められています。この制約は、ビットコインのセキュリティを強化するために設けられています。特に、取引の二重支払いや他の不正行為を防ぐためのものです。マイナーが即座に新しいビットコインを使用できると、ネットワーク上での不正な行動を促進する可能性があるため、この待機期間が設けられています。

小宮自由

→この連載の他の記事を読む

関連するキーワード

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

小宮自由

東京工業大学でコンピュータサイエンスを学び、東京大学ロースクールで法律を学ぶ。幾つかの職を経た後に渡欧し、オランダのIT企業でエンジニアとして従事する。その後東京に戻り、リクルートホールディングスでAI(自然言語処理)のソフトウェア作成業務に携わり、シリコンバレーと東京を行き来しながら働く。この時共著者として提出した論文『A Lightweight Front-end Tool for Interactive Entity Population』と『Koko: a system for scalable semantic querying of text』はそれぞれICML(International Conference on Machine Learning)とACM(Association for Computing Machinery)という世界トップの国際会議会議に採択される。その後、ブロックチェーン業界に参入。数年間ブロックチェーンに関する知見を深める。現在は BlendAI という企業の代表としてAIキャラクター「デルタもん」を発表するなど、AIに関係した事業を行っている。 https://blendai.jp/ https://twitter.com/blendaijp https://twitter.com/BorderlessJpn https://twitter.com/BorderlessDAO

この特集のその他の記事

サトシも危惧していた、ビットコインのスケーラビリティ問題

ビットコインを発明し、未だその正体が分かっていないサトシ・サカモト。そんなサトシが残した約2年間の文章を、小宮自由氏の解説と共に紹介する連載「サトシ・ナカモトが残した言葉〜ビットコインの歴史をたどる旅」の第2回。

経済的ディスインセンティブが、ビットコイン51%攻撃を防ぐ

ビットコインネットワークに対する著名な攻撃(取引履歴を不正に改ざんすること)に、51%攻撃というものがあります。ビットコインは世界中のコンピュータがその計算能力を使い、取引履歴をブロックとして保存しています。この計算能力・処理能力の51%、つまり過半数を占めてしまえば、不正な取引履歴を正当とみなせるようになります。この問題は理論上取り除くことはできず、サトシもそれを認めています(ビットコイン以外の多くのブロックチェーンも、同じ問題を有しています)。