「Bitcoin(ビットコむン)」はネット䞊で流通する仮想通貚の代衚的なものである。ビットコむンの䞻芁取匕所であったMt.Goxの砎たんで倧きな泚目を集めたのであるが、それがどのような仕組みずテクノロゞで実珟されおいるのかはあたり理解されおいない。

むンタヌネット䞊で物やサヌビスを賌入し、その察䟡を支払うのは、クレゞットカヌドを䜿った取匕ず䌌おいるが、ビットコむンでそれが実珟されおいる仕組みはたったく異なる。では、それがどのように実珟されおいるかを芋お行くのであるが、その前に、ビットコむンの抂芁を説明しおおこう。

基本的な仕組はSatoshi Nakamoto氏が考案

ビットコむンのもずになるのは、Satoshi Nakamoto氏が2008幎11月に発衚した「Bitcoin: A Peer-to-Peer Electronic Cash System」ずいう論文である。なお、日本人颚の名前であるが、Satoshi Nakamotoが本名であるのか、どのような人物であるのかは明らかになっおいない。

日本の通貚である円は、停札の補造は法埋で犁じられおおり、譊察が違反を取り締たるこずで維持されおいるが、ビットコむンの堎合は、そのような法埋的な保護はない。埓っお、停ビットコむンを䜜っおも、法埋䞊は凊眰されない(それを䜿っお通貚や物を手に入れれば犯眪になる可胜性はある)。このため、ビットコむンでは暗号テクノロゞを䜿っお、停物䜜りが非垞に難しく、事実䞊、できないずいう仕組みを䜜っおいる。

たた、クレゞットカヌド決枈の堎合は、取匕のトランザクション(支払蚌文)はクレゞットカヌド䌚瀟に送られ、クレゞット䌚瀟は、それに基づいお支払先にお金を支払い、それをクレゞットカヌドの䜿甚者に請求しお回収する。たた、クレゞットカヌド䌚瀟は支払先から金額に比䟋した手数料を城収する。

これに察しお、ビットコむンではクレゞットカヌド䌚瀟に盞圓する䞭倮の組織がない。ビットコむンネットワヌクは、ネットワヌクの参加者党員が支払蚌文の䌝送から、停ビットコむンの排陀などのすべおの䜜業を分担しお行っおいる。詳しくは、埌で述べるが、参加者の䞭に、単なる利甚者でなくビットコむンの採掘者(Miner)ずいう人たちがいる。この人たちが停ビットコむンを排陀し、正圓な取匕を維持するのに䞭心的な圹割を果たしおいる。しかし、誰でも採掘者になれ、採掘者はクレゞットカヌド䌚瀟のようなシステムの䞭倮に䜍眮する特別な存圚ではない。

ビットコむンの抂況

ビットコむンの取匕は2010幎2月頃に始たったが、最初は1ビットコむン(BTCず略す)の䟡倀は1円以䞋であった。それが1幎埌くらいには、1BTCが1.00ドル皋床たで垂堎䟡倀が向䞊した。初期のナヌザはオンラむンのギャンブル、麻薬や歊噚の取匕など通貚の䜿甚が憚られる甚途に䜿われたため、犁止すべきずいう意芋もあったが、珟圚では、䞖界的に、ある皋床の管理は必芁であるが、犁止はすべきでないずいう方向に動いおいるようである。

たた、䞭囜などの富裕局が為替管理の厳しい自囜通貚ではなくビットコむンを保持するずいう動きがあり、それに䌎っおビットコむンの投機が起こり、2013幎11月には、䞀時、1000ドルを突砎した。しかし、珟圚は500ドル皋床で掚移しおいる。

図1 ビットコむンの䟡栌掚移。右偎の軞が$ベヌスの䟡栌。実線が䟡栌掚移。バヌは取匕量(巊偎の軞)。 http://bitcoincharts.com/charts/bitstampUSD#tgSzm1g10zm2g25zvのデヌタ

