見出し画像

ホントにわかるブロックチェーン3 ブロックチェーン取引を守る技術

ブロックチェーンはデータを参照する仕組みで履歴の改変をすることがほぼ不可能な、レジリエンスな構造ででき上がっています。そのため、情報がオープンに公開されているP2Pネットワークの中でも安全にやり取りすることができるのです。

このようにブロック構造で悪質なデータ改ざんを防ぐ以外に、トランザクション(取引)データそのものを保護する機能も備わっています。

今回は、ブロックチェーン取引のセキュリティをさらに高めている暗号化技術についてお話ししていきます。

前回までの記事 ▷
ホントにわかるブロックチェーン1  ブロックチェーンとは?
ホントにわかるブロックチェーン2  ブロックチェーンって本当に安全?

トランザクションデータを保護する、暗号化技術

個々のトランザクションデータを保護する技術として暗号化があります。送金など資産を移転する際に必要なことは、所有権の所有者を特定し、その人だけが資産(所有者情報)にアクセスできるよう制限することです。しかし、P2Pネットワークは全ての人に開放されているため、誰でもアクセスが可能です。そこで、資産を守るためにはトランザクションを暗号化して送る必要があります

「暗号化」とはデータを保護するための“デジタル世界で使用できる鍵”のイメージです。デジタル世界での鍵というのは、一般の人からは何が書かれているのか特定できない暗号文を作成します。暗号化されたデータを解除することを「復号」と言い、暗号化と復号の組み合わせを使い分けることによってデータにアクセスできるユーザーに制限をかけることができるのです。

暗号化には2種類あります。暗号化・復号のどちらにも同じ鍵が使われる「対称鍵暗号(共通鍵暗号)」と、二つの対になる鍵が使われる「非対称鍵暗号(公開鍵暗号)」です。ブロックチェーンには後者の非対称鍵暗号が用いられています。

二つの鍵はそれぞれ「公開鍵」と「秘密鍵」と名付けられており、常にペアになっています。技術的にはどちらの鍵でも暗号文を作成することができますが、暗号文を復号するには、必ずもう一つの鍵を使わないといけないという工夫がされています。

公開鍵はユーザーのアカウントIDです。そのため、誰でも知ることができます。一方、秘密鍵は自分だけしか持つことができないものなので、プライバシーが守られています。どちらの鍵も暗号化・復号のいずれにも使えますが、開けられるのは対になった鍵だけというのがポイントです。

トランザクション移譲の承諾書、デジタル署名

ブロックチェーンでは、「公開鍵」と「秘密鍵」による暗号化はデータの保護だけでなくトランザクションを送受信する際の本人確認や承諾書としても機能しています。それらが問題なく承認されるとトランザクションが受理され、所有権が移転されます。

その「本人確認」と「承諾書」が、資産の所有者である送り主がその内容に合意したことを示す「トランザクションの承認」にあたります。これは、「秘密鍵から公開鍵」の解除方式で行われます。送り主は自分の公開鍵と対になる秘密鍵を使ってトランザクションの内容をもとに暗号文をつくります。この暗号文が「デジタル署名」と呼ばれるものです。

デジタル署名は筆跡から本人であることを特定する直筆の署名のように、署名を作成した人が本人であることと、署名した内容に承諾していることを表します。そのためトランザクションには必ずデジタル署名が含まれ、送り主(資産の所有者)本人であることと、送信内容の履行に合意していることを表す承諾書の二つの役割を果たします。

本人のみが秘密鍵を所有し、公開鍵をアカウントIDとして公開する仕組みのネットワークで、ユーザーAからユーザーBに「De Beyond」というメッセージを送る例で見ていきましょう。

まず、送付情報「De Beyond」からハッシュ値を作成します。さらにそのハッシュ値を秘密鍵で暗号化し、デジタル署名を作成します。このデジタル署名と送付情報「De Beyond」を一つのトランザクションとしてユーザーBに送ります。

トランザクションが送られると受け手であるユーザーBはまず送付情報「De Beyond」のハッシュ値を計算します。その後、送り主であるユーザーAの公開鍵でデジタル署名を復号します。

公開鍵はユーザーAのアカウントIDなので、復号できた時点で送り主・ユーザーAが内容を承諾したうえで暗号化して作成したトランザクションであることが分かります。また、Aから送られてきたトランザクションをハッシュ計算した値と、復号したデジタル署名に入っているハッシュ値とが合致すれば、送られた過程でデータが改変されていない、ユーザーAが合意した内容であることの証明になります。

つまり、デジタル署名は送り主(元々の資産の所有者)が暗号文の内容に同意し、署名した証となるわけです(ただし、これらは承認の過程としてシステムに自動で組み込まれているため、実際の送受信でユーザーがこのプロセスを意識することはありません)。

万が一、送付情報のハッシュ値と、復号したハッシュ値が異なる場合は送信の途中で改変されるなど偽造されている可能性が高いため、トランザクションは無効になります。

アカウントの識別とトランザクションの送信

デジタル署名を作成し、トランザクションの内容が確定したら受け手に送信します。上の図で言うと、③のトランザクションを作成して④受け手に渡るまでの工程にあたります。

この過程では「公開鍵から秘密鍵」の解除方式が使われ、お互いのアドレスが正しいかどうかのアカウントの識別と、トランザクションを受け渡すことの承認=送信が行われます。引き続き、ユーザーAからユーザーBへトランザクションを送信する例で見ていきましょう。

まず、送り先が正しいかどうかを検証するためにユーザーAがユーザーBのアカウントIDである公開鍵を使用してトランザクションデータを暗号化します。その後、ユーザーAからユーザーBにトランザクションを送ります。

その際、暗号化されたトランザクションを復号できるのはユーザーBのアカウントIDの公開鍵と対になっている秘密鍵のみであるため、開封できた段階でユーザーBのアカウントで、正しい送り先であることが分かり、送信が完了します。

このようにブロックチェーンはオープンなネットワークでも安全に機密情報を送り合えるよう、データの改ざん防止と保護のためにさまざまな技術が使われています。

これらの技術は、伝統的に使われてきたものが多いですが、それらを組み合わせることで、簡単には破られない頑丈なシステム構造が実現されました。この発明が、ブロックチェーンが次世代のネットワークの基盤として注目される所以なのです。


Recommend ▶ デジタル通貨実現に向けたこだわりとは?

対談及び取材希望などございましたらdebeyond_info@decurret-dcp.comまでお気軽にご連絡ください✉️