ブロックチェーンの説明

ブロックチェーン-101

ブロックチェーンは、そのブロックチェーンでこれまでに行われたすべてのトランザクションの公開された分散型元帳です。ビットコインはブロックチェーンと同義のようですが、ブロックチェーンテクノロジーはビットコインだけではありません。ビットコインはこのテクノロジーの最大かつ最もよく知られている実装ですが、他の大規模なオープンソース実装のいくつかは イーサリアムライトコイン.

非常に簡単に言えば、ブロックチェーンは何百万ものコンピューターで実行されるソフトウェアです。これらのコンピューター(またはノード)は相互に通信して、データの同期を維持します.

しかし、それはどのように機能し、なぜそれが発明されたのですか??

二重支払いの問題

銀行などの金融取引における中央の信頼できる機関の主な責任の1つは、「二重支払い” 問題。銀行は信頼できる仲介者として機能し、デジタルで2回お金が使われないようにします。銀行は、この両替が 取引.

トランザクションは、定義上、アトミックです。つまり、発生するかしないかにかかわらず、中間状態はありません。トランザクションもシーケンシャルです。これは、トランザクションが常に別のトランザクションの後に続く、および/または先行することを意味します。トランザクションは同時に発生しません.

例として、ハンナが$ 10を持っていて、彼女がアリスに$ 3とリアムに$ 5を支払わなければならないとしましょう。これらのトランザクションが論理的に正常に終了すると、ハンナは2ドル、アリスは3ドル、リアムは5ドルになります。ハンナは、アリスとリアムの両方に同じお金を同時に送ることはできません。彼女がそうすると、ハンナは5ドル、アリスは3ドル、リアムは5ドルになります。ハンナは魔法のように3ドルの追加料金を作成したでしょう。彼女は二度お金を使っていただろう.

これらの各取引の記録を保持している銀行のような信頼できる中央当局がなければ、金融システムはすぐに崩壊してしまいます.

したがって、分散型の元帳とデジタル通貨のアイデアは1990年代から存在していましたが、二重支払いの問題は、その実用化の大きな障害でした。.

ビットコイン/ブロックチェーンがそれをどのように解決するか

2009年、未確認の個人である中本聡が 白書 彼は、デジタル暗号化、ゲーム理論、コンピューターサイエンスを介して、中央機関が仲裁人として行動することなく、二重支払いの問題を解決したと主張しました。.

ニック・サボが紹介した ビットゴールド ビットコインはビットゴールドに非常に似ており、その概念の多くを共有しているため、Szaboを中本聡だと疑う人もいます。.

公開鍵暗号

ブロックチェーンテクノロジーがどのように機能するかを理解するには、公開鍵暗号を理解する必要があります。このトピックの完全な技術的詳細は、この記事の範囲を超えています。詳細が利用可能です ここ.

非常に高いレベルでは、公開鍵暗号化は、公開鍵と秘密鍵の2つの鍵に依存しています。これらの2つのキーはリンクされていますが、以下のように分離されています。

  • 対応する秘密鍵で暗号化されたデータを復号化できるのは公開鍵のみです
  • 公開鍵は、対応する秘密鍵によって署名されたデータを検証できます

公開鍵は他の人と安全に共有できるため、「公開」されます。セキュリティ上の理由から、秘密鍵は秘密にしておく必要があります。公開鍵は秘密鍵から取得できますが、その逆はできません。.

例として、ボブがアリスに秘密のメッセージを送信したいとします。ボブは、メッセージを送信する前に、メッセージを暗号化するためにアリスの公開鍵を知っている必要があります。公開鍵は秘密ではないので、アリスはそれをボブに自由に送ることができます。アリスは暗号化されたメッセージを受信すると、秘密鍵を使用してメッセージを復号化できます。メッセージを傍受する途中の人は、アリスの秘密鍵なしではメッセージを復号化できません.

参考までに、公開鍵は次のようになります。

305C300D06092A864886F70D01010105 00034B003048024100A251C92CCA3E7B 6599146DDB10044807B3AA1EFA8BE627 4D329765E0CC5A0EA03CA8F010524A89 2484A7C96498660A20DBD3AA3E92D2CB 5037DD95B7F

暗号化されたメッセージは次のようになります。

—–BEGIN PGP MESSAGE —– hIwCMavvb4t6z90BA / 42UOAdWvnzfhRG2xXyYe203CISLsn2O39vM / y640hNbSl7 U29aNGZFfLMRGn7eLZG43SWwBz4cHjphG6iAzeLftRgHkLggxXA9VpGki5PyNID9 B0rk4TpRVE3qzgTbdio69aMlK6BdAQ4zWkyxSCi0oR3Vpnh + VVZyOVyaX8etlYRM AvUTsuDYCkr1AQH + OlA4ntqhxoPP / SJpKm5ugMLYiiij8ak8V90a8IYMkYB0CzMr liOJ6ZZxQm1x8orgjL / 6Bm5EoSvN4eCCeA / xXKYAAAHXLhG47kVhJkjlPrI / U / SR 2aQEm6r + aU1s0ziU1LxF2c5DAW6cD5b4xH + EbvYrnQQJClNMh9y03SjviXvnqFDC O4M70u3iLC50 + em4PouqM1DZdoW8O5pb = vhFx —– END PGP MESSAGE—–

