デジタル署名とハッシュ

デジタル署名と暗号化ハッシュ関数は、暗号通貨を機能させる秘密のソースを構成します。彼らは、いわば暗号通貨を通貨に入れました。デジタル署名は、トランザクションで記述された資産の所有権を主張する秘密鍵を持っていることを証明します。ハッシュ関数はトランザクションを定義して保護します.

暗号化—秘密を知りたいですか?

デジタル署名とハッシュ関数は暗号化に存在しますが、暗号化とは何ですか?暗号化は、コミュニケーター間のプライバシーを維持するためにメッセージをエンコードおよびデコードする技術と科学を定義します.

暗号化のサラダの日

さまざまな形式の暗号化が、何年にもわたってさまざまな時期に主流になっています。ジュリアスシーザーの時代には、アルファベットを回転させるだけで十分でした。したがって、暗号学者はこれを「シーザー暗号」と呼びます。暗号化されたメッセージは、「cat」という単語の代わりに、すべての文字を1ステップ左に回転させるだけなので、「cat」は「dbu」に変換されます。映画の中で 2001年:宇宙の旅, 同じように「HAL」の文字を回転させると、何が得られますか?

時間が経つにつれて、暗号解読者が与えられた各システムを解決するにつれて、暗号解読のシステムは壊れます.

公開鍵暗号

デジタル署名画像

現在、公開鍵/秘密鍵暗号化または単に公開鍵暗号化とも呼ばれる非対称暗号化が普及しています。公開鍵と秘密鍵は単なる数字です.

非対称という用語は、対称暗号化とは区別されます。対称暗号化では、同じキーがメッセージの暗号化と復号化の両方を行います。したがって、キーは非表示のままにする必要があります。これにより、キー配布の問題が発生します—キーを受信者と暗号化されたメッセージに安全に送信する方法?

公開鍵暗号化は、誰でもメッセージの暗号化に使用できる公開鍵を公開することでこの問題を解決し、ユーザーはメッセージの復号化に使用するために自分自身の秘密鍵を保持します。これは、一方向の数学関数の魔法を通して機能します。一方向性関数は単純かつ簡単に計算しますが、リバースエンジニアリングには抵抗します.

公開鍵暗号の例

非常に簡単な例で説明する, 2つの素数を掛けます:prime1 * prime2 =結果. 数が十分に大きい場合、誰でも結果を見ることができますが、その結果に到達するために使用された2つの素数を決定することは非常に困難です。結果は公開鍵を表し、prime1とprime2は秘密鍵を表します.

非対称暗号化は、ハッカーがそれに対して十分な計算能力を使用すると壊れます。ただし、ハッカーは、妥当な時間枠内でこれを達成するためにスーパーコンピューターを必要とします。量子コンピューターが標準になると、暗号化を進化させる必要があります.

デジタル署名

秘密鍵によって作成されたデジタル署名は秘密鍵を表し、それによってユーザーが特定のトランザクションでサインオフしたことを示します.

デジタル署名は、暗号化されたメッセージのバリエーションのようなものと考えることができます。公開鍵暗号が暗号化されたメッセージを作成するのと同じように、秘密鍵もデジタル署名を作成します。公開鍵を使用すると、デジタル署名が秘密鍵によって作成されたことをすばやく確認できます。これをジグソーパズルのようなものと考えてください。パズルを完成させるのは非常に難しいかもしれませんが、正しく完成すると一目で確認できます.

ハッシュハウスでのごちそう

暗号化ハッシュは、任意のサイズのデータ​​を、ハッシュ値または単にハッシュと呼ばれる固定サイズのビット文字列にマップする数学関数から生成されます。指定された入力データは常に同じハッシュになります。したがって、メッセージがそれに関連付けられたハッシュ値と一致しない場合は、メッセージが改ざんされていることがわかります。 2つの異なるメッセージが同じハッシュ値を作成することはありません。もしそうなら、これは衝突を構成し、その値を作成したハッシュ関数は致命的な欠陥があります.

ハッシュの簡単な例

説明のために、入力データとして単純な文字列「ABCDE」をハッシュしたいとします。.

