2019年08月29日

白書:次世代のスマート契約と分散アプリケーション・プラットフォーム(36)


The approach may seem highly inefficient at first glance, because it needs to store the entire state with each block, but in reality efficiency should be comparable to that of Bitcoin. The reason is that the state is stored in the tree structure, and after every block only a small part of the tree needs to be changed. Thus, in general, between two adjacent blocks the vast majority of the tree should be the same, and therefore the data can be stored once and referenced twice using pointers (ie. hashes of subtrees). A special kind of tree known as a "Patricia tree" is used to accomplish this, including a modification to the Merkle tree concept that allows for nodes to be inserted and deleted, and not just changed, efficiently. Additionally, because all of the state information is part of the last block, there is no need to store the entire blockchain history - a strategy which, if it could be applied to Bitcoin, can be calculated to provide 5-20x savings in space.
アプローチは一見して大いに非能率的に思われるかもしれません、なぜならそれは各ブロックでの状態全体を蓄積しておく必要があるからですが、しかし実際は効率は ビットコインのそれに相当するべきだからです。 その理由は状態がツリー構造で蓄積され、そしてすべてのブロックの後にツリーの小さい部分だけが変えられる必要があります。 それで、一般に、2の隣接したブロックの間にツリーの圧倒的多数は同じであるべきです、そしてそのためにデータは1度ストアされて、そしてポインター(例、ハッシュの下位ツリー)を使って2度参照可能です。 「パトリーシアツリー」として知られている特種ツリーは、ノードが挿入され、削除され、そして、効率的に、単に変更されないことを可能にする Merkle ツリー概念に改修を含めて、これを達成するために使われます。 さらに、その状態情報のすべてが最後のブロックの一部であるから、全部のブロックチェーン履歴を蓄積する必要がありません −その戦略は、すなわち、もしそれが ビットコインに適用可能なら、スペースの5-20x節約を供給するために計算可能です。

A commonly asked question is "where" contract code is executed, in terms of physical hardware. This has a simple answer: the process of executing contract code is part of the definition of the state transition function, which is part of the block validation algorithm, so if a transaction is added into block B the code execution spawned by that transaction will be executed by all nodes, now and in  the future, that download and validate block B .
ある一般に尋ねられる質問は「どこで」契約コードが、ハードウエアに関して、実行されるかいうことです。 これは単純な回答があります。: 契約コードを実行するプロセスはブロック妥当性検証アルゴリズムの一部である状態遷移関数の定義の一部で、それでもし取引きがブロックBに加えられるなら、その取引きによって生みだされたコード実行は、今、そして、未来で、すべてのノードによって実行されるでしょう。それは、ダウンロードして、ブロックBの妥当性を検査します。

=====================================================================
 

人気ブログランキングへ人気ブログランキングへ

=====================================================================

posted by 平成アフィリエイトへの挑戦 at 14:33| 千葉 ☀| Comment(0) | イーサリアム | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス: [必須入力]

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。