という問いに、ビットコインはこう答える。どの取引を残すか?"
この質問に対するビットコインの答え方は見事だ。
その方法とは...
ビットコインネットワーク上のすべてのノードは、新しいトランザクションに関する情報を共有する。
ビットコインネットワーク上で行われた取引は、ブロックチェーンに直接追加されることはありません。それらはまず "ブロックチェーン "と呼ばれるものに集められ、保存されます。メモリーうんちl".
ビットコイン・プログラムを実行しているすべてのコンピュータが トランザクション一時保管領域 と呼ばれる。メモリープール".またの名を"メモプール略して"。
各ビットコインノードは独自のmempoolを持っており、そこにチェックしたトランザクションのキューを保存し、次のように考える。 妥当.
大まかに言えば、mempoolは トランザクションが格納され、新しく作成されたブロックに追加される前にソートされる、整理されたキュー。.
- メモリプールには"フレッシュ「または未確認トランザクション(個々のトランザクションとして保存)。
- ブロックチェーンは"アーカイブ「または確認済み取引(「ブロック」単位でパッケージ化されている)。
すべてのビットコイン取引は単なる「未確認」取引であり、「確認」されてブロックチェーンに追加される前はメンプール内にしか存在しない。
ビットコインネットワークでは、すべてのフルノードがメモリプールを持っている。
ネットワークのこちら側でトランザクションを開始したとしよう(パープル トランザクション)。
そして、こちらで 同じビットコイン を挿入する。 赤 このコンピューターでのトランザクション。
お気づきのように、この2つの取引は ファイルに直接書き込まれない.どちらのトランザクションも単に メモリープール まず各コンピュータの
つまり、どちらのトランザクションもネットワーク全体に伝播する。
を拒否します。 赤 をすでに受け取っているからだ。 パープル 一人だ。
これで両方のトランザクションがネットワーク上に存在することになる。
しかし、それらはまだファイルに書き込まれていない。 ファイルはまだ更新されていない.
そうすると何が起こるかというと、すべてのコンピューターが働いて、次のことをしようとする。 トランザクションをメモリ・プールからファイル上に取得する。.
彼らは、メモリープールのトランザクションをファイルの先頭に最初に追加することを競う。
仮に、このコンピューター(黄色)がそれを可能にした最初のコンピューターだとしよう。
それは そのトランザクションをメモリプールからファイル:
そして、それが終わると......。
そうなるだろう。 更新したファイルのコピーを渡す その人たちがつながっているすべての人たちに......。
そして、彼らは コピーを更新する.
下の図では、このノードは、更新されたファイルを受信する。 パープル 同じビットコインを使用するトランザクション。
矛盾はどうなる? 赤 トランザクションをメモリプールで実行するか?
同じビットコインがすでに パープル トランザクションは、そのメモリープールから赤のトランザクショ ンを追い出す!
このノードは更新されたファイルを渡す。
そして、他のノードも同じことをする...メモリプール内の競合するトランザクションをすべて追い出す。
現在、すべてのコンピュータに更新されたファイルがあります。
これが、ネットワーク上で2つのトランザクションが競合するという問題を解決する方法だ。
文字通り、保留中のトランザクションのための "待機領域"(mempool)があるだけである。 ノードは競い合い、自分のトランザクションをファイルに追加しようとする。.
この例では パープル ビットコインを受け取る...
しかし、怪しい自分が同じビットコインを使おうとすると 赤 おい、うまくいかないよ。
ノードが競い合って、自分の取引をメモリプールからファイル(「ブロックチェーン」)に取り込もうとするこのプロセスは、次のように呼ばれる。 鉱業.