簡単なハッシュアルゴリズムを作成しましょう。まず、文字を数字に変換します:A = 1、B = 2、C = 3、D = 4、E = 5。結果のハッシュ値は1桁である必要があります。基本的な方法では、すべての桁を単純に加算します:1 + 2 + 3 + 4 + 5 = 15。これにより2桁の数値が生成されるため、アルゴリズムは再帰的にこの数値の各桁を加算し続けます:1 + 5 = 6。 6はハッシュ値で、6はハッシュとして「ABCDE」を表します.

ハッシュとして6で表されるメッセージとして「ABCDE」を受信した場合、そのメッセージが正しいと信じています。しかし、6のハッシュで表されるメッセージ「ABCXE」を受信した場合、明らかにメッセージの改ざんが原因で、不一致が存在します。.

もちろん、私たちの単純なハッシュアルゴリズムは多くのレベルで失敗します。 1つは、文字列「EDCBA」またはその任意の組み合わせにより、「ABCDE」と同じハッシュが作成され、それによって衝突が発生します。複雑な数学はこれらの問題を克服します。暗号通貨で現在最も使用されているハッシュアルゴリズムは、SHA-256という名前で呼ばれています(頭字語はSecure Hash Algorithmの略です)。 SHA-256アルゴリズムでは、ハッシュ値の固定サイズは256ビットになります.

暗号通貨でのデジタル署名とハッシュ

さて、暗号通貨で実際にデジタル署名とハッシュをどのように使用するのですか??

ビットコインのトランザクションを見て、テクノロジーが実際に動作していることを確認しましょう.

ビットコイントランザクションは、1)入力セクションと2)出力セクションの2つの部分に分かれています。.

入力セクションには、送信者の公開鍵、送信者がトランザクションをカバーするのに十分なビットコインを所有していることを示す情報、およびその他の有用な情報が含まれています。送信者の秘密鍵は、このトランザクションに署名するためのデジタル署名を作成します。このデジタル署名は、トランザクションの入力セクションに入ります.

出力セクションには、受信者のウォレットアドレスと、複数の出力があるためのインデックスが含まれます(さまざまな出力が受信者、送信者、およびマイナーに送信されます).

ハッシュは、トランザクションの整合性を保護するために機能します。支払人、受取人、支払額などのデータは、悪意のある攻撃者がこの情報を変更するのを防ぐためにハッシュを必要とします。暗号化キーとこれらの入力パラメーターを組み合わせてハッシュ関数をフィードすると、トランザクションIDが作成されます。送信者が実際に支払いを行う権限を持っており、トランザクションの詳細が正しく、改ざんされていないことが暗号化された確実性でわかりました。.

バターミルクのハエ

ビットコイン取引に関する既知の問題は、 トランザクションの順応性.

ビットコインがトランザクションのさまざまなフィールドをハッシュするため、トランザクションの順応性が発生します。トランザクションの処理中に、これらのフィールドの一部は、一見わずかで取るに足らない方法で変更される可能性があります。ただし、変更されるため、ハッシュ値が変更され、トランザクションIDが変更されます。.

これを視覚化するために、整数123を含むフィールドについて考えますが、処理中に、システムはこれを拡張して0123になります。両方とも同じ数を構成し、それらを見ると同じであることがわかりますが、ハッシュ関数はそれらを次のように認識します。異なる後、それぞれに異なるハッシュ値を作成します。この癖は、悪役がシステムをゲームする機会を提供します.

SegWit to the Rescue

Segregated Witness(SegWit)テクノロジーがこの問題を修正しました。 SegWitは、ブロック(分離)とは別の構造を作成します。この個別の構造には、トランザクションの有効性を判断するために必要な情報(トランザクションの有効性を確認する)が含まれていますが、トランザクションデータ自体は含まれていません。このようにトランザクションデータを分離することで、順応性の可能性が排除されました.

結論

暗号化は、テクノロジーが進化するにつれて進化します。将来のコンピューターは確かに今日の暗号化を破るでしょう。しかし、私たちが住んでいる現在の世界では、デジタル署名と暗号化ハッシュは、トランザクションのセキュリティと整合性を確保するための十分な保護手段を提供します.