ビットコインを理解するための最も包括的で技術的なレイマンのガイド

あなたが技術以外のバックグラウンドから来て、ビットコインのホワイトペーパーを初めて読んでいるなら、それはすべて技術的な専門用語で満たされた巨大なジャンボであることに同意すると思います。ほんの1分後、2ページで80%が失われ、混乱する可能性があります。

私はそれを経験してきました、そして私は闘争を理解しています。

したがって、この記事はビットコインとは何か、そしてそれがどのように機能するかを簡単に説明するために書かれています。私は技術者ではないので、完全に正確で完全ではないかもしれません。しかし、私は自分の理解に基づいてそれを説明するために最善を尽くします。この記事の形式は、元のホワイトペーパーの形式に従います。読書体験を最大限に活用するには、このガイドを参照する前に、まず元のホワイトペーパーを読むことをお勧めします。リンクはここにあります。

はじめに

はじめに、中本聡氏は、金融仲介機関を利用することで、国境を越えた電子決済がどのように促進されるかを説明しています。従来の銀行システム、送金市場、PayPalなどに精通しているため、これは私たちにとって目新しいことではありません。要点は、ある人から別の人に電子マネーを送金する場合は、金融仲介業者を通じて行う必要があるということです。

現在の伝統的なモデルは信頼に基づいています。銀行システムへの信頼と金融機関への信頼。すべて問題ありませんが、このような信頼モデルにはいくつかの弱点があります。

第一に、不可逆的な取引は不可能です。または別の見方をすれば、トランザクションは実際には元に戻すことができます。これは、これらの金融仲介業者が紛争を調停し、エラーを解決する責任を負っているためです。次のシナリオを想像してみてください。

  • 商品やサービスを提供しているが、購入者が支払いを取り消した
  • 間違ったアカウントに送金する
  • 疑わしいアカウントからの支払い
  • 注文の処理に失敗する

金融取引は実際には可逆的であるため、これは調停を通じてさまざまな取引および運用コストを課します。結果として、マイクロペイメントを行うことは非現実的です。通常、クレジットカード会社は、発行銀行や支払い処理会社などからのさまざまな取引コストをカバーするために、ある種の最低料金を課します。さらに、マイクロトランザクションの紛争を解決することを想像してみてください。取引費用。

第二に、支払いは実際には元に戻せるからです。サービスプロバイダーは、元に戻せないサービスを提供するリスクを負っていますが、見返りとして支払いを受けることはできません。これは、サービスのメリットをすでに消費している購入者が、何かをして自分への支払いを取り消すことを決定した場合に発生する可能性があります。

第三に、顧客のKYC / AMLチェックが不十分なために支払いが行われない可能性があるため、サービスプロバイダーは必要以上の情報を取得する必要があり、データのプライバシーに関する懸念を侵害する傾向があります。

信頼できる第三者機関に関するこれらの問題はすべて、電子取引をある程度阻害します。中本聡氏が提案したソリューションは、一元化されたサードパーティの信頼ではなく、暗号化証明に基づくピアツーピアシステムです。このシステムでは、トランザクションは元に戻せません。これは、トランザクションを逆にする試みを計算上非現実的にすることによって行うことができます。そうすることで、現在支払いを取り消すことができないため、販売者による不正行為を防ぐことができます。買い手が支払いを行い、売り手が義務を履行しなかったシナリオでは、エスクローを実装してそれらを保護することができます。

トランザクション

これは私が最も混乱する部分です。それはビットコイン取引がどのように機能するかについての技術を掘り下げます。それは、電子コイン(ビットコイン)をデジタル署名のチェーンとして定義することから始まりました。

このデジタル署名のチェーンは、基本的に、ビットコインを相互に送信する人々のすべてのトランザクションで満たされた元帳データベースです。それが基本的にビットコインです。金の棒や法定通貨とは異なり、物理的な概念はありません。

あなたはそれを保持することも、あなたがそれを見ることができないこともできません。

私がビットコインを持っていると言うとき、私は実際にあなたに見せるものは何もありません。私がそれらのビットコインの正当な所有者であることを全世界が証明および検証できるのは、元帳の一連のコードにすぎません。

