ポピュラーサイエンス: ビットコインのトランザクションプロセス
最近、ブロガーは、最初の仮想通貨取引からマイニング確認取引までのマイニングプロセスで何が起こったのかを包括的に紹介したいと考えて、わかりやすいマイニングサイエンスアルバムを作成しています。多くの場合、コンピューティング能力、マイニング収益をこの方法で分配する必要がある理由などを指します。
ビットコインを例にとると、ビットコイン ネットワークでのマイニングの目的は次のとおりであることがわかります。トランザクションをパックし、ビットコイン ネットワークを維持するの場合、トランザクションは実際にはマイニングに密接に関連する最初のリンクになります。ビットコインネットワークでの取引プロセスには、非対称暗号化技術、デジタル抽象化技術、ブロックチェーン技術などが使用されています。この技術の実装はすでに多くの偉大な神々によって先行されており、ブロガーはその醜さを見せません。この記事の主な目的は、ビットコインの取引プロセスを比較的簡単な言語で示します副題
説明を始める前に、アムウェイの概念をいくつか紹介する必要があります。
非対称暗号化:公開キー暗号化とも呼ばれ、暗号化アルゴリズムを通じて公開キーと秘密キーのペアを生成し、公開キーは公開され、秘密キーは個人によって保管されます。それは持っています二つの目的データデータ公開鍵で暗号化伝染 ; 感染公開キーの所有者に対して、公開キーの所有者は対応する秘密キーを使用してデータを復号化し、情報を読み取ります。情報送信のセキュリティを確保する; 2 番目に、公開鍵の所有者は秘密鍵のペアを使用できます。情報署名(署名プロセスは暗号化プロセスに似ています)、情報と署名を他の人に送信し、他の人は公開キーを介して情報の署名を検証し(検証プロセスは復号化プロセスに似ています)、署名情報が送信された情報と一致し、公開鍵所有者の身元や秘密鍵を明らかにすることなく、その情報が鍵所有者によって発行された公開情報であることを証明します。情報源の信頼性を確保する。 (参考リンク:https://en.wikipedia.org/wiki/Public-key_cryptography)
ハッシュアルゴリズム: ハッシュ関数とも呼ばれ、データ量の多いメッセージやデータを、一定の形式でデータ量の少ない形式に変換するために使用されます。デジタルアブストラクト、としても知られている指紋,ハッシュ値ハッシュハッシュ。優れたハッシュ アルゴリズムは次のとおりである必要があります。不可逆(元の情報またはデータは、デジタル要約を通じて元に戻すことはできません)、センシティブ(元のデータに小さな変更があると、デジタル サマリーに大きな変更が生じます)、衝突防止(同じ数値ダイジェストを持つ 2 つの異なる情報を見つけるのは困難です)。 (参考リンク:https://en.wikipedia.org/wiki/Hash_function)
ビットコインの公開鍵と秘密鍵: ビットコインの世界では、ビットコインの所有権を決定するために、ビットコイン プロトコルに従って公開鍵と秘密鍵のペアが非対称暗号化アルゴリズム (楕円曲線アルゴリズム) を通じて生成されます。公開鍵ハッシュハッシュアルゴリズム (SHA256) 操作でハッシュ値 (ハッシュとも呼ばれます) を取得し、Base58Checkでエンコード生成する私たちがよく目にするビットコインのウォレットアドレス。したがって、ウォレットアドレスがデコードされた後、対応する公開鍵のハッシュを取得でき、これを秘密鍵の署名の検証やデータの暗号化などに使用できます。
UTXO: 未使用トランザクション出力、未使用トランザクション出力、それは抽象的なお金、各 UTXO は、公開鍵(ウォレットアドレス)ロック、公開鍵の対応する秘密鍵を保持している人だけがアクセスできます。秘密鍵による署名(ロック解除)そしてそのUTXOを使用してください。 UTXO は次のように理解できます。抽象的な紙幣副題https://en.wikipedia.org/wiki/Unspent_transaction_output)
コードはさておき、ビットコインのトランザクションがどのようなものかを見てみましょう。
以下の図に示すように、A、B、C、D の 4 人がおり、全員がビットコイン ウォレットを所有しており、ウォレットの秘密鍵は自分で保持しています。それぞれのウォレット)はビットコインネットワーク上で公開され、UTXOのロックと検証に使用されます。

最初に、A は C に 0.7BTC を与え、ビットコイン ネットワークの記録は次のようになります。UTXO(1): A から C 0.7BTC;B to C 0.5BTC、ビットコインネットワークの記録はUTXO(2): B to C 0.5BTC。このとき、Cさんのビットコインウォレットの口座残高は、この2つのUTXOの合計となり、C のビットコイン総数 = UTXO(1)+UTXO(2)=1.2BTC。以下に示すように:

この日、C は D から商品のバッチを購入し、D に 0.8 BTC を支払う必要があります。 C はビットコイン ネットワークを通じて D に送金しますが、C の既存の 2 つの UTXO はどちらも 0.8 BTC 未満であるため、2 つの UTXO を一緒に使用する必要があります。現金取引と同様: Ding に 1.2BTC を支払い、Ding は Bing に 0.4BTC を支払います。。しかし、ビットコインネットワークでは、これは転職活動はCさん自身が始めたものです。
取引プロセス全体は次のとおりです。
C は、ビットコイン ウォレットを通じてトランザクション情報を準備します。トランザクション情報には、入力と出力の 2 つの部分が含まれます。入力は UTXO(1) と UTXO(2)、および C のウォレットの秘密鍵署名 (UTXO(1) と UTXO(2) の両方であるため) ) C のウォレット公開鍵によってロックされており、使用前に C の秘密鍵署名によってロックを解除する必要があります)
トランザクションの出力は未確認ですUTXO(3): C から D 0.8BTC、この新しいUTXOはDingのウォレット公開鍵を指しており、トランザクションが確認された後はDingのウォレット公開鍵によってロックされます。
この時点ではCにお釣りを渡すのにまだ0.4BTCが残っているので未確認を出力する必要がありますUTXO(4): C to C 0.3999BTC、この新しい UTXO は C のウォレット公開キーを指し、トランザクションが確認された後は C のウォレット公開キーによってロックされます。
なぜ変化量が0.4BTCではないのでしょうか??ビットコイン ネットワークの要件により、トランザクション転送ではビットコイン ネットワークにトランザクション手数料を支払う必要があります。残り0.0001BTCウォレット公開鍵を指していません。振込手数料としてトランザクションをパッケージ化したマイナーに支払います(変更がない場合、残りの不特定のビットコインはすべてトランザクションをパッケージ化したマイナーへの手数料として使用されますが、変更作業は現在ウォレットによって自動的に行われます。心配)。
取引情報が準備できたら、Cのウォレットを通じて取引が合法であることを確認する(UTXO が合法である、署名が有効である、入出力金額が有効であるなど)、トランザクションはビットコイン ネットワークにブロードキャストされ、トランザクションがマイニング ノードによって検証された後、トランザクションはパッケージ化されます (トランザクションはBitcoin ブロック)、Bitcoin Coin ネットワーク ブロードキャストに送信されると、トランザクションが完了します。
古い UTXO が消費され、新しい UTXO が有効になります。、現時点で丁さんの財布には未使用のものがあります。UTXO(3): プロパンジン 0.8BTC, Cさんの財布には未使用のものがあります。UTXO(4): C to C 0.3999BTC。

上記はより抽象的なビットコイン トランザクション プロセスであり、ビットコイン トランザクションの構築、署名検証、ノード検証、トランザクション ブロードキャスト、マイニング ノードのメモリプールへの参加、マイナーによる予備ブロックの構築、および最終ブロック確認プロセスについて、個別に紹介します。この記事では展開しません。
この抽象的なトランザクション プロセスから、ビットコイン トランザクションは本質的に、多数の UTXO の入力と出力のプロセスであることがわかり、古い UTXO が消費されると、新しい UTXO が生成され、ビットコイン トランザクションが繰り返し完了します。取引プロセスは非対称暗号化とハッシュアルゴリズムによって二重に保護されていますビットコイン保有者は身元が漏洩することを心配することなく安全に取引を完了できますビットコインの一部は取引プロセス中にも消費され、それはパックをするマイナーへの報酬として使用されますマイナーは、ビットコイン ネットワークを維持するという仕事を喜んで行います。


