ブロックチェーンのコア技術「ハッシュと暗号化アルゴリズム」を公開

ブロックチェーンのコア技術「ハッシュと暗号化アルゴリズム」を公開

[[285099]]

ご存知のとおり、ブロックチェーンの主要な技術コンポーネントは、主に P2P ネットワーク プロトコル、コンセンサス メカニズム、暗号化技術、アカウントおよびストレージ モデルです。これらの技術の中で、暗号化とコンセンサスメカニズムが最も重要です。そこで今日は暗号化について詳しく説明し、暗号化技術がブロックチェーンにどのように適用されているかを見ていきます。

まず、ブロックチェーンでどのような暗号化アルゴリズムが使用されているかを知る必要があります。実際には、2 つの主要なカテゴリがあります。

  • ハッシュアルゴリズム
  • 非対称暗号化アルゴリズム

1. ブロックチェーンのハッシュアルゴリズム

ハッシュ アルゴリズムは、ブロックチェーンで最も一般的に使用されるアルゴリズムです。ブロックの構築やトランザクションの整合性の確認に広く使用されています。

これはハッシュ アルゴリズムとも呼ばれる数学関数アルゴリズムの一種であり、次の 3 つの基本特性を備えている必要があります。

  1. 入力は任意の長さの文字列です
  2. 固定サイズの出力を生成します
  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 つずつ接続され、以下に示すようにハッシュ ポインター リンク リストを形成します。

上記は単なる概略図です。では実際のビットコインシステムでは、各ブロックには何が含まれているのでしょうか?

上の写真の次の点に注目してください。

  • 前のブロック: ブロックのハッシュアドレスを記録します。32バイト
  • マークルルート:現在のブロック内のすべてのトランザクション情報を記録するデータ要約ハッシュ値、32バイト
  • ナンス: 特定の条件を満たすハッシュ値を見つけるために必要なランダムな値(マイニング)、4バイト

上記では、いくつかの重要なフィールドについてのみ説明しました。他のフィールドは、文字通りの意味から簡単に理解できるはずなので、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 に支払われるトークンはどのようにして実現されるのでしょうか。

  1. まず、ユーザーU0は取引情報を書き込みます: データ(プレーンテキスト、例: ユーザーU0がユーザーU1に100元を送金)
  2. ユーザー U0 はハッシュ アルゴリズムを使用してトランザクション情報を計算し、H = hash(data) を取得してから、自分の秘密鍵を使用して H、つまり S(H) に署名します。この手順は、実際にはトランザクション情報が改ざんされるのを防ぐためのものです。
  3. そして、ブロックチェーンネットワークに基づいて、署名S(H)と取引情報データがユーザーU1に渡される。
  4. ユーザーU1はユーザーU0の公開鍵を使用してS(H)を復号化し、取引情報のハッシュ値Hを取得します。
  5. 同時に、ユーザーU1もハッシュアルゴリズムを使用してトランザクション情報データを計算し、H2 = hash(data)を取得します。
  6. 上記の 2 つのハッシュ値を比較すると、H1==H2 の場合、トランザクションは合法です。これは、ユーザー U0 がトランザクションを開始するときに実際の秘密鍵を所有しており、自分のアカウントでトランザクションを開始する権利を持っていることを意味します。
  7. ネットワーク内のすべてのノードが上記の検証手順に参加できます。

この例は、ビットコインのトランザクションの署名プロセスであり、ビットコイン トランザクションのデジタル署名用のハッシュ アルゴリズムと非対称アルゴリズムを組み合わせています。

さらに、ビットコインでは、公開鍵と秘密鍵、ビットコイン アドレスの生成も非対称暗号化アルゴリズムによって保証されています。

上記は、ブロックチェーンシステムのコア技術であるハッシュアルゴリズムと暗号化アルゴリズムの応用です。ぜひご連絡ください。

<<:  Facebookはライブ動画でユーザーを見えなくする匿名化システムを開発した

>>:  Hubo Technologyが「2019年グローバルフィンテックイノベーションTOP50」に選出されました

ブログ    
ブログ    

推薦する

...

組織のセキュリティを保護するための暗号化トラフィック分析における機械学習の役割

脅威の攻撃者が戦術や手法を進化させ続けるにつれて(たとえば、暗号化されたトラフィック内に攻撃を隠すな...

...

人工知能は石油・ガス生産者の業務改善と温室効果ガス排出削減に貢献

[[437362]]石油・ガス生産者の操業実績を測る指標は数多くあり、効率性の向上、コストの削減、油...

小中学校の授業に人工知能教育が取り入れられました!

近年、人工知能分野の発展はますます加熱し続けており、現在の人材不足が注目を集めています。国務院が20...

Keras 対 PyTorch: どちらが「ナンバーワン」のディープラーニング フレームワークでしょうか?

「最初のディープラーニングフレームワークをどのように選択するか」は、初心者にとって常に頭痛の種でし...

テンセントクラウドがAIペイント製品をリリース、25以上の生成スタイルをサポート

9月10日、テンセントクラウドは9月7日に開催された2023テンセントグローバルデジタルエコシステム...

機械学習の教科書に出てくる7つの典型的な問題

[[201516]]機械学習について学びたい、または機械学習に専念することを決心した場合、すぐにさま...

インテリジェント PDU について...

専門的な配電設備として、PDU は基本型とインテリジェント型の 2 つのタイプに分けられます。インテ...

マスク氏の AI ツール Grok は ChatGPT のシェルですか?

イーロン・マスク氏の人工知能企業xAIは最近、GroKと呼ばれる人工知能チャットボットをリリースした...

オックスフォード大学とケンブリッジ大学は「顔面を叩き」、ChatGPTの使用を許可し、段階的にチュートリアルも教えた。

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

人工知能はどのような通信分野に応用されていますか?

1. 異常なネットワークトラフィックの検出コンピュータネットワークは現代人の生活に欠かせないもので...

パナソニック、AI企業ブルーヨンダーを60億ドル超で買収へ

海外メディアの報道によると、パナソニックは今年3月にアメリカのAIソフト開発会社ブルーヨンダーを70...

専門家:歩行者の安全問題を解決するために都市は自動運転だけに頼ることはできない

自動運転技術が業界全体で開発のマイルストーンに到達し続ける一方で、都市は自動運転車(AV)の目標を補...

自動運転技術が盛んに進歩していますが、実際に道路上で実用化されるまでにはどれくらい時間がかかるのでしょうか?

自動運転の概念は、誕生以来、常に資本家や技術起業家が好む分野のひとつでした。新しいインフラと5G商用...