この元帳データベースは、世界中のビットコインノードまたはコンピューターに分散されています。アリスがボブ5BTCを送信するたびに、元帳はすべてのノードにブロードキャストされ、すべての元帳が同時に更新されます。ボブがチャーリー3BTCを送信すると、再度更新されます。

そのため、サトシは電子コインをデジタル署名のチェーンと表現しています。それは基本的に、ある当事者から別の当事者へ、そして別の当事者から別の当事者にビットコインを送信する元帳でのトランザクションの署名にすぎないためです。

これは、ビットコイントランザクションがどのように機能するかについての簡単な概要です。ビットコインは入力と出力で構成されています。人々がビットコインを私に送るとき(それは彼らに出力され、私のために入力されます)。私が他の人にビットコインを送るとき(それは私に入力され、彼らのために出力されます)。 10 BTCを送信したい場合は、次のようになります。

  1. あなたの公開アドレス(銀行口座番号のようなもの)が必要です
  2. トランザクションメッセージが必要です(送信するBTCの数とアドレス)
  3. トランザクションを開始したことを証明するために、秘密鍵を使用して署名します
  4. デジタル署名が生成されます
  5. 公開鍵を表示するだけで、デジタル署名を検証および検証できます
  6. 秘密鍵を明かさなくてもビットコインを所有していることを証明できます

しかし、二重支払いとして知られている問題があります。同じ10BTCが2回使用されていないことをどのように確認しますか?私の許可なしに、誰かが私の秘密鍵を使用して署名したデジタル署名をコピーして貼り付け、ビットコインノードにブロードキャストすることができます。

タイムスタンプサーバー

二重支払いの問題を解決するための解決策は、タイムスタンプとハッシュを使用することです。

暗号化されたSHA256ハッシュは、テキストまたはデータファイルのぎこちない文字と数字の一意の署名のようなものです。大文字やカンマなどの細かい変更は、出力コードを完全に変更します。ここでハッシュがどのように機能するかを試すことができます。タイムスタンプは、特定の時刻の日時です。

では、タイムスタンプとハッシュはどのように二重支払いを解決するのでしょうか? 2つのBTCをアリスに送信し、同じ2つのBTCを自分のビットコインアドレスに送信するとします。当然のことながら、最初のトランザクションのみがカウントされます。その後、同じBTCを使用しようとすると、無効になります。

両方のトランザクションがビットコインネットワークにブロードキャストされているとき、それは最初に未確認のトランザクションのプールの下にとどまり、鉱夫が来てそれを確認するのを待ちます。鉱夫がアリスへのBTCトランザクションを検証すると、ブロックは他のすべてのトランザクションとともにタイムスタンプが付けられ、ハッシュされます。このハッシュ出力は公開され、ブロックハッシュが生成されると、ブロック内のトランザクションが2回発生することはありません。

このハッシュ出力は公開され、まったく同じハッシュ出力が次のブロックに含まれます。ここで、ブロックチェーンの概念が導入されます。これは、ブロック1をハッシュする場合、ブロック1内のトランザクションのプールと前のハッシュ出力が含まれることを意味します。

現在のブロックの出力ハッシュコードには、入力として前のハッシュが含まれています。すべてのブロックは、時系列で前のブロックにリンクされています。より多くのブロックにタイムスタンプが付けられ、ハッシュされ、リンクされると、ネットワークはあらゆる種類の悪意のある攻撃に対してより耐性があります。

これは、1つのブロック内のデータを改ざんすると、出力ハッシュコード全体が変更され、その後に続くすべてのブロックがすべて台無しになるためです。すべてのブロックに前のハッシュが含まれているため、前のハッシュが変更された場合、ハッシュ出力が完全に異なるため、その後のすべてが影響を受けることを意味します。

ハッシュ関数について話したことを覚えていますか?入力を変更すると、ハッシュ出力が完全に変更されます。

プルーフオブワーク

プルーフオブワークは、出力ハッシュ全体が必要なゼロの数を満たすように、魔法のナンス数を見つけようとする計算作業です。これがビットコインマイニングの本質です。世界中のすべての鉱山労働者は、その魔法のナンス番号を最初に見つけた人になるために競います。例:

00000000000000000000 8e367ecc0a8c6455aa0b6e67c9fa760077b8aebed373

