マークルツリーは データベース全体のバージョンを確認および比較することなく、個々のレコードを検証するためのネットワーク上のコンピューター。これは、データベース内の他のすべてのレコードが変更されていないことを保証しながら、個々のレコードを明らかにする暗号化を使用して行います。. 1979年にラルフマークルが最初に特許を取得したマークルツリーは、コンピューターの歴史を通じてデータベース検証の重要な鍵となっています。.

マークルツリーは、複数のコンピューターが同じデータベースまたは元帳のコピーを保持する分散ネットワークで特に役立ちます。サトシがビットコインを作成したとき、トランザクション検証にマークルツリーを使用するのは簡単でした。ブロックチェーンの分散性のため、ネットワーク上のすべての人が同じ台帳を持っていることを確認するための安全で高速な方法が必要です.

ブロックチェーンを研究したことがあるなら、おそらくマークルツリーとマークルルーツについて聞いたことがあるでしょう。ただし、多くの投資家や愛好家は、彼らがどのように機能するかを知りません。それらがブロックチェーンのセキュリティと信頼の重要な部分であることを考えると、基本を理解する価値があります。この独創的なメカニズムにより、何百万ものブロックチェーントランザクションの保存と取得が可能になります.

効率的な検証の必要性

基本から始めましょう。なぜマークルツリーが必要なのか、そしてそれらがブロックチェーンのコンテキストで役立つ理由?

その質問に答えるために、検証のためにマークルツリーのない世界を考えてみましょう。ビットコインにマークルツリーがなかった場合、ネットワーク上のすべてのノードは、ビットコインでこれまでに発生したすべてのトランザクションの完全なコピーを保持する必要があります。次に、過去のトランザクションを確認するときに、ノードはネットワークに接続し、ピアから元帳のコピーを取得する必要があります。行ごとに、ノードは各エントリを独自のレコードと比較して、ネットワーク台帳が正確に一致していることを確認する必要があります。変更がすり抜けると、ネットワークのセキュリティが危険にさらされます.

データの検証にはデータ自体が必要であるため、ビットコインでのすべての検証要求には、ネットワークを介して送信される膨大な情報パケットが必要になります。次に、検証用コンピューターは、変更がないことを確認するために、元帳の比較に処理能力を割り当てる必要があります。.

マークルツリーは、元帳のレコードをハッシュすることでこの問題を解決します。これにより、データの証明がデータ自体から効果的に切り離されます。これらのハッシュは元帳自体よりも桁違いに小さいため、トランザクションの有効性を証明するには、ネットワークを介して小さなパケットを送信するだけです。これにより、2つのバージョンの元帳が最小限の計算能力とネットワーク帯域幅で一貫していることを証明できます。.

それが素晴らしいと思えば、それはそうだからです。マークルツリーは本当にクールな暗号の発明です。だから、今問題はそれらがどのように機能するかです?

ハッシュに関する簡単な復習

マークルツリーの詳細に入る前に、ハッシュの暗号化の基礎が必要です。ブロックチェーンは、プルーフオブワークアルゴリズムからファイル検証まで、あらゆる場所でハッシュを使用します。ハッシュは現代の暗号化の基礎です.

ハッシュは、雑草に深く入り込むことなく、長さに関係なく任意の入力を受け取り、標準の長さのランダムな出力を出力するアルゴリズムの一種です。たとえば、ビットコインでは、トランザクション「アリスはボブ1 BTCを送信します」は、ランダムな文字の文字列のようになります。

「3cbcf3e1075b0b3357140de438336733bd6927cd1e78d36cc278324fcce932ad」

この文字列はハッシュであり、決定論的です。つまり、「A -> B1BTC」は常に同じ出力にハッシュします.

ただし、ハッシュには別の優れた特性があります。入力アバランシェのわずかな変化でさえ、出力の劇的な変化に変化します。トランザクションを「A」に少し変更すると-> B 1.1BTC」とすると、ハッシュは完全に異なります。したがって、1文字でもレコードが変更されているかどうかはすぐにわかります.

ハッシュは他の理由でも素晴らしいですが、ハッシュは決定論的であり、変更によって滝が生成されることを理解するだけで、マークルツリーがどのように機能するかを理解できます。.

マークルツリーの作り方

シンプルなマークルツリー

マークルツリー。ブロックチェーンマークルツリーには、何千ものハッシュが含まれています。ここに描かれているのは8つだけです.

それでは、マークルツリーを作成します。 Allice / Bobトランザクションを「トランザクションA」と呼びます。そのトランザクションがブロックチェーンに追加されると、他のトランザクションとともにブロックの一部になります。簡単にするために、これらのトランザクションをB、C、およびDと呼びます。.

これらの各トランザクションはハッシュ化されるため、トランザクションの対象者と金額の詳細を保持する必要はありません。ただし、すべてのハッシュがあるため、トランザクションが改ざんされていないことを証明できます。これで、H(A)、H(B)、H(C)、およびH(D)ができました。.

4つのハッシュを保持することは、それほど大きな問題ではありません。ただし、各ビットコインブロックには約2,000のトランザクションが含まれているため、これらすべてのハッシュを保持して送信するには、ストレージと帯域幅が多すぎます。マークルツリーは、トランザクションをペアにしてハッシュすることでその問題を解決します.

ここで、H(A)+ H(B)= H(AB)およびH(C)+ H(D)= H(CD)です。トランザクションを組み合わせてハッシュ化することで、保存する必要のあるハッシュの数を半分に減らしました。 H(AB)+ H(CD)= H(ABCD)のように、同じことをもう一度行うことができます。そうすることで、基礎となるすべてのトランザクションのハッシュに基づいて決定論的な、格納するハッシュが1つだけになります。この単一のハッシュは、マークルルートと呼ばれます.

マークルルートを使用したトランザクションの検証

マークルツリーのルートハッシュは、チェーン内の次のブロックにリンクされる各ビットコインブロックの重要な部分です.

各ビットコインブロックには、ブロックヘッダーに含まれるマークルルートがあります。これは、ブロックの内容と複数の元帳の一貫性を検証する方法です。私のブロックチェーンのコピーがあなたのブロックチェーンのコピーと同じブロックのマークルルートを持っている場合、そのブロック内のすべてのトランザクションが同じであることがわかり、元帳に同意します。わずかな不一致でも、ハッシュのプロパティのために、大幅に異なるMerkleルートにつながります。.

マークルはtxを確認します

トランザクションDを確認するには、H(AB)、H(C)、H(D)、およびH(EFGH)を知っているだけで済みます。.

マークルルートに不一致がある場合は、信頼できる機関に2つのサブハッシュをリクエストできます。そこから、さらにサブハッシュを要求することで、同意しないレコードを絞り込むことができます。その結果、元帳全体を1行ずつ確認しなくても、不一致を特定できます。.

結論

世界中のブロックチェーン、データベース、およびネットワークは、マークルツリーを使用して、複数のコンピューター間でレコードを迅速かつ効率的に調整します。基本を理解したので、この方法でデータを構造化することでブロックチェーンが安全で効率的になる理由を簡単に理解できます。.