やさしいビットコインとってもやさしいビットコインスマートフォン用の表示で見るとってもやさしいビットコインビットコインや仮想通貨の知識が全くない初心者の方でもビットコインや仮想通貨がどういうものなのか分かりやすく理解できるブログを目指してます。最新記事一覧ニュース一覧2017-06-28ビットコインシステムで伝播するトランザクションの仕組みビットコイン基礎知識サーバーの無いビットコインは全ての参加者(ノード)が対等な立場でブロックチェーンを保存し更新情報を共有します。サーバーが無いので取引データ(トランザクション)は個々のノードが伝播する事によって共通のデータ群を作り上げなくてはいけません。トランザクションがそれぞれのノードへ伝わる仕組みとそれによってどのような事が起こるかを初心者の方にも分かりやすく解説をしていきたいと思います。既知のトランザクション二重支払い防止まとめサーバーとP2Pまず、ビットコインの仕組みを理解する上では「サーバーネットワーク」と「P2Pネットワーク(分散型ネットワーク)」の違いを理解しなくてはいけません。上の図のようなイメージでご理解いただければと思います。「サーバー型」では情報はサーバーに集められて正しい情報が参加者に配信されます。P2Pネットワークではそれぞれのノード(ノードとは)がいくつかの他のノードに接続する事により情報が共有されます。「Winny」などのファイル共有ソフトをご存知の方もいらっしゃるかと思います。WinnyはP2Pネットワークでファイルを共有するソフトウェアです。それぞれの情報(ファイル)をサーバーを介さずに接続されたノードへ送受信するのです。ビットコインも同様にP2Pネットワークを使用しており、全てのノードが対等で権力のあるノードは存在しません。このようなシステムで共通のブロックチェーン(ビットコインの取引帳簿。ブロックチェーンとは)を作り上げ無くてはなりません。トランザクションが伝播トランザクションとは「取引データ」の事です。P2Pネットワークで全体に自身の作ったトランザクションを行きわたらせなければなりません。ビットコインのブロックチェーンは10分に1回ネットワークの中の誰かが帳簿を作りその帳簿に記載されている取引が成立していきます。誰にもトランザクションを教える事なく帳簿に記載したいとなれば自身で10分に1度の帳簿作成チャンスを確実にものにしなければいつになってもそのトランザクションは帳簿に載る事はありません。利用者目線で考えればトランザクション(つまり送信した、受信したという結果)は一刻も早く全体に認められ取引を完了したいものです。なれば自分1人でトランザクションを持っているよりも全体に示していた方がいい事は自明の理です。その為に自分が作成したトランザクションを接続しているノードに伝える事が必要です。一つのノードが全てのノードに接続されているわけではありません。一つのノードはいくつかのノードに接続され、そのノードはまた他のいくつかのノードに接続される事によって全体が繋がっている状態になります。トランザクションは隣り合う(地理的にではなくネットワーク的に)ノードへ伝えられます(上図赤矢印)。トランザクションを受けたノードは他の隣り合うノードへそのトランザクションを伝えます(上図青矢印)。このようにして全体へとトランザクションは伝播していくのです。既知のトランザクション伝播をする過程で同じトランザクションを既に受け取っている事があります。隣り合うノードへそれぞれがトランザクションを伝えるので接続されたノードAから受け取ったトランザクションは既にノードBから先に受け取っている、という状態です。上図の紫色の丸枠のようにトランザクションのかぶりが起きる事があります。この場合は「後から受け取ったトランザクション」は破棄されます。個々のノードは「トランザクションプール(ビットコインのトランザクションプールとは)」を持っていて自分が保管しているトランザクションを確認する事ができます。それを確認する事で既知のトランザクションについては破棄されるようになっているのです。これにより一つのノード内で複数の同じトランザクションを保管する事が無くなります。二重支払い防止また、個々のノードはそのトランザクションが正当なものかどうかも判断します。1BTC」というトランザクションであれば「Aは1BTC持っているか」という判断です。これはビットコインの二重支払いも判断する事になります。(ビットコインの二重支払いとは)もし同じビットコインを「A⇒B」「A⇒C」とAが送ろうとしていたとします。その時に両方のトランザクションを受け取ったノードは二重支払いをAがしようとしていると理解できるのでどちらかを破棄します。どちらを破棄するかと言えば「後に受け取ったトランザクション」です。先に「A⇒B」を受け取っていれば「A⇒C」を破棄しますし逆であれば「A⇒B」を破棄します。そこに「BとCどちらが本当の支払か」という概念は存在せずに早い順で処理されるのです。先ほど述べたようにトランザクションは全体に一気に行きわたるのではなく順番に伝播していきます。その為全体に行きわたるまでトランザクション毎に時間がかかります。なれば「A⇒B」「A⇒C」どちらを先に受け取るかでトランザクションプールに保存するトランザクションはノードで違いが出てきます。「A⇒B」を先に受け取り「A⇒C」を破棄するノードと「A⇒C」を先に受け取り「A⇒B」を破棄するノードが生まれる、という事です。このようにノードはそれぞれ独自のトランザクションプールを参照する事によって成り立ち、全体が全く同じトランザクションを処理する訳ではなくなる事がしばし起こります。このような時はブロックチェーンに先に記載されたトランザクションが優先されます。「A⇒B」を保管していたのにも関わらず他のノードがブロックチェーンに先に「A⇒C」を記載したとします。なれば「A⇒B」を保管していたノードは「A⇒Bをブロックチェーンに記載すると二重支払いになってしまう」と考えてトランザクションプールから「A⇒B」を削除するのです。このように一時トランザクションプールは全体で考えればバラバラになってしまうのですが、長期的に見れば一つのだいたい同じトランザクションを全体のノードは処理をしていく事になるのです。まとめビットコインのトランザクションはP2Pネットワークなので全体に行きわたる為に時間がかかります。それによって多少の誤差がノード間で生じますが段々と同じ方向へ全体が向かっていく仕組みになっております。このようにシステムのルールを使う事でサーバーが無くても稼働するシステムが形成されているのです。このようなシステムを知る事はブロックチェーンや他の仮想通貨を学ぶ際の糧に必ずなります。ビットコインを知ればブロックチェーンや他の仮想通貨の事を知れる、と言うくらいビットコインは基礎なのです。party)トークンを利用した独自トークンを発行(手動により送信が遅れる場合があります。)して寄付を募っております。いただいたビットコインは当ブログ運営の為の情報収集に利用させていただきます。寄付用ですので見返りは期待しないでいただけると幸いです。・当サイトは初心者でもビットコインを安心安全に楽しめるように作成されたものであり、ビットコイン投資を推奨しているものではありません。無いように努めておりますが情報に誤りや古いものが含まれている可能性があります。当サイトの情報を利用することで発生したいかなる損害、事故、損失に対しても当サイトは一切その責任を負いません。・当サイト内や独自トークンで利用されているキャラクター画像の著作権は@keyspaceにあり、有償にて利用しております。無断での転載、複製、利用を禁じます。TOPへスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。