マイナーはnonce1、SHA256ハッシュで開始し、出力ハッシュが前に必要な数のゼロと一致するかどうかを確認する必要があります。そうでない場合、コンピューターはnonce 2、nonce3などを試します。これは、ブルートフォース検索のようなもので、ハッシュすると、出力で必要な数のゼロが前に返されるような数値を見つけることができます。ハッシュ出力の前に必要なゼロの数は、難易度を表します。より多くのゼロが必要な場合、それはそれがより困難であることを意味します。

ハードウェアの速度が上がり、より多くの関係者がビットコインノードになることに関心を持つようになると、ビットコインコードは、1時間あたりに生成されるブロックが多すぎないように、難易度を自動的に調整します。

生成されているブロックが多すぎる場合は、その魔法のナンス番号を見つけるのにかかる時間が短くなることを意味します。それが起こるとき、プロトコルはパズルをより難しくするために前にもっと多くのゼロを必要とするでしょう。逆に、生成されるブロックが少なすぎる場合は、パズルが難しすぎて、先行ゼロの数が減り、簡単になります。

ブロックがマイニングされるまで、平均して約10分かかります。難易度(前のゼロの数) 2016ブロックごとに自動的に調整されます(約14日) 。 1つのブロックに10分かかる場合、2016ブロックは20,160分または14日を意味します。

ビットコインネットワークには単一のブロックチェーンのみが存在する必要があり、正直なチェーンが最長のチェーンになります。これは、悪意のある攻撃者がチェーンを変更し、それでも最長のチェーンを構築することは指数関数的に不可能であり、非現実的であるためです。

説明のために、現在2つのチェーンがあると想像してください:

攻撃者は、いくつかのビットコインを二重支払いすることによって、ブロックデータを編集しようとします。彼は新しいBMWを購入するために10BTCを費やしました。トランザクションはビットコインネットワークにブロードキャストされ、マイナーによって検証され、ブロックにはタイムスタンプが付けられ、チェーンされます。

ただし、彼自身のプライベートチェーンでは(影付きの赤) 彼は、トランザクションを含めず、確認しないことにしました。したがって、10BTCは悪意のあるチェーンに費やされていません。したがって、彼がBMWを受け取ったが、彼自身のプライベートチェーンで10 BTCを費やしていなかった場合、二重支払いが発生します。

これに対する解決策は、最長のチェーンが最も真実で正直なチェーンになるようにビットコインプロトコルを作成することです。彼が自分のプライベートチェーンを真実にしたいのなら、彼は世界中からの結合された採掘力よりもはるかに速くブロックを採掘しなければなりません。それは10万に対して1を戦うようなものです。勝つチャンスは何ですか?

したがって、これは、彼が鉱山労働者を51%支配している場合を除いて、彼がコインを二重に使うことを不可能にします。これが、ビットコイントランザクションが確認および検証されるために6ブロックの確認を必要とする理由です。理論的根拠は、新しいブロックごとに指数関数的に難しくなるため、攻撃者がマイニングレースに勝つことは決してないということです。

ネットワーク

このセクションでは、ビットコイントランザクションがどのように機能するかのプロセス全体の概要を示します。前のセクションで説明した多くのことは、ドットを接続し、ビットコインネットワークを実行するための手順のより明確な図を形成するのに役立ちます。

ある人から別の人にビットコインを送るときはいつでも、それはトランザクションと呼ばれます。世界中で毎秒複数のトランザクションが発生しています。これらのトランザクションはすべてノードにブロードキャストされ、ブロックにまとめてプールされます。これらは未確認のトランザクションと呼ばれます。したがって、各ブロックには複数のトランザクションが含まれます。

すべてのトランザクションがブロックのサイズ制限をすでに満たすと、鉱夫は魔法のナンス番号を見つけ始めます(Proof-of-Work) ブロックのハッシュが必要な数のゼロを前に生成するようにします。その数を首尾よく見つけた最初の鉱夫は、十分な作業の証明が実行されたことを示しました。

次に、それを他のすべてのノードにブロードキャストします。誰もが答えを知っているので、すべてのノードはそれに応じて元帳を更新し、最新のレコードチェーンを表します。現在のブロックのハッシュは、次のブロックの入力の一部として使用されます。したがって、次のブロックのハッシュには、前のハッシュとそのブロック内の他のすべてのトランザクションが含まれます。

