Symbol

Symbol入門 その11

データバリデーション

少しずつSymbolの技術について勉強中です。

まずは、入門ということで下記の公式ドキュメントを読んでいくことにしました。

入門 — Symbol Documentation

日本語になっているのは非常にありがたいですね。

順に公式ドキュメントを読むのも、その11まで来ました。

今日はデータバリデーションについて読んでみました。

データバリデーション

Symbolはブロックヘッダから直接取り出すことの出来ないブロックに関連する大きなデータを保存するために木構造を用いています。 これにより軽量クライアントは要素(例:トランザクションやレシートステートメント)を帳簿全体の履歴を必要とすることなく検証できるようになります。

すべてのデータを保持すると、膨大な容量が必要となるのでこの辺は当たり前の技術ですね。

Symbolでもマークル木が利用されています。 これはビットコインでも同様の技術が使われています。

マークルツリー

マークルツリーとは上記のようなハッシュを組み合わせて構成するツリー構造になります。

ブロック内に含まれるトランザクションが改ざんされていないかをチェックするなどに利用されます。

上記の図を例に取ると、あるブロックに、トランザクションA~Eが含まれていた場合に、まずそれぞれのトランザクションのハッシュを計算します。(図中H1-H5)

次に、H1とH2、H3とH4、H5は対となるトランザクションがないため、H5とH5でそれぞれ再びハッシュを計算します。(図中H6-H8)

同様に図の通りハッシュの計算を繰り返し、最終的に1つのハッシュを算出します。

これをブロックのヘッダ部分に含んでおくことで、少ない容量でブロック内に含まれるトランザクションを要約したデータを持つことが出来ます。

また、Symbolではトランザクションだけでなく、レシートについても同様の計算を行い、ハッシュ値を保持します。

本データはブロックの検証の際などに、トランザクションやレシートが改ざんされていないか検証するために使用されます。

データバリデーションについては以上になります。

こけっこー
仮想通貨について1から勉強中です。 普段はSEをしています。 Symbolの技術に強い興味を持ち、 本ブログをはじめました。
Twitter
Amazon