ブロックチェーン分解

この記事では、ブロックチェーンの本質を説明する最も単純なモデルを検討します。 トランザクション、スマートコントラクトなど、ブロックに格納される情報の特異性は考慮されません。 つまり、ブロックは、値がアプリケーション固有であるレコードを単に格納します。 このアプローチにより、特定の実装の詳細に影響を与えることなく、ブロックチェーン全体の動作原理を理解できます。



最も単純な単純なモデルから開始し、本格的なモデルが得られるまでその機能を補完します。



ブロックチェーンを使用する目的を定義します。

共通データ配列の整合性を維持し、それを補完することに関心のある参加者が数人います。


ベースモデル



データは、補足可能な一連のレコードで表されます。 レコードはサポート情報とともにブロックに保存されます。 ブロックは、単一リンクリストとして保存されます。 各参加者は、現在のデータ配列全体を保存し、他のノードに接続するノードによって表されます。 ノードは、リストの最後に新しいエントリを追加したり、リストの変更について相互に通知したりできます。



機能拡張



長いリストの優先順位

レコードのリストの複数のバージョンから選択する場合、ノードはより長いバージョンを保持します。 したがって、1つのノードに追加された新しいレコードは、他のすべてのノードに適用されます。



前のエントリのハッシュ

前のレコードのハッシュコードはブロックに保存されます。 このようなハッシュコードは、以前のすべてのブロックとそれらの相対位置を一意に識別します。 したがって、リスト内のブロックは、後続のブロックを変更しない限り変更できません。



ブロック作成の計算の複雑さ

新しいフィールドがブロックに追加されます-カウンター-任意の数字。 ブロックハッシュコードが特定の数のゼロで終わるように、カウンター値を選択する必要があります。



生レコードプール

新しいエントリはプールに分類されます。 ノードはプールからエントリを取得し、ブロックを形成し、リストにブロックを追加した後、プールからエントリを削除します。



サードパーティへのマイニング注文

マイナーはプールからエントリを選択し、ブロックを形成して、完成したブロックをノードに渡します。 主な計算負荷は鉱夫にシフトされます。

ノードはブロックをチェックし、リストに追加します。



ブロック内の複数のレコード

ブロックには複数のエントリを含めることができます。 鉱夫は、任意のエントリを選択してブロックを形成します。 ブロックは最大長に制限されています。



さて、それですべてです-概念モデルの準備ができました。ご清聴ありがとうございました。



All Articles