ご存知のとおり、ブロックチェーンの主要な技術コンポーネントは、主に P2P ネットワーク プロトコル、コンセンサス メカニズム、暗号化技術、アカウントおよびストレージ モデルです。これらの技術の中で、暗号化とコンセンサスメカニズムが最も重要です。そこで今日は暗号化について詳しく説明し、暗号化技術がブロックチェーンにどのように適用されているかを見ていきます。 まず、ブロックチェーンでどのような暗号化アルゴリズムが使用されているかを知る必要があります。実際には、2 つの主要なカテゴリがあります。
1. ブロックチェーンのハッシュアルゴリズム ハッシュ アルゴリズムは、ブロックチェーンで最も一般的に使用されるアルゴリズムです。ブロックの構築やトランザクションの整合性の確認に広く使用されています。 これはハッシュ アルゴリズムとも呼ばれる数学関数アルゴリズムの一種であり、次の 3 つの基本特性を備えている必要があります。
ハッシュ アルゴリズムが暗号的に安全であることが求められる場合、次の 3 つの追加機能も必要になります。 1. 衝突耐性: つまり、2 つの異なる入力に対して、2 つの異なる出力を生成する必要があるということです。 2 つの異なる入力に対して同じ出力が生成された場合、衝突耐性は存在しないか、または衝突耐性は弱いことになります。 2. 機密保持: 不可逆性とも呼ばれ、y = HASH(x) において、出力値 y は入力値 x によって計算できますが、y の値から逆計算して x の値を計算することはできません。不可逆性を保証するためには、x の値は非常に広い範囲から取得する必要があり、計算によって x の値を推測することは困難になります。 3. パズルに優しい: この特徴は、パズルが公平で友好的であるという意味です。たとえば、アルゴリズムでは、y = HASH(x) です。y の値がわかっていて、x の値を取得したい場合は、総当たり列挙と継続的な試行を使用して取得する必要があります。これより良い方法や近道はありません。 ハッシュアルゴリズムは多数ありますが、ビットコインで使用される主なハッシュアルゴリズムは SHA-256 アルゴリズムです。 さらに、MD5、SHA-1、SHA-2(SHA-224、SHA-256、SHA-384、SHA-512)、SHA-3 などの他の一般的なハッシュ アルゴリズムもあります。これらのうち、MD5 と SHA-1 は強力な衝突耐性が欠けており、十分に安全ではないことが証明されているため、市場での使用は推奨されなくなりました。 ハッシュ アルゴリズムの具体的な応用例を見るために、ビットコインを例に挙げてみましょう。 ビットコインでは、ハッシュ アルゴリズムを使用してトランザクションのデータ サマリーを生成します。現在のブロックには前のブロックのハッシュ値が含まれ、次のブロックには現在のブロックのハッシュ値が含まれます。これらは 1 つずつ接続され、以下に示すようにハッシュ ポインター リンク リストを形成します。 上記は単なる概略図です。では実際のビットコインシステムでは、各ブロックには何が含まれているのでしょうか? 上の写真の次の点に注目してください。
上記では、いくつかの重要なフィールドについてのみ説明しました。他のフィールドは、文字通りの意味から簡単に理解できるはずなので、1つずつ説明することはしません。 これらすべてのフィールドが一緒になってブロック ヘッダーを構成し、ブロック ヘッダーは 2 回ハッシュされる必要があり、計算された値が現在の Bitcoin ブロックのハッシュ値になります。ビットコインシステムでは、計算されたハッシュ値が特定の条件(特定の値未満)を満たす必要があるため、要件を満たす新しいハッシュ値を計算するために、ノンス値を継続的に走査する必要があります。要件を満たすハッシュ値が見つかった場合にのみ、これは合法的なブロックになります(この一連のアクションはマイニングとも呼ばれます)。 Python の例: SHA-256 (SHA-256 (ブロック ヘッダー) 上記のもう 1 つの重要なフィールドである Merkle ツリー フィールドを見てみましょう。 マークルツリーはマークルツリーとも呼ばれ、ハッシュアルゴリズムの重要な応用でもあります。 これは実際にはハッシュ ポインターを使用して構築されたバイナリ ツリーまたはマルチ ツリーです。 マークルツリーは次のように表示されます。 ツリーの最上部は、Merkle Root と呼ばれます。Merkle Root もハッシュ値です。どのように計算されるのでしょうか? ビットコインでは、トランザクションごとにハッシュ計算を行い、2つのトランザクションごとにハッシュをマージしてハッシュを作成します。たとえば、図のトランザクションAのハッシュ値はH(A)、トランザクションBのハッシュ値はH(B)です。この2つのトランザクションのハッシュをマージすると、H(hA|hb)になります。計算は上に向かって続けられ、最終的なルートがマークルルートです。 マークルツリー構造はビットコインとイーサリアムの両方で使用されていますが、イーサリアムにはより複雑な機能を実現するために 3 つのマークルツリーがあります。 ここまで、ブロックチェーンにおけるハッシュアルゴリズムの応用について紹介してきました。次に、非対称暗号化アルゴリズムについて見ていきましょう。 2. ブロックチェーンにおける非対称暗号化アルゴリズム ブロックチェーンの重要なポイントの1つはアカウントの問題ですが、ビットコインにはアカウントの概念がないので、人々はどうやってお金を送金するのでしょうか? ここではまずブロックチェーンの非対称暗号化技術を紹介する必要があります。 非対称暗号化技術には、RSA、ECC、ECDSA など多くの種類があります。ビットコインでは ECDSA アルゴリズムが使用されています。 ECDSA は米国政府の標準であり、楕円曲線を使用するアップグレード版です。このアルゴリズムは長年にわたる綿密な暗号解析を経ており、安全で信頼できると広く考えられています。 いわゆる非対称暗号化とは、データを暗号化および復号化するときに 2 つの異なるキーを使用する必要があることを意味します。たとえば、キー A を使用してデータを暗号化し、キー B を使用して復号化することができます。逆に、キー B を使用して暗号化し、キー A を使用して復号化することもできます。したがって、誰かにメッセージを送りたい場合、まず A で暗号化し、その暗号文をその人に送信します。相手が暗号文を受け取ったら、手元にある鍵 B を使用してそのメッセージを復号化できます。これら 2 つのキーのうち、1 つは公開キーと呼ばれ、もう 1 つは秘密キーと呼ばれます。 ビットコインでは、各ユーザーは鍵のペア(公開鍵と秘密鍵)を持ち、ユーザーの公開鍵はビットコイン システム内の取引アカウントとして使用されます。 次の図を見てみましょう。 図からわかるように、最初のトランザクション レコードでは、トランザクションを開始するのはユーザー U0 です。ユーザー U1 に支払われるトークンはどのようにして実現されるのでしょうか。
この例は、ビットコインのトランザクションの署名プロセスであり、ビットコイン トランザクションのデジタル署名用のハッシュ アルゴリズムと非対称アルゴリズムを組み合わせています。 さらに、ビットコインでは、公開鍵と秘密鍵、ビットコイン アドレスの生成も非対称暗号化アルゴリズムによって保証されています。 上記は、ブロックチェーンシステムのコア技術であるハッシュアルゴリズムと暗号化アルゴリズムの応用です。ぜひご連絡ください。 |
<<: Facebookはライブ動画でユーザーを見えなくする匿名化システムを開発した
>>: Hubo Technologyが「2019年グローバルフィンテックイノベーションTOP50」に選出されました
[[221188]]将来、人工知能が 380 万人以上の銀行員の仕事を全て置き換える日が来るのでし...
H100 が再び MLPerf の記録を更新しました!スーパーコンピューターのNVIDIA Eosは...
エヌビディアは木曜日、同社の高速コンピューティングプラットフォームを使用して、世界最速のAIスーパー...
急速に進化する今日のテクノロジー環境において、成功を目指す企業にとって、常に時代の先を行くことが重要...
2 台のプロトタイプ組み立てロボットが稼働しており、ボクセルと呼ばれる一連の小さなユニットを組み立...
GPU、TPU、CPU はすべてディープラーニング モデルのトレーニングに使用できますが、これらの各...
この記事は公開アカウント「Reading Core Technique」(ID: AI_Discov...
顔認識技術は継続的に発展しており、スマート監視システムの開発に貢献しています。これらのシステムにより...
最近、マスク氏がOpenAIを訴えたというニュースがテクノロジー界に再び波紋を巻き起こしている。 1...
自然言語処理 (NLP) により、コンピューターは人間の言語のニュアンスを理解できるようになります。...