How bitcoin works

提供: tezos-wiki
移動先: 案内検索
この記事では、Bitcoin Wikiの品質基準を満たすためにクリーンアップが必要です

このページでは、Bitcoinの機能の基本的なフレームワークについて説明します。

暗号化[編集]

Bitcoinの本質を構成するいくつかの暗号技術があります。

最初は[1]です。各コインは、現在の所有者のパブリックECDSAキーに関連付けられています。ビットコインを誰かに送るときには、メッセージ(transaction)を作成し、この所有者の公開鍵をこの金額のコインに付けて、秘密鍵で署名します。このトランザクションがBitcoinネットワークにブロードキャストされると、これにより、これらのコインの新しい所有者が新しい鍵の所有者であることがすべての人に知らされます。メッセージの署名は、メッセージが本物であることを誰もが確認します。誰もが特定のコインのグループの現在の所有者であることを誰でも確認できるように、取引の完全な履歴は全員に保持されます。

このトランザクションの完全なレコードは、ブロックと呼ばれる一連のレコードであるブロックチェーンに保持されます。ネットワーク内のすべてのコンピュータにはブロックチェーンのコピーがあり、新しいブロックを互いに渡して更新します。各ブロックには、前のブロック以降に送信されたトランザクションのグループが含まれます。ブロックチェーンの完全性を維持するために、チェーン内の各ブロックは、前のブロックの完全性を確認し、最初のブロック起点ブロックに戻ります。レコードの挿入は、各ブロックが有効なブロックを生成するための特定の要件を満たす必要があるため、コストがかかります。この方法では、パーティーはチェーンをフォークするだけで以前のレコードを上書きすることはできません。

ビットコインを生成するのを難しくするために、Hashcashコスト関数が使用されます。 Hashcashは、費用対効果の高い効率的なコスト関数または作業証明機能の最初の安全な方法です。ハッシュキャッシュの美しさは、非インタラクティブなものであり、秘密鍵がないため、中央サーバや依存者が管理する必要があります。ハッシュキャッシュは、完全に分散され、無限にスケーラブルな結果となります。 (Hashcashは、対称鍵cryptogaphy、つまり一方向ハッシュキャッシュ関数、通常はSHA1またはSHA-256のいずれかを使用します)。

ビットコイン、完全性、ブロックチェイン、ハッシュキャッシュのコスト関数では、SHA256を基に[2]として使用します/ Cryptographic_hash_function暗号ハッシュ関数]。

暗号化ハッシュ関数は実質的に任意のサイズの入力データを基本的に取り込み、事実上不可能な逆順または予測方法で、比較的コンパクトな文字列に変換する(SHA-256の場合、ハッシュは32バイト)。入力データにわずかな変更を加えると、そのハッシュが予期せず変更されるので、まったく同じハッシュを与える別のデータブロックを作成することはできません。したがって、コンパクトなハッシュを与えることで、特定の入力データと一致することを確認することができます。ビットチェーンでは、ブロックチェーンである入力データはSHA-256ハッシュよりも大幅に大きくなります。この方法では、Bitcoinブロックはシリアル番号を含む必要はありません。ブロックはハッシュで識別することができます。これは、識別と整合性の両方の目的を果たします。独自の整合性も提供する識別文字列は、自己認証識別子と呼ばれます。

hashcash 難しさ因子は、ハッシュ出力に先行するいくつかのゼロがあることを要求することによって達成されます。技術的には、先頭の0ビットメソッドのHashcash数よりもきめ細かな制御を可能にするために、Bitcoinは、ハッシュを大きなビッグエンディアン整数として扱い、整数が特定のしきい値を下回っているかどうかを調べることによってハッシュキャッシュ解の定義を拡張します。ハッシュキャッシュのコスト関数は、ブロック内のデータがハッシュ値を超えてしきい値を下回るまで、ブロック内のデータをnonce値で摂動させることによって反復処理を行います。ブロックのこの低いハッシュ値は、容易に検証できる作業の証明として機能します。ネットワーク上のすべてのノードは、ブロックが要求された基準を満たしているかどうかをすぐに検証できます。