ブロックの最長のチェーンは、最も真実のチェーンを表します。 2つのチェーンが同時に発生する可能性があります。たとえば、東の1人の鉱夫と西の別の鉱夫が一緒に魔法のナンス番号を見つけて、それを放送し始めました。次のブロックが競争をリセットするので、それは問題ありません。最終的には、一方が他方より長くなります。短い方のチェーンは、最も長い方のチェーンに置き換えられます。

インセンティブ

このセクションでは、サトシはビットコインマイニングのプロセスを金と比較します。以前は、採掘設備、ドリルを購入し、その下の金を掘って採掘するために労働者を雇わなければなりませんでした。それがコストです。もちろん、金鉱脈を打った場合の報酬は、採掘した金になります。

同様に、ビットコインマイニングのプロセスは、消費されるCPUパワーと電力コストです。マイニングCPUがブルートフォース方式を使用してその魔法のナンス番号を見つけることを思い出してください。これは膨大な処理能力を消費し、多くの電力を消費します。これらはすべてコストがかかります。

ビットコインのマイニングにかかる​​コストには見返りがなければなりません。金鉱夫への報酬は金そのものです。ビットコインマイニングの報酬は、ビットコインと取引手数料になります。流通しているビットコインは2100万に過ぎません。上限制限はインフレを防ぎ、ビットコインがその価値の貯蔵を維持することを可能にします。

魔法のナンス番号がビットコインで報われることを首尾よく見つけた鉱夫。ビットコインの数は4年ごとに半分になります。最初は50、次に25、次に12.5でした。 2020年の時点で、ビットコインはさらに半分になり、マイニング報酬はその後12.5から6.25に減少します。

勝利した鉱夫が魔法のナンス番号を見つけるたびに、すべてのビットコインが徐々に循環に放出されます。これは、お金を分配する中央の権限がないためです。報酬としてビットコインを使用すると、鉱山労働者はビットコインネットワークを運営、管理、強化するようになります。

さらに、ビットコインを獲得することによるインセンティブは、攻撃者がゲームを正直にプレイすることを奨励します。これは、最長のプライベートチェーンを構築するために、大量の計算能力とCPUマイニングマシンへの数十億の投資が必要になるためです。さらに、後者の実行が成功すると、ビットコインの価格が大幅に下落します。

したがって、攻撃者は、二重支払い攻撃を調整するよりも、その量の投資されたCPUパワーを使用してビットコインをマイニングして獲得する方がよいでしょう。これは、彼のCPUパワーが高いほど、その魔法のナンス番号を見つけてビットコイン報酬を獲得する可能性が高くなるためです。

ディスクスペースの再利用

1つのブロックには複数のトランザクションがあるため、多くのスペースを占有し、ブロックが保持できるデータの数が制限されます。このための解決策は、MerkelTreeとして知られています。したがって、複数のトランザクションをブロックに格納する代わりに、以前のすべてのトランザクションレコードの証跡を含む単一のルートハッシュを格納するだけで済みます。

これがどのように機能するかの本質は、ハッシュのハッシュです。 Tx0とTx1がHash01にハッシュされていることがわかります。 Tx2とTx3はHash23にハッシュされます。 Hash01とHash23の両方が組み合わされ、ハッシュされてルートハッシュが形成されます。このように、使用済みのトランザクションは、切り取られている木の枝のようなものです。

簡易支払い検証(SPV)

Simplified Payment VerificationまたはSPVノードは軽量のクライアントであり、ユーザーがジェネシスからビットコイントランザクションの履歴全体をダウンロードする必要はありません。元帳では何百万ものトランザクションが発生しており、すべてをダウンロードすると非常に長い時間がかかります。

解決策は、最長のチェーンのブロックヘッダーのコピーを保持することです。このブロックヘッダーは、特定のブロックのハッシュ出力です。これは、ビットコインのバージョン番号、マークルツリーのルート、前のブロックハッシュ、難易度のターゲット、および魔法のナンス番号を含む80バイトの長さの文字列です。これらは、この記事の前半で説明したものです。このブロックヘッダーは、ブロックチェーン上の特定のブロックの一意の識別子のようなものです。

