ホームページ >バックエンド開発 >Golang >Utreexo を使用してビットコイン ネットワークを改善する

Utreexo を使用してビットコイン ネットワークを改善する

WBOY
WBOYオリジナル
2024-07-30 08:03:14984ブラウズ

Improving the Bitcoin network using Utreexo

世界は日に日にデジタル化が進み、私たちの生活の多くの側面がますます無形なものになってきています。物理的な現金からキャッシュレス システム、さらには暗号通貨に至るまで、通貨も無視されていません。 2009 年にビットコインの最初のブロックが開始されて以来、ビットコインの採用はこれまでにないほど急速に成長しており、採用が増えるとネットワークの安定性と信頼が高まり、ビットコインの採用はさらに増えることになります。

まず第一に、ビットコインとは何ですか、ビットコインはどのように機能するのでしょうか?

ビットコインは、2008年にサトシ・ナカモトという疑似匿名団体によって作成された分散型ピアツーピアネットワークデジタル通貨です。ビットコイン ネットワークは、相互に接続され、ネットワーク全体でトランザクションを伝播し、トランザクションを検証するのに役立つノードとも呼ばれるコンピューターで構成されるネットワークです。このネットワークはデジタル通貨ビットコイン(BTC)を使用します。これらのトランザクションは、ブロックチェーン技術を使用する分散型公開台帳に保存されます。
ビットコイン ブロックチェーンは、先行するブロックに接続されていないジェネシス ブロックとしても知られる最初のブロックを除き、先行する各ブロックにリンクされたブロックで構成されています。ブロックは、マイニングプロセスを実行する前に、マイナーによって検証され、慎重にブロックに追加された複数のトランザクションで構成されています。トランザクションは基本的に、ビットコインウォレット間の価値の転送です。マイナーは、新しいブロックを確認または「採掘」し、ブロックチェーンに追加するというネットワーク上での主要な作業を実行する責任があります。
ビットコインについて学ぶためのリソースがオンラインで利用可能です。これらのリソースでは、ビットコインの機能について詳しく説明します。
ビットコインの優れた点にもかかわらず、スケーラビリティは常に大きな問題となっています。ビットコイン ブロックのサイズは 1MB に制限されており、ブロックはおよそ 10 分ごとにマイニングされます。これにより、この記事の執筆時点でビットコイン ブロックチェーンの現在のサイズは約 580 GB となり、これは昨年より約 18% 増加しています。フルノードがブロックチェーンに参加してネットワークを検証するには、ブロックチェーン全体をダウンロードし、すべての古いブロックと新しく追加されたブロックに対して検証の実行を開始する必要があります。このサイズは、日々増加し続けることがほぼ保証されており、ある時点で大きすぎて、リソースの制約により一部の一般ユーザーがネットワークに参加できなくなる可能性があります。
ブロックチェーンのサイズとは別に、ノードはネットワークの現在の状態も検証して保存します。この状態は現在の未使用トランザクション出力セット (UTXO) であり、ブロックチェーン全体のサイズが比較的小さいですが、この状態も、より多くのユーザーがネットワーク上でより多くのトランザクションを実行するにつれて、急速に成長し続けることが保証されています。このセットは、ネットワーク内のすべての未使用トランザクション出力のセットです。

それで、Utreexoとは何ですか?

Utreexo は、現在の状態のサイズを大幅に削減できるハッシュ ベースの動的アキュムレータを導入しています。これにより、ノードはシステム全体の状態を知らなくても、トランザクションの入力を完全に検証できます。これは、ファンドの所有者に、そのファンドが実際に存在するという証拠を保持させ、資金を使おうとするときにこの資金を提示することでこれを実現します。
Utreexo では、Compact State Node と呼ばれる新しいタイプのノードが導入されています。これらのノードは、状態のアキュムレータ表現のみを保存します。これらのノードがトランザクションを検証するには、包含証明が必要です。この証明は、いくつかのインプットを支出しようとしているときに、支出トランザクションによって提供されます。

Utreexo はビットコイン ネットワークをどのように改善しますか?

上で見たように、Utreexo を使用すると、ビットコイン ネットワークの状態を動的なアキュムレータとして表すことができます。ビットコインの現在の状態が 5 GB を超えるのとは対照的に、これらのアキュムレータのサイズはわずか数キロバイトです。
Utreexo がどのように機能するかを理解するには、まず暗号アキュムレーターとは何か、またそれがどのように機能するかを理解する必要があります。暗号化アキュムレータを使用すると、セットのすべてのメンバーを保存したり公開したりせずに、セットをクエリできます。このアキュムレータ構築アプローチは、トランザクションごとに、使用されている TXO が実際に UTXO セットのメンバーであるかどうかをクエリし、そうでない場合はトランザクションを拒否するため、ビットコイン UXTO セットに最適です。
通常のノードは、ネットワークに参加するときに、580 GB を超えるブロックチェーン履歴全体をダウンロードし、トランザクションを検証して、UTXO セットの独自のコピーを構築する必要があります。次に、ノードに影響を与えるすべての状態変化を検証する必要があります。これらのプロセスはすべてリソースを大量に消費する操作であるため、ネットワークの参加者数が制限され、スケーラビリティも制限されます。
この初期同期プロセスは初期ブロック ダウンロード (IBD) とも呼ばれ、インターネット接続とハードウェア リソースによっては非常に長い時間がかかる場合があります。この IBD 操作の速度に影響を与える主な要因の 1 つは、使用されるストレージ ディスクのタイプと I/O 操作の速度、特にランダム アクセス読み取りを迅速に実行する能力です。これが、ソリッド ステート ドライブを使用するコンピュータは、通常、ランダム アクセスの読み取り時間がはるかに優れているため、ハードディスク ドライブを使用するコンピュータと比較して、トランザクションの検証にかかる時間を 30 分の 1 以上短縮できる理由です。
Utreexo では、SSD コンピューターと HDD コンピューターのパフォーマンスにわずかな違いが見られるだけなので、使用するディスクの種類はそれほど大きな違いを生みません
Utreexo は、信頼できるセットアップやマネージャーの要件を必要としない、ハッシュベースの動的アキュムレーターを導入します。上で述べたように、アキュムレータはセットをコンパクトに表現したもので、要素を追加して証明することができます。 Utreexo アキュムレータは、アキュムレータからの要素の効率的な削除を可能にする完璧なマークル ツリーのフォレストを使用し、削除が発生したときにフォレスト内のリーフの総数を減らします。
加算はアキュムレータと追加される要素を超えるデータがなくても計算可能であり、削除は削除されるデータの包含証明とともに計算可能です。
アキュムレータの設計は、完全なバイナリ ハッシュ ツリーの森です。保存する必要があるアキュムレータの表現には、保存される要素の数、およびフォレスト内のすべてのツリーのルートが含まれます。
これは単なる入門記事であるため、完全なバイナリ ツリーの論理構造についてはこの記事の範囲を超えています。ただし、Utreexo の論文全文はここでご覧いただけます。

結論

Utreexo ハッシュ ベースのアキュムレータは、ビットコイン状態のサイズをわずか数キロバイトに削減することを目的としており、高価な最上級のハードウェアを必要とせずに、そこにあるほぼすべてのデバイスがビットコイン ネットワークに参加してトランザクションの検証を開始できるようにします。これにより、アキュムレータのサイズが非常にゆっくりと (Onlogn) 空間の複雑さによって増加するため、ビットコイン ネットワークのスケーラビリティが大幅に向上します。

以上がUtreexo を使用してビットコイン ネットワークを改善するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。