仮想通貨のためのデジタル署名
仮想通貨に利用される重要な技術として、デジタル署名がある。デジタル署名によって受取人はトランザクションが送金者によって作成されたことを検証できるようになり、他人がなりすまして送金することを防ぐことができる。ここではRSA暗号を使ったデジタル署名の例を説明する。 まず、送金者は秘密鍵と公開鍵を生成する。2つの素数p=7, q=5をランダムに選ぶ。(p-1) * (q-1) = 24 の約数ではない任意の自然数 e=5 を選ぶ。ed % ((p-1)*(q-1)) = 1 を満たす任意の自然数 d=5 を選ぶ。e=5 と n = 7 * 5 = 35 を公開鍵として公開する。d=5, p=7, q=5 は秘密鍵として秘密にする。次に、送金者はトランザクションのハッシュ値を秘密鍵を使って署名する。暗号化したいハッシュ値を17とする。秘密鍵 d=5 と 公開鍵 n=35 を使って、17^5 % 35 = 12を暗号化したハッシュ値とする。暗号化したハッシュ値を署名としてトランザクションに付け加える。最後に、受取人はトランザクションとその署名を受け取り、検証する。復号化したい署名を12とす...
仮想通貨のためのデジタル署名
仮想通貨に利用される重要な技術として、デジタル署名がある。デジタル署名によって受取人はトランザクションが送金者によって作成されたことを検証できるようになり、他人がなりすまして送金することを防ぐことができる。ここではRSA暗号を使ったデジタル署名の例を説明する。 まず、送金者は秘密鍵と公開鍵を生成する。2つの素数p=7, q=5をランダムに選ぶ。(p-1) * (q-1) = 24 の約数ではない任意の自然数 e=5 を選ぶ。ed % ((p-1)*(q-1)) = 1 を満たす任意の自然数 d=5 を選ぶ。e=5 と n = 7 * 5 = 35 を公開鍵として公開する。d=5, p=7, q=5 は秘密鍵として秘密にする。次に、送金者はトランザクションのハッシュ値を秘密鍵を使って署名する。暗号化したいハッシュ値を17とする。秘密鍵 d=5 と 公開鍵 n=35 を使って、17^5 % 35 = 12を暗号化したハッシュ値とする。暗号化したハッシュ値を署名としてトランザクションに付け加える。最後に、受取人はトランザクションとその署名を受け取り、検証する。復号化したい署名を12とす...
ビットコインのホワイトペーパー解説
相互に接続された匿名のコンピュータ群(P2Pネットワーク)によって新しい通貨を発行することを考える。そのようなシステムは政府やハッカーによる攻撃を受けやすいため、攻撃対象となりうる中央サーバーや本人確認機関を必要としてはならない。 通貨としての機能を果たすためには、参加者は保有残高を確認できるだけでなく、自由に送金できる必要がある。この目的のために、参加者の残高を明示的に管理するのではなく、送金の履歴(ブロックチェーン)を全て保存することを考える。 こうすることで、送金履歴をさかのぼって送金量と受取量を合計することで、各時点における残高を再現することができる。 参加者はそれぞれ秘密鍵と公開鍵を持ち、送金者はまず受取人の公開鍵と送金量を決めて取引(トランザクション)を生成する。 次に送金者は秘密鍵でそのトランザクションに電子署名を加え、ブロックチェーンにそのトランザクションを追加する。受取人は電子署名を送り主の公開鍵で検証することで、そのトランザクションが送り主によって生成されたことを確認できる。 問題は、送金者の残高が送金後もゼロ以上であることを確認できないため、残高以上の送金を...
ビットコインのホワイトペーパー解説
相互に接続された匿名のコンピュータ群(P2Pネットワーク)によって新しい通貨を発行することを考える。そのようなシステムは政府やハッカーによる攻撃を受けやすいため、攻撃対象となりうる中央サーバーや本人確認機関を必要としてはならない。 通貨としての機能を果たすためには、参加者は保有残高を確認できるだけでなく、自由に送金できる必要がある。この目的のために、参加者の残高を明示的に管理するのではなく、送金の履歴(ブロックチェーン)を全て保存することを考える。 こうすることで、送金履歴をさかのぼって送金量と受取量を合計することで、各時点における残高を再現することができる。 参加者はそれぞれ秘密鍵と公開鍵を持ち、送金者はまず受取人の公開鍵と送金量を決めて取引(トランザクション)を生成する。 次に送金者は秘密鍵でそのトランザクションに電子署名を加え、ブロックチェーンにそのトランザクションを追加する。受取人は電子署名を送り主の公開鍵で検証することで、そのトランザクションが送り主によって生成されたことを確認できる。 問題は、送金者の残高が送金後もゼロ以上であることを確認できないため、残高以上の送金を...