ブロックチェーン学習3 - ビットコインのデータ構造

ブロックチェーン学習3 - ビットコインのデータ構造

文章内容来源于北京大学肖臻老师《区块链技术与应用》公开课


1. ハッシュポインタ

通常のポインタはメモリ上の構造体の先頭アドレスを格納しますが、
ハッシュポインタは先頭アドレスに加えて構造体のハッシュ値を格納し、
ハッシュ値によって構造体が改ざんされているかどうかを検出できます。

2. ブロックチェーン

ブロックで構成される連結リスト
Q: ブロックチェーンで使用される連結リストと通常の連結リストの違い
A: ブロックチェーンで使用される連結リストは、通常のポインターの代わりにハッシュ ポインターを使用します。
ブロックチェーンテーブル

システム内で最初に生成されたブロック: ジェネシスブロック
システム内で生成された最新のブロック: 最新
各ブロックには、
ブロック全体の内容を結合してハッシュ値を取得するためのハッシュポインターがあります ハッシュ (ハッシュポインターを含む) のみが
必要です前のブロックが改ざんされているかどうかを検出するために最後のハッシュ値を記憶するため (ドミノ、1 つの動きが体全体に影響します)、ノードは最も近い
ノードを保存するだけでよく、前のブロックが必要です。ブロックは要求できます。ハッシュ値を計算することで前のブロックが正しいかどうかを確認できます。

3.マークルツリー

ルート ノードは、ルート ハッシュと呼ばれるハッシュ値を取ることもできます。
ルート ハッシュを知ることで、ツリー ノード全体が改ざんされているかどうかを検出できます (より効率的)。各ノードの変更により、ルート ノードも変更されます。最下位の子
ノード各ブロックには、ブロック ヘッダー (ルート ハッシュ値があり、ブロック ヘッダーには特定のトランザクション データはありません) とブロック本体 (ブロック本体にはトランザクション データが含まれます) が含まれます。マークル ツリーの
マークルツリー
这个数跟二叉树很像
最上面深颜色的方块代表区块,tx即最下面的一行代表交易,H()哈希值
ルート ハッシュ値は、ブロックに含まれるすべてのトランザクションで構成されます。
ブロック ブロックヘッダー

1. マークルツリーの役割:マークルプルーフ

フルノード: ブロックヘッダーとブロックボディを含むブロックチェーン全体のコンテンツを保存します (ブロックボディにはトランザクションデータが含まれます) ライト
ノード: ブロックヘッダーのみを保存します
Q (マークル証明): トランザクションが持っていることをライトノードに証明する方法ブロックチェーン(ライトノードはトランザクションリストを保存せず、ルートハッシュ値のブロックヘッダーのみを保存します)では、上の図の黄色の四角形がマークルツリーに含まれます。
A: ライト ノードはフル ノードにリクエストを送信します。フルノードは図中の赤色のH()ハッシュ値をライトノードに送信します。ライトノードはローカルで緑のハッシュ値 H() を計算し、上位ノードの緑のハッシュ値は緑のハッシュ値と赤のハッシュ値から計算でき、緑のハッシュ値は前回の計算値と計算値から計算されます。このレイヤーの赤のハッシュ値、次のレイヤーの緑のハッシュ値を計算し、緑のハッシュ値と赤のハッシュ値からルートノードのハッシュ値を計算し、光ノードのハッシュ値を比較取引情報が含まれているかどうかを判断できます。
只验证交易数据所在的到根节点的一条分支即可,根哈希值不变,即交易都不会被篡改。人为制造哈希碰撞可以篡改 难度太大了collision resistence

マークル証明 (メンバーシップ証明、包含証明): トランザクションがブロックチェーンに書き込まれたことをライトノードに証明します。n 個のトランザクションがある場合、時間計算量は log(n) になります。

2.非会員であることの証明

Q: 非メンバーシップの証明を証明する方法
A: ツリーをライト ノードに直接送信し、トランザクション全体をライト ノードに送信します。時間計算量は O(n)
最適化です。トランザクション ハッシュ値は順番にソートされ、他のステップはマークル証明プロセスと同様です。時間計算量は log(n) です。価格は最初に並べ替えることです。ソートされたマークルツリー。
ビットコインはソートの必要がなく、非会員であることの証明も必要ありません

4. まとめ

ブロックチェーンとマークル ツリーは両方とも、ハッシュ ポインターを使用して構築する必要があります。リングのないリンク リストではハッシュ ポインタを使用できますが、リングのあるリンク リストではハッシュ ポインタを使用できません。

おすすめ

転載: blog.csdn.net/qq_43589852/article/details/131090892