メモ帳

ゲームをプレイした時、美味しい物を食べた時、面白い作品に触れた時に忘れないようメモしています。

ブロックチェーンを支える技術

f:id:ne_w:20170817145615j:plain

 

 

 

みんながチェックする台帳とは?


従来の中央集権型システムの場合、全ての取引を1台または数台の中央サーバーで処理するので、多量の取引を安定して扱えるようにするには多額のコストがかかりました。
さらに、ハッキングの恐れもあるため、強固なセキュリティ対策も欠かせません。

一方、ビットコインでは分散台帳システムが使われ、複数のコンピューターが同じ取引を処理します。
中央集権型の場合、サーバーがダウンするとサービス運用に致命的なダメージを与える事がありますが、分散台帳システムでは、一部のコンピュータがダウンしてもシステムに影響はありません。

参加している多数のコンピュータが全て同時にダウンしない限り、ネットワークシステムが止まる事は無いからです。

ビットコインのブロックチェーンはどのノードも同じ仕事を行い、データは全てコンピュータに共有されます。
すべての仕事は複数のコンピューターで行うため、中央集権型と比較すると構築と運用にかかるコストを低コストにすることが可能との意見もあります。

また、他のコンピュータにも同じデータが保存されているため、バックアップも不要です。

中央集権型システムでは中央サーバーが全取引を処理しているため、信用の元はそのサーバー(または運営会社)でした。
一方、分散台帳システムでは、複数のコンピュータによってシステムが維持されており、各コンピュータは分散かつ匿名化されているため、特定のコンピュータを信頼する必要がありません。

 

日本で一番簡単にビットコインが買える取引所 coincheck bitcoin

 

暗号技術を組み込んだシステム設計


ビットコインはデジタル署名された電子的コインです。
そして、デジタル署名はビットコインの取引において中核的な役割を果たしています。
そもそもデジタル署名とは、データ上で本人確認ができる公開暗号を利用したしくみです。

ビットコインの送金処理はこのデジタル署名を使って行われており、この署名によりビットコインの送金が秘密鍵の持ち主本人によってされたものであり、偽造や改ざんがされていない事を証明する事ができます。

デジタル署名の流れは3つです。
まずビットコインの送金には、送金者の秘密鍵と、送金先のビットコインアドレスが必要です。
送金者は、楕円曲線暗号(だえんきょくせんあんごう)という暗号を用いて、秘密鍵から公開鍵を作成します(あらかじめ公開鍵を作成しておくケースもあります)。
次に、『誰が誰に何BTCを送金した』という取引データを、秘密鍵を使って変換した『署名データ』を作ります。

最後に変換した情報と公開鍵をビットコインネットワーク上のコンピュータに公開します。
署名データは公開鍵を使って検証する事ができます。

身分証明書や実印を盗まれると悪用される可能性があるように、万が一秘密鍵が盗まれてしまった場合、本人として勝手に送金する事ができてしまいます。
そのため、ビットコインを取り扱ううえでは、このデジタル署名の性質上、秘密鍵は厳重に管理する必要があります。

 

 

鍵をつかって取引


上の章では、ビットコインはデジタル署名により、送金処理が行われると言う事w解説しました。
デジタル署名は、暗号技術を用いて処理を行います。
代表的な暗号技術の1つに、『共通鍵暗号方式』という方法があります。

これは共通鍵という1つの鍵を用いて2者の間で共有する方法です。
具体的には1つの鍵(共有鍵)である情報に鍵をかけます。
そして情報を相手に送り、受け取った相手がその鍵(共有鍵)でその情報の鍵を解除すという方法です。

しかし、この方法の場合共通鍵が第三者に盗まれてしまうと、この第三者が鍵をかけた情報を見る事ができてしまい、大変危険です。

そこで考えられたのが、公開鍵暗号方式と言う方法です。


これは公開鍵秘密鍵という2つの鍵を使用して情報のやり取りを行います。
そしてこの2つの鍵は1対1で対応しており、対のペアになっている鍵でのみ、鍵を開ける事ができます。

その後、受取人は公開鍵と対になっている秘密鍵を使って鍵を解除します。
公開鍵はその名の通り、公開されていますが秘密鍵は非公開であり、送金者しか知る事ができません。
この公開鍵暗号方式は、メールの送受信や銀行のネットバンキングなど実際に幅広く使われています。

ビットコインなどの多くの仮想通貨もこの公開鍵暗号方式を採用しています。