|
| 1 | +<!-- |
| 2 | + 300 to 1000 words |
| 3 | + put title in main newsletter |
| 4 | + put links in this file |
| 5 | + for any subheads use h3 (i.e., ###) |
| 6 | + illustrations welcome (max width 800px) |
| 7 | + if uncertain about anything, just do what seems best and harding will edit |
| 8 | +--> |
| 9 | + |
| 10 | +Bitcoinネットワークの多くのノードは、未承認のトランザクションをインメモリのプール、 |
| 11 | +つまり _mempool_ に保存しています。このキャッシュは、各ノードにとって重要なリソースであり、 |
| 12 | +ピアツーピアのトランザクションリレーネットワークを可能にしています。 |
| 13 | + |
| 14 | +トランザクションリレーに参加するノードは、ブロックを急激にではなく徐々にダウンロードし検証します。 |
| 15 | +ブロックが見つかる約10分ごとに、mempoolを持たないノードは帯域幅のスパイクが発生し、 |
| 16 | +その後、各トランザクションを検証するための計算負荷の高い期間が続きます。 |
| 17 | +一方、mempoolを持つノードは、通常、ブロック内のすべてのトランザクションをすでに確認しており、 |
| 18 | +それらをmempoolに保存しています。 |
| 19 | +[コンパクトブロックリレー][topic compact block relay]を使用すると、 |
| 20 | +これらのノードは、ブロックヘッダーとショートIDをダウンロードするだけで、 |
| 21 | +あとは自分のmempool内のトランザクションを使用してブロックを再構築します。 |
| 22 | +コンパクトブロックのリレーに使用されるデータ量は、ブロックのサイズに比べればごくわずかです。 |
| 23 | +ノードはすでに署名とスクリプトを検証し(かつキャッシュし)、タイムロックの要件を計算し、 |
| 24 | +必要に応じてディスクから関連するUTXOをロードしているため、トランザクションの検証もはるかに高速化されています。 |
| 25 | +また、ノードはブロックを他のピアに迅速に転送できるため、ネットワーク全体の |
| 26 | +ブロック伝播速度が劇的に向上し、ブロックが古くなるリスクも低減します。 |
| 27 | + |
| 28 | +また、mempoolは独立した手数料推定器を構築するためにも使用できます。 |
| 29 | +ブロックスペースの市場は手数料ベースのオークションであり、 |
| 30 | +mempoolを保持することで、ユーザーは他の人がどんな入札をしているか、 |
| 31 | +過去にどのような入札が成功したかをより正確に把握することができます。 |
| 32 | + |
| 33 | +しかし、すべての人にとって共通のmempoolというものは存在しません。 |
| 34 | +各ノードは異なるトランザクションを受信する可能性があります。 |
| 35 | +あるノードにトランザクションを送信したとしても、それが必ずマイナーにも届くとは限りません。 |
| 36 | +このような不確実性をもどかしく思うユーザーもいます。 |
| 37 | +「なぜ、マイナーに直接トランザクションを送信しないのか?」と疑問に思う人もいます。 |
| 38 | + |
| 39 | +すべてのトランザクションがユーザーから直接マイナーに送信されるBitcoinネットワークを考えてみましょう。 |
| 40 | +少数の事業者に対して、各トランザクションに対応するIPアドレスを記録し、 |
| 41 | +特定のパターンに一致するトランザクションの受け入れを拒否するよう要求することで、 |
| 42 | +金融活動を検閲し監視することができます。このようなBitcoinは、 |
| 43 | +ときにはより便利かもしれませんが、Bitcoinの最も重要な特性のいくつかが失われてしまいます。 |
| 44 | + |
| 45 | +Bitcoinの検閲耐性とプライバシーは、ピアツーピアのネットワークに由来します。 |
| 46 | +トランザクションをリレーするために、各ノードは匿名のピアのセットに接続します。 |
| 47 | +これらのピアは、マイナーである可能性もあれば、マイナーに接続されている誰かかもしれません。 |
| 48 | +この方法は、トランザクションがどのノードから発信され、 |
| 49 | +どのノードがそのトランザクションの承認を担当しているのかを難読化するのに役立ちます。 |
| 50 | +特定のエンティティを検閲したいと思う人は、マイナーや人気のある取引所、 |
| 51 | +または他の中央集権型の送信サービスを標的にするかもしれませんが、なにかを完全にブロックするのは難しいでしょう。 |
| 52 | + |
| 53 | +未承認トランザクションの一般的な可用性は、ブロックプロデューサーになるための参入コストを最小限に抑えるのにも役立ちます。 |
| 54 | +選択された(または除外された)トランザクションに不満を持つ人は、すぐにマイニングを開始することができます。 |
| 55 | +各ノードをトランザクションのブロードキャスト候補として平等に扱うことで、 |
| 56 | +トランザクションとその手数料への特権的なアクセスをどのマイナーにも与えないようにすることができます。 |
| 57 | + |
| 58 | +まとめると、mempoolは、ノードがブロックのダウンロードと検証のコストを時間的に分散させ、 |
| 59 | +ユーザーがより良い手数料の見積もりにアクセスできるようにする非常に有用なキャッシュです。 |
| 60 | +ネットワークレベルでは、mempoolは分散トランザクションとブロックのリレーネットワークをサポートします。 |
| 61 | +これらの利点はすべて、マイナーがブロックに含める前にすべてのトランザクションを誰でも確認することができる時に最も顕著になります。 |
| 62 | +他のキャッシュと同様に、mempoolは「ホット」なときに最も有用で、メモリに収めるためにサイズを制限する必要があります。 |
| 63 | +来週のセクションでは、最も有用なトランザクションをmempoolに保持するための指標として、 |
| 64 | +インセンティブの互換性の使用について検討します。 |
0 commit comments