ビットコイン、ノードにどうやって最新データが行き渡る?

小宮自由

ビットコイン、ノードにどうやって最新データが行き渡る?

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

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

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

この章の最初で、サトシは話を取引プールに広げている。次に、ノードが近隣のノードへデータをリクエストするネットワーク・ブロードキャストの仕組みを説明している。最後に、コードの作業に直近の18ヶ月間取り組んでいることを打ち明けている。

サトシ・ナカモト 2008年11月17日 火曜日 13時33分04秒

それでは2008年11月17日 13時33分04秒のサトシのメールをみていこう。

========================
Re:ビットコイン ピア・ツー・ピア 電子キャッシュ 論文
サトシ・ナカモト 2008年11月17日 月曜日 13時33分04秒 -0800

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

James A. Donaldは書きました:

サトシは書きました:

幸い、必要なのは、待機中の取引プールを現在の最良のブランチのために保持することだけです。

このときに必要なのは、良いふるまいをする誠実なピアがいて、その通信とデータ保存が良好で、そのピアが、どれが現在の最良のブランチかを知っていることです。

つまり、ノードの方で必要となるのは、いま持っている最良のブランチに対する待機中の取引プールだけです。そのブランチが、そのノードがブロック作成に取り組むブランチです。プールを必要とするのはこのブランチのためだけです。

プロードキャストはたぶん、ほぼ完全に信頼の置けるものになるでしょう

全てのメッセージが最低一度は届くと仮定するのではなく、メッセージの未着信が頻繁に起きても情報が必ず届くメカニズムを作る必要があります。

ピアネットワークのプロードキャストの仕組みは説明したと思います。

それぞれのノードは、新規ブロックのハッシュとブロックに含まれる取引のハッシュを集めた目録リストを、近隣のノードに送ります。近隣のノードは未受信の項目をリクエストします。タイムアウト後になっても項目が届かなければ、他のノードにリクエストします。最終的には、ほぼ全てのノードが全ての項目を保持しているので、たとえ一ヶ所からの受信に失敗しても、一度に一ヶ所ずつ試せば、他のノードから取得できます。

目録リクエストデータの構造によりちょっと待機時間が発生しますが、最終的には、伝送キューから余分なデータブロックを外し、帯域を節約することにより、速度を上げます。

あなたにはそういう設計に関する基本構想があり、それは大きな前進ですが、しかし、悪魔が潜んでいるのは些末な細部です。

コーディング作業中のここ一年半の間に、この些末な細部を全て研究しつくしたと思っています。問題はたくさんありました。関数の詳細は論文*1ではカバーできていませんが、ソースコードがまもなく出せます。主要なファイル群をお送りしました(要望に応じて配布します。完成版のリリースはもうすぐです)。

サトシ・ナカモト

暗号学メーリングリスト

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

【訳注】

*1 ビットコイン論文のこと。

解説

ネットワークの混雑などが原因で、ノードにすべてのデータが速やかに渡らない場合があるのでは? という疑問にサトシが答えています。ビットコインは分散してデータを保管することにより、ほぼすべてのノードが直近までの履歴を保存しています。もしあるノードに接続できなくても、他のノードに接続すればほぼ同じデータが手に入ります。そのため、世界中にほとんどのノードのネットワークが脆弱である、というような特殊な場合(これまで一度も起こっていません)を除いて、ほとんどのノードに最新のデータはすぐに行き渡ります。

小宮自由

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

Header Image/iStock:Dilok Klaisataporn

関連するキーワード

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

小宮自由

東京工業大学でコンピュータサイエンスを学び、東京大学ロースクールで法律を学ぶ。幾つかの職を経た後に渡欧し、オランダの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

東京工業大学でコンピュータサイエンスを学び、東京大学ロースクールで法律を学ぶ。幾つかの職を経た後に渡欧し、オランダの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

この特集のその他の記事

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

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