ビットコインの台帳は全員が使えて、全員がチェックできる
全取引を数台の中央サーバーまたは1台のみで管理、処理する中央集権型システムでは、安定して多くの取引を処理するにはコストがかさみます。また、ハッキングなどの問題もあり、セキュリティも強固にする必要もあります。
かたや、分散台帳システムが使われているビットコインでは、複数台のノード(コンピューター)が同じ取引を処理します。
そして、分散台帳システム技術は、システムが止まりません。
中央集権型システムでは、サーバーや予備サーバがシステムダウンしますと、運営に決定的なダメージを受けることがあります。
ビットコインの分散台帳システムは、コンピュータが一部ダウンしても、取引においてなんら影響はありません。
参加している多くのコンピュータが、全部同時にシステムダウンしないかぎり、ネットワークのシステムが止まることもありません。
今までシステムダウンはゼロです。
ビットコインのブロックチェーンは、どのコンピューターも同じ作業を行い、それらのコンピュータがデータを共有します。
全作業は複数のコンピュータで実行されますので、分散台帳システムは、中央集権型システムと比較すると、運用にかかるコストと構築は、低コストで行うことができます。バックアップも他のコンピュータに、同じデータが格納されていますので不要となります。
中央集権型システムの信用は、全取引を行っている会社および中央サーバーでしたが、分散台帳システムの場合、多くのコンピュータがシステムの維持をしており、さらに、それらのコンピュータは分散され匿名化されていますので、特定ユーザーを信頼する必要がないのです。
分散台帳システムは変更できる?
ビットコインの取引におき、デジタル署名は中核的な役割を担っています。
デジタル署名は、間違いなくコイン保有者の送金、であることを証明するものです。データ上で本人確認を可能にする公開鍵暗号を、利用したしくみがデジタル署名です。
デジタル署名は、ビットコインを受取ったり送ったりするのに使われています。秘密鍵の持ち主本人が、改ざんや偽装が行われていないビットコインを、送受信したことを証明します。
3つの流れのデジタル署名についてあげておきます。
1つ目は、
送金先のビットコインアドレスと、送金者の秘密鍵が、ビットコインの送金には必要です。楕円曲線暗号という暗号を使用して、送金者は秘密鍵から公開鍵を作るか、あらかじめ公開鍵を作っておきます。
2つ目は、
どのくらいのビットコインを誰が誰に送金したといった、取引のデータを、秘密鍵を使用してやりとりした署名デーを作成ます。
3つ目は、
ビットコインネットワーク上のマイナー(コンピューター)に、変換した公開鍵と情報を公開します。署名データの証明は公開鍵を使用します。マイナーが検証を終えて、不正行為のない正当な取引の送金であったことを証明します。
たとえば、秘密鍵が流出してしまった場合、実印や身分証明書などが悪用されるのと同じように、盗んだ人に使用されてしまうこともあります。
ビットコインを取り扱う上では、このような場合を想定し、デジタル署名としての秘密鍵は、厳重に管理しなければなりません。
ビットコインは公開鍵暗号方式が採用されています
本人だけが使えるカギとを使用して取引をします。
暗号技術を用いたデジタル署名技術で、ビットコインの処理は行われています。
共通鍵暗号方式といった、暗号技術があります。これは2者の間で、1つの共通鍵を使用して、共有する技術です。
共有鍵の情報にカギをかけます。相手に情報を送って、受信した相手がその共有鍵で、中身の情報のカギを解錠する方法です。これを復号といいます。
問題は、第三者に共通鍵が盗まれますと、盗んだ人がカギをかけた情報を確認することができてうことです。
そこで公開鍵暗号方式が考案されました。
これは2つの秘密鍵と公開鍵を使って情報のやりとりを行います。このカギが対応しているのは1対1です。したがって、ペアのカギのみで、情報カギを解錠することができます。
具体的には、情報に公開鍵でカギをかけて、相手に送ります。受取った人は、公開鍵に対応している秘密鍵で復号(解錠)します。
当然ながら、その名の通り公開鍵は公開されていますが、非公開である秘密鍵は送金した人しか知りません。
公開鍵暗号方式は、実際に銀行のネットバンキングや、メールの送受信などに使用されています。
この公開鍵暗号方式は、多くの仮想通貨にも採用されています。
取引データは特殊な処理が施され、書き換えができないようになっています
ビットコインはブロック1つに、約10分間分の取引データが含まれています。ブロックチェーン技術を利用されているビットコインでは、ブロックという固まりに取引データを含めています。
ナンスを間違えますと、ハッシュ値も変化してしまいます。
ん? これはどういう意味でしょう?
ブロックチェーンはチェーン状に、過去から現在までブロックでつながっています。この中には、取引データ以外に、1個前のブロック情報が入った、ナンスとハッシュ値といものが組み込まれています。
ナンス(Number used once – Nonce)とは、1回のみ使われる数字のことです。次の新しいブロックを作るためだけに使われる値です。これは使い捨てです。
ハッシュ値とは、特殊な計算式により求められた値です。データから暗号学的ハッシュ関数と呼ばれます。
元データから同じハッシュ値が得られます。データが違っていますと、別の異なるハッシュ値となります。ハッシュ値には規則性がありません。
新しいブロックが生成する権利は、ハッシュ値がある条件となったときに与えられます。
それは、ナンスの3つやタイムスタンプ、新しいブロック内にある取引データ、バージョン情報、前のブロックが作ったハッシュ値などを、暗号学的ハッシュ関数に放り込んで、2進数を計算します。
ナンス値をひたすら変化させながら、単純に総当たりをして、計算し続けるという方法で求めることができます。