簡易支払い検証という用語は、ブロック内で発生した他のすべてのトランザクションを知る必要なしに、特定のトランザクションを検証できることを意味します。

説明のために:

トランザクションKが有効かどうかを知りたいとします。トランザクションKのハッシュはHK (影付きの緑色)です。 下の行の図に見られるように。

他のすべてのハッシュでHKをハッシュし続ける場合(影付きの青) そしてそれは最終的にルートハッシュにつながります(HABCDEFGHIJKLMNOP) マークルツリーの下では、トランザクションKが実際にこのブロック内に含まれ、検証されていることを確認できます。したがって、トランザクションハッシュがMerkleルートハッシュを指し、メインブロックがブロックチェーン内に含まれている場合、トランザクションは検証および確認されたと言えます。

値の結合と分割

これは、ビットコイントランザクションが機能する方法のもう1つの重要な部分です。基本的に、複数の取引を行うのは面倒だと言っています。プロパティの価格が10BTCであるとしましょう。複数の別々のトランザクションを送信するのは面倒です。

支払いを行うのに3つのトランザクションが必要だと想像してください。 4 BTCの最初のトランザクション、5 BTCの2番目のトランザクション、および1BTCの3番目のトランザクション。これは3つの別々のトランザクションをブロードキャストすることになり、マイナーは魔法のナンス数を計算して解決するのに時間をかける必要があります。

これに対する解決策は、複数の入力と1つまたは最大2つの出力を許可することです。したがって、上記の場合、3つの入力(4 BTC、5 BTC、および1 BTC)と1つの出力10BTCが不動産売り手にあります。

しかし、3 BTC、9 BTC、5 BTCのような奇数がある場合はどうなりますか?ここで2つの出力が出てきます。1つは売り手への出力で、もう1つは自分自身への変更としての出力です。したがって、入力は9BTCと3BTCになります。出力は、不動産販売者への10 BTCと、自分のビットコインアドレスへの2BTCになります。

したがって、ビットコインでは、複数の入力が存在する可能性がありますが、自分自身に戻すための出力は1つまたは最大2つだけです。あなたが他の誰かにビットコインを送りたいときはいつでも、それは他の人があなたに送ったビットコインのすべての出力を集めるでしょう。他の人があなたにビットコインを送るとき、それは彼らに出力され、あなたに入力されることを覚えておいてください。あなたが他の人にビットコインを送るとき、その出力は入力になり、他の人への私の出力は彼または彼女の入力になります。

プライバシー

従来の銀行モデルは、情報を取引相手に限定することでユーザーのプライバシーを保護します。しかし、それが現代では常に当てはまるとは限らないことを私たちは知っています。大規模な多国籍企業がハッキングされ、顧客データが漏洩するというニュースが頻繁にあります。

ビットコイン取引は誰にでも公開されていますが。それはすべて単なるぎこちないコードと数字であるため、ある程度のプライバシーは依然として個人レベルで維持されています。たとえば、9月4日にビットコインネットワークで発生した最新のトランザクションを見てみましょう。

ちょうど午後7時39分に起こった53ビットコインまたはUS $ 563,625のトランザクションがあります。この人について私たちは何を知っていますか?私たちが利用できる唯一の情報は、彼のビットコインのパブリックアドレスです。身元は不明であり、すべてのビットコイン取引が公に利用可能であっても、この人物のプライバシーは維持されます。

ただし、同じパブリックアドレスを特定の人にリンクする可能性はまだあります。 Satoshiは、トランザクションごとに異なるキーペアを使用することをお勧めします。このビットコインアドレスを想像してみてください:38vjCt6KppEHhQcU6cY8fzxEWYJZwQwpwRは私のアカウントです。

私はこのビットコインアドレスを使用して、パーティーのアリス、ボブ、チャーリーなどに複数のトランザクションを送信します。政府がKYCチェックを開始し、38vjCt6KppEHhQcU6cY8fzxEWYJZwQwpwRの背後にいる人物の身元を明らかにした場合、私が行った他のすべてのトランザクションは私にまでさかのぼることができます。

計算

これは私が理解していない統計的な数学の部分です。方程式と式が何を意味するのかと聞かれたら、私には何の手がかりもありません。ただし、このセクションには2つの主要なポイントがあります。