ハッシュ関数– SHA-256

暗号化により、2者間のメッセージの安全性と信頼性が保証されます。ただし、受信者は、受信したメッセージが改ざんされていないことも確認する必要があります。これを行うために、送信されるすべてのメッセージは、そのハッシュ値を使用してデジタル署名されます.

ハッシュはメッセージのデジタル署名のようなものです。として知られている多数のアルゴリズム ハッシュ関数, 次のようなハッシュを生成するために開発されました MD5SHA-1, しかし、現在最も一般的に使用されているものは SHA-256. ブロックチェーンを理解するために、ハッシュの詳細やさまざまなハッシュ関数に含まれる計算は不要です。.

ハッシュ関数は一方向性関数です。これは、同じ関数を使用する場合、メッセージのハッシュが常に同じであることを意味します。ただし、メッセージをハッシュから復号化することはできません.

SHA-256は常に256ビットのハッシュ値を生成します。例えば:

[テーブルID = 1 /]

ご覧のとおり、データを1回変更すると(この場合は大文字のL)、ハッシュが完全に変更されます。.

ハッシュ関数へのデータ入力は、単一の単語のように単純な場合もあれば、辞書全体である場合もあり、上記と同様の256ビットのハッシュ値を常に生成します。.

チェーンとは

上記のように、任意のデータセットをハッシュ関数に渡して、対応するハッシュを生成できます。ブロックチェーンでは、このデータセットはそこで行われるトランザクションです。ブロックチェーン内のすべてのトランザクションは、現在SHA-256関数を使用して、ハッシュを使用してデジタル署名されています。以降のすべてのトランザクションには、前のトランザクションのデジタル署名が含まれます。これは チェーン内のトランザクションを変更すると、後続のすべてのトランザクションのハッシュ値が変更されるようなトランザクションの数。これにより、ハッシュ値を比較するだけで、前のトランザクションが変更されたチェーンを簡単に識別できます。.

例:ボブが10ドルをアリスに、さらに5ドルをチャーリーに送金する必要があるとします。トランザクションはアトミックであるため、ボブによる10ドルのアリスへの送金が最初に行われます。このトランザクションは、SHA-256ハッシュを使用してデジタル署名されます。ボブが5ドルをチャーリーに送金する次のトランザクションもデジタル署名されますが、今回は前のトランザクションのハッシュも含まれます.

[テーブルID = 2 /]

もちろん、ブロックチェーン上のトランザクションはこのようには見えませんが、これはそれの一般的な表現を与えます.

マイニングとは

前述のように、ブロックチェーンは、データの同期を確保するために相互に通信する同じソフトウェアを実行するノードのネットワークです。これらのいくつかはマイナーと呼ばれる特殊なノードです.

マイナーの目的は、ブロックチェーンで実行されているトランザクションを検証することです。多数のトランザクションチェーンが検証されると、それらが組み合わされて、 ブロック トランザクションの.

トランザクションを正しく正直に検証したことに対する報酬として、マイナーは対応するブロックチェーンの暗号通貨を授与されます。したがって、たとえば、ビットコインブロックチェーンのマイナーはビットコインで報われます。この金額は固定されていますが、時々変わる可能性があります.

鉱山労働者は彼らの プルーフオブワーク 彼らの報酬を獲得するために。 NS 仕事 実行するのは、基本的に32ビットフィールドを見つけることです。このフィールドは、トランザクションチェーンのハッシュ値でハッシュされると、設定された数の先行ゼロを持つ別のハッシュ値を生成します。このフィールドはナンスと呼ばれます。生成される先行ゼロの数は、設定された数のブロックがマイニングされた後に変化する難易度によって設定されます。先行ゼロの数が多いほど、ナンスを見つけるのが難しくなります. 

例として、ビットコインブロック#のナンス493257 であることが判明した 1488602745 そのブロック内のトランザクションでハッシュされると、のブロックのハッシュが生成されます。 00000000000000000034bd56aea0c6db865e8dff1fe5d2023170b568ad5e0968. ブロックのハッシュ値の先行ゼロに注意してください.

式を使用してナンスを導出することは非常に実行不可能です。ナンスを見つける唯一の方法は当て推量です。つまり、マイナーは、先行ゼロの要件を満たす値に本質的に遭遇する前に、潜在的に多数の32ビット値を実行するために独自の計算能力を費やす必要があります。彼らがナンスを見つけたという事実は、彼らがそれを見つけるための仕事をしたことを証明しています.

ブロックチェーンをまとめる

公開鍵暗号化により、2つのアカウント間のトランザクションが安全になります.

ハッシュ関数は、トランザクションが有効でアトミックであり、変更が事実上不可能であることを保証します.

プルーフオブワークによるマイニングにより、トランザクションがサードパーティによって確認および検証されることが保証されます.

これらすべての方法が連携することで、分散型元帳、つまりデジタル通貨のようなアプリケーションがブロックチェーン上で可能になります.