Xiao Zhen オープンクラス (5) - ビットコインでの実現

このノートは、北京大学のXiao Zhen氏による公開コース「ブロックチェーン技術と応用」の第5レッスンに相当します。

0. 序文

このセクションでは、Xiao 氏がまずトランザクションベースの台帳モデルを紹介し、次にビットコインが新しいデータ構造である UTXO を通じてこのトランザクション モデルをどのように実装するかを説明します。次に、シャオ氏は学生たちに具体的なブロック事例を見てもらい、最後にブロックチェーンのセキュリティに関する関連知識を紹介しました。

1. トランザクションベースの台帳モデル

ビットコインはトランザクションベースの台帳モデルを使用します。各ブロックは、トランザクション情報、転送、および鋳造トランザクションを記録します。ただし、口座にいくらのお金があるのか​​についての具体的な記録はなく、取引記録に基づいて計算する必要があります。

ビットコインは、この台帳モデルを実装するために特別なデータ構造UTXOを使用します。使用されていないトランザクションの一連の出力を維持します。下の図に示すように、2 つの緑色のトランザクションは UTXO に保持され、赤色のトランザクションは使用されたため UTXO から削除されます。

[外部リンク画像の転送に失敗しました。ソース サイトには盗難防止リンク メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-TKtbPjex-1677069509943)(https://gitee.com/yu88888//myimage) /raw/マスター/マスター/image-20211014194125447.png)]

注意すべき点がいくつかあります。

  • UTXO は二重支出を検出するために使用されます。使用される通貨が合法であるためには、このセットに含まれている必要があります。セットに含まれていない場合は、通貨が存在しないか、すでに使用されています。フルノードはメモリ内に UTXO 構造を維持します。
  • トランザクションがパブリッシュされると、各トランザクションは一部の UTXO 出力を消費しますが、新しい出力も生成します。
  • 各トランザクションには複数の入力と複数の出力を持つことができます。すべての入力の量はすべての出力の量と等しくなければなりません。つまり、合計入力 = 合計出力です。一部のトランザクションは入力>出力となり、その差額が記帳権を取得するノードへのトランザクション手数料として使用されます。
  • イーサリアムはアカウントベースの台帳モデルを採用しており、各アカウントの残高を明示的に記録しますが、ビットコインは残高を記録しないため、ユーザーのプライバシー保護には優れていますが、毎回出所を示すのはコストが高くなります。

ブロックの例:

[外部リンク画像の転送に失敗しました。ソース サイトにはリーチ防止メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-BNYef1CI-1677069509944)(https://gitee.com/yu88888//myimage/) raw/マスター/マスター/ image-20211014200329745.png)]

ブロック内のノンスは 4 バイトまたは 32 ビットの整数であることに注意してください。ビットコインは近年非常に人気があり、マイニングする人が多いため、このサイズは簡単に通過できます。そのため、マイニングの難易度は調整されています高い場合は、ノンスを調整するだけでは難易度の要件を満たす解が得られない可能性が非常に高くなります (探索空間が十分に大きくない)。したがって、別の値、つまり鋳造トランザクションのコインベース値を追加で調整する必要があります。

2. マイニングプロセスの確率分析

マイニングのプロセスは、パズルを解くためにノンスを絶えず試行することであり、各試行はベルヌーイ実験とみなすことができます。コインを投げるのは最も単純なベルヌーイ実験です。表が出るか裏が出るかのどちらかです。2 つの確率は同じである必要はありません。マイニングの場合、成功と失敗の確率は大きく異なり、成功の確率は非常に小さいです。

多数のベルヌーイ試行が実行される場合、これらのベルヌーイ試行はベルヌーイ過程 (ベルヌーイ過程: 一連の独立したベルヌーイ軌跡) を構成します。ベルヌーイ過程の特性の 1 つは記憶を持たない (メモリーレス) ことです。つまり、多数の実験を行う場合、前の実験の結果は後者に影響を与えません。たとえば、コインを何度も投げる確率は次のとおりです。裏が上になり、次にコインを投げたときに表が上になることもありません。

ベルヌーイ分布 (つまり二項分布) の n が大きく、p が小さい場合 (試行回数が多く、各試行の成功確率が小さい場合)、ポアソン分布として近似できます。ここでのマイニングは、n が大きく p が小さいベルヌーイ過程であるため、ポアソン過程として近似できます。簡単に言うと、「将来どれだけの時間が採掘されるか」は「過去にどれだけの時間が採掘されたか」とは何の関係もありません。

上記の仕組みはマイニングの公平性を確保するためのものです。

3. ビットコインのセキュリティに関する考慮事項

ビットコイン ネットワークでは、ほとんどのノードは誠実で信頼できると考えられますが、簿記の権利が少数の悪意のあるノードの手に渡ることは避けられません。

  • 他人のコインを盗むことはできますか?

明らかにそうではありません。転送を開始したい場合は、転送者の秘密鍵署名と公開鍵が必要であり、同時に転送者の最後のトランザクションをバックトラックして転送者が十分なビットコインを持っているかどうかを確認し、他人のコインを盗んだ場合は、まず何よりも、他人の秘密鍵署名を取得することはできません。

  • 上記のコイン窃取トランザクションを強制的にブロックチェーンに書き込むとどうなるでしょうか?

ほとんどの正直なノードは、この検証できない候補ブロックを受け入れません。コインを盗む人はコインを盗めないだけでなく、ブロック報酬も得ることができません。

  • 特定の取引が悪意を持って記録されない可能性はありますか?

この動作は実行できますが、動作自体には意味がありません。

ブロックチェーンでは、ネットワーク遅延などの要因により、特定のブロックで一部のトランザクションが欠落したり、ビットコインシステム内のトランザクション数がブロックの上限に達したりすると、残りのトランザクションが実行されなくなります。このブロックには含まれていますが、トランザクションを含む正直なブロックが常に存在します。

おすすめ

転載: blog.csdn.net/doreen211/article/details/129170120