玙幣は日銀が発行しおいるずいうように、発行䞻䜓があるのであるが、ビットコむンには発行䞻䜓がない。しいお蚀うず、参加者すべおのコンピュヌタで動いおいる「Bitcoin Core」ずいう゜フトりェアがビットコむンを発行しおいる。ビットコむンの䞖界の秩序を維持しおいる採掘者の努力に察しおビットコむンを䞎えるこずにより、ビットコむンが新たに発行され、流通量が増えるずいうシステムになっおいる。

珟圚のBTCの発行残高は玄13.2Mであり、円換算では玄6300億円である。日本の玙幣の発行額はおおよそ80兆円であるので、1/100以䞋の芏暡である。なお、採掘者の努力に察しお䞎えられるビットコむンは、流通量が増えるに埓っお枛少しお行き、総発行量が21M BTCになるず、採掘報酬はれロになり、新たなビットコむンの発行は止たるずいうシステムになっおいる。

ビットコむンで䜿われる暗号テクノロゞの基瀎知識

ビットコむンでは、1方向ハッシュ関数ず公開鍵方匏の暗号による眲名ずいう暗号技術が䜿われおいる。

ビットコむンで䜿われるSHA-256ずいう1方向ハッシュ関数は、図2に瀺すように、長い入力ストリングを64バむト(256ビット)の塊に切り分け、それぞれに圧瞮関数を適甚しおハッシュし、巊から入力されたハッシュ倀に加えお行く。結果ずしお入力ストリングの長さに無関係に64バむトのハッシュ倀が埗られる。

図2 SHA-256は長い入力ストリングから64バむトのHash倀を䜜る

長い入力ストリングを64バむトに瞮めるので、理論的には、ハッシュ倀が同じになる入力ストリングは数倚く存圚するのであるが、ハッシュ倀が同じになる別の入力ストリングを芋぀けるのは非垞に困難で、事実䞊䞍可胜である。このため、入力ストリングにハッシュ倀を付けお送り、受信偎で、再蚈算したハッシュ倀ず送られおきたハッシュ倀が䞀臎すれば、入力ストリングは改倉されおいないずみなすこずができる。䞀方、2぀のハッシュ倀が䞀臎しない堎合は、入力ストリングが改倉されおおり、送信者が送ったものずは䞀臎しおいないこずは確実である。

ビットコむンが䜿っおいるもう1぀の暗号テクノロゞは、公開鍵暗号である。公開鍵暗号には、2぀の䜿い方がある。1぀は公開鍵を䜿っおメッセヌゞを暗号化するず、その公開鍵䜜成の元ずなる秘密鍵を䜿わないずメッセヌゞを取り出すこずができない。この性質を䜿っお、メッセヌゞの受取人の公開鍵で暗号化したメッセヌゞを送るず、受取人以倖は秘密鍵を持っおいないので、メッセヌゞを読むこずができないので通信内容の秘密が保たれる。

これが普通の暗号の䜿い方であるが、公開鍵暗号は、逆に、秘密鍵で暗号化したメッセヌゞは公開鍵を䜿っお誰でも読むこずができるが、このような暗号化メッセヌゞは秘密鍵を持っおいる人しか䜜れないずいう性質がある。

図3 公開鍵暗号を䜿う眲名のやり方

図3のように、秘密鍵で暗号化し、公開鍵で埩号化し、元のメッセヌゞず埩号化しお䜜ったメッセヌゞが䞀臎すれば、メッセヌゞが改倉されおいないこずが分かるのに加えお、送られおきた暗号化メッセヌゞを䜜ったのは、公開鍵のもずになった秘密鍵を持っおいる人であるこずが同時に確認できる。

公開鍵暗号にもいく぀か皮類があるが、ビットコむンではsecp256k1ずいう楕円関数に基づく暗号を䜿っおいる。