叡智の三猿

〜森羅万象を情報セキュリティで捉える

当サイトは、アフィリエイト広告を使用しています。

データの送受信とデジタル署名

ビットフライヤーの取引サイトを開くと目に飛び込んでくるのが、販売所と取引所という項目です。ビットコインをはじめたとき、このふたつがあまりに似た語彙なので、ちょっと混乱しました。

販売所は事業者から直接、ビットコインの売買をします。一方、取引所はビットコインを売りたい人と買いたい人を仲介する事業者です。

販売所と取引所

販売所だと即座に確実にビットコインの売買ができるのがメリットです。はじめは販売所を使うことで取引に慣れるのがいいと思います。ただ、販売所はビットコインを買う際の価格が高く、売る時の価格は安いので、仮想通貨で儲ける目的にはそぐわないと思います。仮想通貨をしている方のほとんどは、儲けることが目的だと思うので、ビットコインの売買で販売所を使うのは限定的だと思います。

取引所は指値注文です。如何にも売買している感覚をもつのでやってみると面白いです。相手との取引が成立すると、こんな画面がでます。

取引成立の画面

ビットコインで相手との取引の際に使用されるのがビットコインアドレスです。このアドレスは長めの英数字が羅列したコードです。ビットコインアドレスは、銀行における口座番号のようなものです。

ビットコインアドレスは「公開鍵」をハッシュ変換した番号です。

「公開鍵」は「秘密鍵」という対になる関係です(鍵ペアと呼びます)。「公開鍵」と「秘密鍵」を用いて安全にデータのやり取りを行うことを「公開鍵暗号方式」と呼びます。わたしたちがリアルなお金のやり取りをする際、口座番号を相手に教えたりするのはなんの問題もありません。情報セキュリティにおいて「公開鍵」は相手に知られても安全とされます。一方、「秘密鍵」は、銀行カードの暗証番号のようなもので他人に知られてはいけません。

鍵ペアとビットコインアドレス

相手に送金する場合は、ビットコインアドレスを用いて、送金データを作成します。送金データからハッシュ値を計算し、送信者が「秘密鍵」を使ってデジタル署名をします。そして「公開鍵」を含めて、送金のトランザクションデータをおこし、P2Pネットワークに送信します。

P2Pネットワークは、中央サーバーを用意せず個々の端末(Peer)が互いに信頼し合うことで成立するネットワークです。ビットコインは P2P 方式でデータを交換しています。ちなみに「LINE」も、P2P技術が使われています。LINEで写真や動画を共有したことがあると思いますが、このデータを共有する仕組みはP2P技術を利用したものです。

さて、受信者はトランザクションデータのハッシュ化とデジタル署名を送信者から送られた「公開鍵」を使って、復号します。ここでふたつのハッシュ値が一致していれば、送金データは完全性があるとみなします。

送金データの完全性の確認

完全性とはデータを最新かつ正しい状態で維持することです。 完全性は、情報セキュリティの3大要素「CIA(機密性:Confidentiality、完全性:Integrity、可用性:Availability)」の要素の1つです。完全性を細分化して書くとデータに下記の状態が維持されていることです。

  • 情報に間違いがないこと
  • 情報が最新のものであること
  • 情報に欠けていることがないこと

データの改ざんは完全性を損ねる大きな要因となるセキュリティインシデントです。

「公開鍵暗号方式」は、安全なデータの受け渡しを保証する情報セキュリティ対策です。この対策は「秘密鍵」が、外部に漏れていないことが前提です。