http://www.asyura2.com/14/hasan86/msg/742.html
Tweet |
「ビットコイン(Bitcoin)」はデータ交換の仕組みであり、決済や蓄財など貨幣であるかのように使われています。このため、IT(情報技術)、ビジネス、経済、社会といった様々な面から論じる必要があります。『ビットコイン・ホットトピックス』欄には、多様な論点の記事を掲載していきます。今回は京都大学の安岡孝一准教授に、計算量理論の立場から寄稿していただきました。(日経コンピュータ編集部)
「Mt.GOX」の破綻(関連記事)によって一躍有名になった感のあるBitcoin(ビットコイン)だが、この期に及んでも、いまだBitcoinを信奉している人々がいて、正直なところ理解に苦しむ。遠慮会釈なく言わせてもらえば、Bitcoinはデジタルマネーとしての設計が極めて悪質で、計算量理論から見て無限連鎖講となっている。別の言い方をすれば、ネズミ講である。
Bitcoinの設計上、新規に発行された通貨を誰が受け取るかで、激しい計算競争が行われ、計算量が発散し続けるか、あるいは逆に減衰するからだ。どちらにしても破綻するはずで、Bitcoinの仕組みは維持できなくなる。
人口の無限連鎖講ではなく、計算量の無限連鎖講であるために現行法では取り締まることができないが、計算量理論の専門家が見れば卒倒しかねない作りになっている。その辺りを述べてみようと思う。
取引記録の改ざん防止のために「パズル」を解かせている
まずBitcoinの仕組みを確認しよう。Bitcoinの通貨単位は「BTC」である。現在、Bitcoinにおける通貨発行は「約10分ごとに25BTCが新規発行される」という形で行われている。「採掘」などという妙な単語で擬装しているが、デジタルマネーの立場からは、通貨発行に他ならない。
2009年のシステム開始当初は、約10分ごとに50BTCの発行だったが、21万回(約1458日)発行した時点で25BTCとなった。次の21万回が終わると、約10分ごとに12.5BTCとなり、その後21万回おきに6.25BTC、3.125BTC、…と発行量は無限に減っていく。したがって、Bitcoinの発行通貨は100BTC×21万=2100万BTCに収束(50+25+12.5+6.25+3.125+…≦100)し、通貨総量は2100万BTCを超えることはない。
Bitcoinはデジタルマネーなので、取引記録もデジタルである。取引記録は、インターネット上のP2P(ピア・ツー・ピア)ネットワーク上に公開されていて、誰でも見ることができるし、誰でも書くことができる。ただし、取引記録を改竄されないために、各取引記録には「パズル」が貼りつけてある。このパズルは、「SHA-256」という暗号を利用したもので、解くためには大量の計算を必要とするのだが、検算は至って簡単である。もしも、誰かが取引記録を改竄すると、その取引記録とそれ以後に連鎖する取引記録において、パズルの答が合わなくなってしまう。つまり、改竄を成功させるためには、その取引記録以降のパズルを全て解き直さなければならない。だから改竄は非常に難しいはずだ、というのがBitcoinの売り文句である。このパズルを解き続けない限り、Bitcoinの安全性は担保されない。
パズルを解いた報酬が新規通貨
そんなパズルを誰が解くのか。各取引記録のパズルを最初に解いた人には、Bitcoinが新規発行したばかりの通貨(現在は25BTC)と、各取引者が出した手数料がプレゼントされる。手数料もBTCで支払われる。取引記録は約10分ごとにまとめられて、複数の取引記録に1枚のパズルが貼りつけられる仕掛けになっており、そこに新規発行された25BTCと手数料がぶら下げられている。それを貰えるのは、パズルを最初に解いた人だけなので、ここで競争が起こる。SHA-256の効率的な解法は発見されていないので、とにかくコンピュータを回して大量の計算をした人の勝つ確率が高くなる。
ただし、投入される計算量に対してパズルが易しすぎると簡単に改竄されてしまう危険性があるので、Bitcoinの仕組みでは、過去2週間のパズルの解答時間の平均を取って、パズルの難易度を変えるようにしている。SHA-256を使ったBitcoinのパズルは、答が分からなくても答の難易度を変えられる。過去2週間の平均解答時間が5分だったら問題を2倍難しくする。あるいは、過去2週間の平均解答時間が2分だったら問題を5倍難しくする。そのようにして、解答時間が10分になるように調整するわけである。
「正のフィードバック」によって計算量が爆発
新規に発行された通貨1BTCを得るために、必要な計算量を考えてみよう。たとえパズルの難易度が変わらないとしても、約1458日(21万回)発行するごとに発行単位が半減するから1BTCを得るために必要な計算量は約1458日、ざっと4年で倍に増加する。それ以降、8年で4倍、12年で8倍、16年で16倍、20年で32倍、24年で64倍、とスピードは遅いものの、指数関数的に増加していく。
しかもBitcoinでは、BTCを得るために計算量を投じたりBTCを保有したりしている人が、BTCを得たりBTCで取り引きすることに魅力を感じている場合、「1BTCを得るのに必要な計算量が増加する以上、投入される計算量も必然的に増加する」という状態になる。そうすると今度は、パズルの難易度との間で「正のフィードバック」がかかって、計算量も難易度もさらに増大してしまう。
Bitcoinが正のフィードバックがかかるシステムになっていることが、筆者がネズミ講と呼ぶ所以である。とにかくBitcoinは、過去に投入された計算量が増加し続ける限り、それより多くの計算量を必ず要求するよう設計されており、世界中の総計算量の増加スピードを上回りかねない。そこでこの点を説明する。
正のフィードバックと負のフィードバック
フィードバックは結果が原因に作用するものである。通常は原因があって結果となるのだが、フィードバックはさらに、結果が原因に影響を与え、それに応じて結果もさらに変化していく。フィードバックには正のフィードバックと負のフィードバックがある。
正のフィードバックは結果が原因を助長するようなフィードバックである。結果が増加すると原因が増加し、それがまた結果の増加を生み、それがまた原因の増加につながり、他の要因がなければ、増加が無限に進んでシステム全体が発散する(図1)。
正のフィードバックの典型例として、説明にしばしば用いられるのは、ネズミの繁殖である。ネズミは一般に、1回の出産で5匹以上の子を産む。その子がまた同様に5匹以上の子を産む。そうして、出産という原因が、ネズミの増加という結果を生み、それがまた出産を増やす。
また、正のフィードバックは何かのきっかけで、いったん結果が減少しはじめると、原因も減少し、それがまた結果の減少を生み、減少が無限に進んでシステムがこわれる。このように正のフィードバックは、システムを発散もしくは減衰させるという点で危険であり、通常のシステム設計では忌避される。
逆に、負のフィードバックは、結果が原因を打ち消すように働くフィードバックで、システム設計における重要な要素技術である。負のフィードバックでは、結果が増加すると原因が減少する。結果が減少すると原因が増加する。このようにして、システム全体が安定していく(図2)。
通常のシステムには、正のフィードバックと負のフィードバックが混在している。たとえ、正のフィードバックがあったとしても、それを上回る負のフィードバックがあれば、システム全体は安定して動作する。また、システムに作り込んだフィードバックが、あるパラメータに対しては負のフィードバックであっても、他のパラメータに対しては正のフィードバックとなってしまう場合がある。このような場合には、さらなる負のフィードバックを追加して、全体として各パラメータに負のフィードバックがかかるよう、注意深く設計することになる。
Bitcoin設計上の問題
Bitcoinの難易度におけるフィードバックは、解答時間というパラメータに関しては負のフィードバックとなるように設計されている。10分より短い時間でパズルが解かれてしまったならば、解答時間を長くするように難易度を増加する。10分より長い時間がかかっているならば、解答時間を短くするように難易度を減少する。これによって、解答時間は10分に安定し、負のフィードバックが有効に働いているように見える。
しかし、このフィードバックは、計算量というパラメータに関しては、正のフィードバックとなってしまっている。10分より短い時間でパズルが解かれてしまったならば、難易度を増加することで、もっと多くの計算量を要求する。10分より長い時間の場合は、難易度を減少することで、もっと少ない計算量で済むようにする。増加し始めるとどんどん増加し、減少し始めるとどんどん減少してしまうので、計算量を一定にするということができない。現時点では、計算量は増加しつづけており、そこに正のフィードバックがかかっているために、減少には転じていない。
通常のシステム設計であれば、同時に負のフィードバックをかけることで、システムが発散あるいは減衰しないよう工夫する。たとえば、10分より短い時間でパズルが解かれてしまったならば、プレゼントするBTCを減らす、というような工夫である。もちろんこれだけでは、負のフィードバックとしては不十分でもっと工夫が必要だ。しかし、Bitcoinの設計者たちが、そのような工夫をした形跡はなく、計算量に対しては、正のフィードバックだけがかかる設計になっている。計算量というシステム設計上かなり重要なパラメータを、あえて無視しているかのようだ。
BTCに魅力がなくなるとどうなる?
筆者は先に、「BTCを得るために計算量を投じたりBTCを保有したりしている人が、BTCに魅力を感じている場合、1BTCを得るのに必要な計算量は増加を続け、投入される計算量も必然的に増加する」と書いた。現在、BTCを得るために計算量を投じたり、BTCを保有したりしている人々は、基本的にはBTCに魅力を感じているはずだし、少なくとも平均的にはそうだろう。現時点では、BTCに魅力を感じない人々は、そもそも計算量を投じたり保有したりしていないからだ。
しかし、将来もそうだとは限らない。BTCを手放すことにむしろ魅力を感じる人が、システムの参加者の半数を超えた場合、Bitcoinはどうなるのだろう。「投入される計算量は必然的に減少する」という状態になる。
Bitcoinのシステムに参加する人々の半数以上が、BTCに魅力を感じないわけだから、こうなってしまうわけだ。その際に、投入される計算量に正のフィードバックを持つBitcoinのシステムにおいて、計算量は減り続け、システムは破綻することになる。
Bitcoinに投入される計算量を制御工学の視点でモデル化
こうしたBTCへの「魅力」によって、システムが発散あるいは減衰することを、制御工学の立場から考えてみよう。
Bitcoinに投入される計算量は、「帰還パルス幅2週間の正帰還ループ」として表現できる。「正帰還ループ」は、正のフィードバックを持つシステムのことだと思ってもらえばいい。「帰還パルス幅2週間」というのは、フィードバックに2週間かかる上にフィードバック値が2週間保持される、ということだ。Bitcoinのパズルの難易度は、2016回パズルが解かれる度に変更される。10分×2016回=336時間、すなわち2週間遅れでしか難易度は変更されず、かつ、その難易度は次の2週間変わらない。これを「帰還パルス幅2週間」と呼ぶことにする。
増幅率A>0の増幅器、帰還率βの帰還器、および加算器からなる帰還ループ(図3)に対し、β>0であるものを正帰還ループという。
帰還器の出力は Vf =β(Vo) 、増幅器の出力は Vo=A(Vi+Vf ) 、したがって Vo=A(Vi+β(Vo)) であることから、以下の式が得られる。
β>0の正帰還ループにおける安定条件はAβ<1であり、この場合に限って、VoとViの比が一定となる。Aβ>1においては、Voは発散する。Aβ=1という条件下においては、通常Voは発散するが、Vi=0の時のみVoは発振する。その発振周波数は、Aβの周波数特性に依存するので、通常はある周波数においてだけβ>0で、他はβ=0にすることで、発振周波数をコントロールする。
Bitcoinシステムの発散・発振・減衰
図3の帰還ループにおける出力Voを、「Bitcoinに単位時間あたり投入される計算量」とおく。この時、帰還器の出力Vf は、Bitcoinの難易度が要求する「単位時間あたり計算量」を意味している。Bitcoinの難易度は、その直前の「単位時間あたり計算量」に対して、パズルを解く時間が10分になるよう増減する。すなわち、難易度が変化する瞬間には、その前後で「単位時間あたり計算量」が維持されることが前提となっているのでβ=1であり、さらに、変化後2週間はVf が不変である。したがって、この帰還器の固有周期は4週間である。
Bitcoinでは、難易度は完全にプログラムによる計算結果として求められ、外的な擾乱はない。これはVi=0という形で定式化できる。この場合、Vf がそのまま増幅器の入力となる。この正帰還ループにおいて増幅器は、BTCを得るために計算量を投じたりBTCを保有したりしている人にとってのBTCの魅力を表したものとなる。
BTCに魅力を感じる人々が多い場合にはA>1となり、BTCを手放すことにむしろ魅力を感じる人々が多い場合にはA<1となる。すなわち、BTCに魅力を感じる人々が多い場合は、Bitcoinが要求するVf より多くの「単位時間あたり計算量」が投入される。一方、BTCを手放すことに魅力を感じる人々が多い場合は、Vf より少ない「単位時間あたり計算量」しか投入されない。BTCを得るべきか手放すべきか皆の態度が拮抗している時にのみ、A=1となる。
β=1であり、A>1の場合は、Aβ>1となることからVo、すなわち「単位時間当たりに投入される計算量」は発散する。A<1の場合は、Aβ<1となることからVoはどんどん減衰し、Vi=0の条件下ではVo=0まで減衰しきって停まる。ギリギリでA=1を保っている場合は、Aβ=1かつVi=0となることからVoは発振する可能性がある。
2012年12月から2013年2月まで一時的に「発振」
Bitcoinが、ギリギリでAβ=1を保って発振したのは、筆者の知る限り、過去に一度だけである。2012年12月10日から2013年2月5日までの8週間がそれで、この時、Vf の指標となる難易度は、約2週間ごとに3,370,182→2,979,637→3,249,550→2,968,775→3,275,465という変化を示した。4週間周期で発振していたわけである。
この発振は、2012年11月28日に発行通貨数が、50BTCから25BTCへと半減したことに起因しているようだ。発行通貨が半分になったことにより、いわゆる「様子見」の雰囲気が拡がり、新たな計算量が追加されず、かと言って計算量が減ることもない状態が、8週間程度、継続したと考えられる。ただしこの後は、またAβ>1となり、Bitcoinに投入される計算量は発散を続けている。
Bitcoinには、A>1の傾向、すなわちBTCを得るために計算量を投じる魅力が強くなるよう、様々な工夫が設計時に仕込まれている。そのA>1の最たるものが、10分間という時間で繰り広げられるBTC獲得競争である。
「BTC獲得競争」と「同じ難易度が2週間継続」が問題点
この競争では、パズルを一番速く解けた者が勝者であり、御褒美としてBTCが与えられる。この10分間において、その勝者は世界一であり、また次の10分間も勝ちたいと思うだろう。一方、敗者も、次こそは勝ちたいと思うだろう。Bitcoinのパズルはスピード競争なので、参加者は皆スピードアップするしか勝ち目がない。
Bitcoinが設計に仕込んでいる10分間という長さは、人間の心理において、かなり巧妙な長さだと思える。1分間だと、ほとんど待たずに次々と結果が出てしまうため、結果に対して思いを巡らせる時間がない。60分間だと、普通の人間は結果を待つことができず、別のことをやりながらになるだろう。10分間は、勝ち負けに一喜一憂するのに十分な時間であり、A>1となるインセンティブが強く働くのである。しかもこれは、勝負そのものに対するインセンティブであり、得られる結果に対する価値とは無関係に、純粋に勝負そのものに熱中してしまう人々が一定数出てくる、という点で注意を要する。
さらに、同じ難易度が2週間続くというのも、巧妙な設計である。難易度の変化は、投入する計算量の見直しをさせる可能性があり、A<1になる考えを持つこともあるだろう。しかし、それは2週間に1回だけなのである。通常の生活パターンであれば、給料前に1回、給料後に1回、という程度のものだ。10分間ごとに起こるA>1のスピード勝負へのインセンティブを、2週間ごとの見直しが打ち消す可能性は、極めて低い。
そのようなA>1への強いインセンティブを打ち消して、A<1へ転換させる要素があるとすれば、それは、長期に渡るBTCの価値の下落である。どのくらい長期か、というのは難しい要素だが、少なくとも4週間以上は下落傾向がずっと続かないと、難易度に反映されないと思う。
ただしBTCの価値が下がってきたと誰かが感じたとしても、その人自身はBTCを売り抜けてしまってBitcoinから去り、たいていは別の暗号マネーに移るだけなので、Bitcoinに残った人達の中では、相変わらずA>1となってしまう。
実際に計算量は爆発している
1BTCを得るための計算量は、もともとが指数関数なので、正のフィードバックがかかるとそれが増幅されて、もっと大きな増加を示す指数関数となってしまう。事実、難易度の変化は、最近1年で747倍(難易度の対数グラフで、2013年3月24日と2014年3月24日を比較)、平均して38日と3時間で2倍、という途方もない状態になっている。この結果、1BTCを得るための計算量も、難易度と同じ指数関数で増大している。
Bitcoinは、投入される計算量にそもそも正のフィードバックがかかっていて、実際に指数関数として増大しているという点で無限連鎖講である。人口の無限連鎖講では参加者がネズミ算で増えるのに対し、計算量の無限連鎖講では「難易度の増大」になってしまう点が、理解を難しくする要因の一つだろう。世界中の総人口の増加スピードに較べ、世界中の総計算量の増加スピードがかなり速いことから、破綻の危険性が見えにくい、ということもある。
なお、Bitcoinに投入された計算量がそのままBTCの価値だとする「計算資源本位制」という考え方(関連記事)があるようだが、これは全くの誤りだ。Bitcoinに投入された計算量は、あくまでパズルを解くためのものであって、BTCそのものの価値ではない。Bitcoinを支えているのは、確かに計算量なのだが、それとBTCの価値とは何の関係もない。計算量はBTCに化けたかもしれないが、BTCは計算量に化けないからだ。
Bitcoinに投入される計算量は、1年で747倍になった。仮にそれらがBTCの価値であるなら、BTCの価値は、1年で747倍になってしまう。1年で価値が747倍になるようなハイパーデフレ通貨など、通貨としての破綻は目に見えている。Bitcoinに投入された計算量は、あくまでBitcoinの「維持費」に過ぎないと割り切り、健全なBTCの交換レートを探るべきだ。
では、BTCの価値は、どうやって測るべきなのか。それはもちろん、他の通貨との交換レートによって、相対的に決められていく。それが、現代における通貨価値の本質だろう。たとえ、日本政府がBTCを通貨として認めない(関連記事)としても、そもそもモノの価値は交換によって決まっていくのだ。
ただし、そう考えたとしても、本稿で指摘したBitcoin自身の設計のまずさは直しようがない。そんなBitcoinの運用を今後も続けていくメリットはない。
安岡 孝一 京都大学人文科学研究所附属東アジア人文情報学研究センター 准教授
1965年大阪府堺市生まれ。90年京都大学大学院工学研究科情報工学専攻修士課程を修了し、同年京都大学大型計算機センター助手に就任。97年論理回路設計における計算量理論の研究により京都大学博士(工学)取得。2009年より現職。『Logic Synthesis and Optimization』(T. Sasao編、Kluwer Academic Publishers)、『Field-Programmable Logic and Applications』(R. W. Hartenstein & H. Grünbacher編、Springer)、『キーボード配列 QWERTYの謎』(NTT出版)など著書多数。
http://itpro.nikkeibp.co.jp/article/COLUMN/20140314/543783/
スパムメールの中から見つけ出すためにメールのタイトルには必ず「阿修羅さんへ」と記述してください。
すべてのページの引用、転載、リンクを許可します。確認メールは不要です。引用元リンクを表示してください。