このフレームワークにより、Bitcoinシステムの本質的な機能を達成することができます。私たちはビットコインの所有権を確認し、すべてのトランザクションの分散データベースを用意して、[[#Double_spending |二重支出]を防止します。

Bitcoin Mining[編集]

前のセクションでは、ブロックをブロックチェーンに追加することは困難であり、達成には時間と処理能力が必要だと述べました。この時間と電力を出すインセンティブは、ブロックの生産を管理する人が報酬を得ることです。この報酬は2倍です。まず、ブロックプロデューサは、ネットワークによって合意されたいくつかのビットコインの賞金を得る。第2に、ブロックに含まれるトランザクションに存在する可能性のある取引手数料は、ブロックプロデューサによって請求されます(この賞金は25ビットコインです。

これは、 "Bitcoin [マイニング|マイニング]"として知られているアクティビティをもたらします。有効なブロックを生成しようとする処理能力を使用し、結果としていくつかのビットコインが得られます。ネットワークルールは、難しさがブロック制作を10分ごとに約1ブロックに保つよう調整されています。したがって、鉱業活動がより多く行われるほど、個々の鉱夫がブロックを生産することが難しくなります。難易度が高いほど攻撃者はブロックチェーンの先端を自分のブロックで上書きすることが難しくなります(詳細については、[[弱点]ページを参照してください)。

トランザクションデータベースを維持する上で重要であることに加えて、マイニングはビットコイン経済において人々の間でビットコインが作成され分配されるメカニズムでもあります。ネットワークのルールは、今後数百年にわたって、数十年を与えたり、取るようになっており、合計2100万のビットコインが作成されるでしょう。 規制通貨供給を参照してください。ヘリコプターからお金を落とすのではなく、[ブロックチェーン]にブロックを作成することによって、ネットワークに貢献する人たちにビットコインが与えられます。

二重支出[編集]

ブロックチェーンは、すべてのBitcoinノードが共有する共通の元帳であり、各Bitcoinの所有者またはその一部を詳述しています。従来の銀行システムとは異なり、この取引元帳は格納されていません。これは、小ブロック(「ブロック」)のブロードキャストによって達成され、それぞれが前のブロックの続きであると述べている。ブロックチェーンを分割することは可能です。つまり、2つのブロックが同じ親ブロックを指し、同じトランザクションのすべてではなく一部を含む可能性があります。これが起こると、ネットワーク内の各コンピュータは、受け入れられてさらに拡張されるべき「正しい」ブランチであるかどうかを決定する必要があります。

この場合のルールは、「最も長い」有効なブランチを受け入れることです。あなたが受け取ったブロックの枝から選んでください。経路は、合計「難しさ」が最も高いものです。これは、生成するために最も多くの作業(CPU時間)を必要としたブロックのシーケンスです。 Bitcoinの場合、これはイベントの「真の」順序になります。これはユーザーに表示するために残高を計算する際に考慮されます。

新しいブロックが常に生成されているので、後である他のブランチが最長のブランチになる可能性はあります。しかし、ブランチを拡張するためにはかなりの努力が必要であり、ノードは受信したブランチ(通常は最長のブランチ)を拡張するように動作します。したがって、このブランチが2番目に長いブランチに比べて長くなるほど、2番目に長いブランチが最初のブランチに追いついて克服するために、より多くの労力がかかります。また、ネットワーク内のノードのうち最長の分岐について聞くと、次のブロック生成時に他の分岐が拡張される可能性は低くなります。これは、ノードが最長のチェーンを受け入れるためです。

したがって、トランザクションが最も長いブロックチェーンの一部であった時間が長いほど、チェーンの一部を無期限に残す可能性が高くなります。これは、取引を不可逆的にするものであり、これが人々のコインの浪費を防ぐものです。お金が彼/彼女に転送された後、各取引の受信者が何をするかは、その取引に続くブロックチェーンがどれくらい長くなったかをチェックすることです。取引後に最も長い支店にブロックが増えるほど、他の枝がそれを克服するのだろうか?

トランザクション後のブロックチェーンが十分に長くなると、他のブランチがそれを克服することはほぼ不可能に近づき、人々はそのトランザクションを真として受け入れることができます。このため、「ブロック」はトランザクションの「確認」の役割も果たします。たとえ別の支店が取引でそれを克服したとしても、多くの人々がブロックを生成するように働いているので、ブロックの大半はコインの送付者と提携していない人々によって生成されます。トランザクションはネットワーク内のすべてのノードにブロードキャストされるため、これらのブロックは以前に受け入れられたブランチのブロックと同様にトランザクションを含む可能性があります。

Bitcoinは、可能な場合は、選択したツリーの任意のブランチを拡張することができるため、単一のエンティティがネットワーク上のCPUパワーの大部分を長時間にわたって制御することができないという事実に依存しています。他のブランチを拡張して最長のブランチにしてから、どのトランザクションがそのブランチに永久に表示されるかを制御することができます。

関連項目[編集]

外部リンク[編集]

カテゴリー:紹介