1つ目は、攻撃者ができることは限られているということです。彼は薄い空気から新しいビットコインを作成することも、誰かから自分自身にビットコインの支払いをすることもできません。これはビットコインプロトコルの標準を超えています。彼ができる唯一のことは、支払いを取り消すためにブロックでそれを除外することによって彼自身のトランザクションを編集することです。これは二重支払い問題と呼ばれます。

2つ目は、攻撃者が集合的な正直なノードよりも速くビットコインのマイニングの競争に勝つことは不可能であるということです。確認されたブロックの数が増え、次々に連鎖するにつれて、勝つ可能性は指数関数的に小さくなります。

ビットコインネットワークで魔法のナンス数を解く確率のコンテキストを与えるために、ビットコインの合計ハッシュレートを見てみましょう。

9月19日の合計ハッシュレートは約88,000TH / sです。魔法のナンス番号が見つかった後、すべてのブロックがハッシュされることを覚えていますか?ハッシュレートは、魔法のナンス数を見つけるための一般的な処理ハッシュ能力の尺度です。ハッシュレートは、特定のハードウェアまたはネットワークが実行できる計算の数です。

これらのASICビットコインマイニングマシンを100台購入したとしましょう。私のミニビットコインマイニングファームは、140 TH / sのハッシュパワーを生成します。合計ビットコインハッシュレートを私のミニビットコインマイニングファーム(88,000 / 140)で割ると、約630になります。

これは、ブロックの魔法のナンス番号を見つける可能性が1/630または0.001であることを意味します。最初のブロックを正常にマイニングするには、630ブロックが私の後に来る必要があります。私が攻撃者であり、正直なチェーンよりも長いチェーンを構築したいとします。6つのブロック確認をそれらよりも速くリンクする必要があります。したがって、私の確率は0.001の6乗になります。これは、統計的、数学的、および天文学的に不可能です。

結論

結論として、ビットコインは、サードパーティや中央当局を信頼する必要のないデジタルマネーの提案されたソリューションです。これは、暗号化証明、マイニング、正直なノードの分散ネットワーク、および確認されたブロックごとに同時に更新される共通の元帳に基づいています。

私たちはデジタル署名の概念から始めました。私がビットコインを所有していることを証明するために秘密鍵を使用して署名し、ビットコインを別の人に送信するトランザクションを開始すると、デジタル署名が生成されます。これにより、ある時点で誰がビットコインを所有しているかについての所有権が提供されます。ただし、二重支払いの問題があります。取引に署名し、ビットコインを送って不動産を購入したが、それでも私は自分のプライベートブロックチェーンで取引を除外することにしました。

このような発生を防ぐための解決策は、タイムスタンプを付け、ブロックをハッシュし、ブロックの前のハッシュを入力として含めることです。これにより、攻撃者がすべての正直なノードに対してマイニングレースに勝たなければならないため、攻撃者がそのような攻撃を行うことは事実上不可能になります。

ビットコインネットワークは誰によっても運営されていません。ビットコインの背後にはサービスサポートや政党はありません。誰でもいつでも参加および退会できます。最長のチェーンは、行われたトランザクションの履歴全体の真実の特異点と見なされます。

これでビットコインホワイトペーパーは終わりです。この注釈付きバージョンが、ビットコインとは何か、ビットコイントランザクションがどのように機能するかをよりよく理解するのに役立つことを願っています。

​​ 編集者のメモ :まあ、それは巨大な塊でした!実質的に言えば、このホワイトペーパーを理解することで、ビットコインのメリットを投資して享受する方法を前進させる能力が得られるはずです。

確信が持てない場合は、クリストファーロングが無料でマスタークラスを運営しています。ガイドが必要な場合、またはビットコイン/代替資産投資の世界の専門家と話すだけの場合は、ここから始めることができます。チャンスをつかんで彼の頭脳を選ぶことを強くお勧めします。

​​ 投稿者 TheAncientBabylonians
Facebook:
https://www.facebook.com/thebabylonianss/
ウェブサイト:
https://www.theancientbabylonians.com/


ブロックチェーン
  1. ブロックチェーン
  2. ビットコイン
  3. イーサリアム
  4. デジタル通貨交換
  5. 鉱業