Bitcoinに対する51%攻撃について

神奈川大学理学部情報科学科 2014 年度学士論文要旨
指導教員:松尾和人
Bitcoin に対する 51%攻撃について
酒井 和希
1
はじめに
オンラインの取引を行う方法にはクレジット払いや、銀
行振込みで支払う方法がある。これらの取引方法を利用し
て取引を行うとクレジットカード会社、銀行といった第三
者の機関を介して取引が行われる。第三者の機関が利用者
間に入ることによって行われる取引は確実に料金の支払い
が行われる。第三者の機関が存在することによって、オン
ラインの取引を安心して利用することができる。しかし、
利用するには審査や個人情報の開示を第三者の機関に行
う必要がある。第三者の機関を利用せずオンラインで取
引を行う手段として仮想通貨が存在する。仮想通貨の一
つであるビットコインは 2008 年にサトシ・ナカモト [1] に
よって考案されたシステムに基づき、ボランティアコミュ
ニティー (https://bitcoin.org/ja/development) に
よって 2009 年に運用が開始された。ビットコインを使
用した取引は利用者と利用者の二者間で取引を行うこと
ができる。ビットコインを使用した取引の正当性を保つ
ため、信頼における第三者の機関の代わりに暗号技術に
基づく信頼性によって取引を正当化している。
購入をし、各ノードが採掘速度を競いながら取引の管理
を行っている。
2.1 ビットコインの採掘
採掘者と呼ばれるノードはビットコインを使用した取
引の承認作業を行っている。ビットコインを使用した取
引は全てのノードに広められる。各ノードは広められた
取引情報を集めてブロックを生成する。各ノードは生成
したブロックをハッシュ化して、ノードが持つ CPU の
計算能力を使用して演算量証明を行う。この演算量証明
では SHA-256 を利用し、先頭から連続する 0 を持つハッ
シュ値を総当りで計算する [1]。システムが定めた先頭
から連続した 0 の個数と同じハッシュ値を最初に見つけ
ることに成功したノードに一定量のビットコインが新規
に発行される。このハッシュ値が見つかった場合取引情
報を集めて作成したブロックを全てのノードに広め、各
ノードはそのブロック内に不正な取引がないかを確認し、
問題なければブロックはブロックチェーンと呼ばれる公
開台帳につながれる。
2.2 多重使用問題
ビットコインは仮想通貨のため、現金と異なり使用し
本研究ではビットコインシステムの安全性とビットコ
たら手元から無くなる概念がない。そのため、一度使用
インを狙った攻撃についてまとめる。また、一つのノー
したビットコインを使用して別々の受信者にビットコイ
ドが持つ計算量がノード全体が持つ計算量の過半数を得
ンを送信することが可能である。ビットコインでは多重
た場合に攻撃可能となる 51%攻撃についてまとめ、小さ
使用をされないために取引に順番をつけ、最初に行われ
な計算量を持ったノードが結託した場合に 51%攻撃が成
た取引を正当な取引と認め、それ以降の取引を不正な取
功するかを検討し、その対策について考察する。
引とし無効にする。ビットコインの取引が正当な取引で
2
ビットコイン
手元から無くなる概念が存在しないため、同じ通貨を使
あるかはノードの大多数が認めるかによる [1]。
2.3 ブロックの改ざん
悪意のある利用者やノードがビットコインの多重使用
や取引情報の改ざんを行った場合、ブロックチェーンの
用するビットコインの多重使用問題 [3] や、第三者の機
分岐が起こる。演算量証明に成功した場合各ノードはブ
関が顧客情報を管理していないため、プライバシーの問
ロック内が正当な取引のみであれば承認し、不正な取引
題 [2] がある。ビットコインを入手する方法として、以
があれば拒否をする。善良なノードは不正を拒否するた
下の方法がある。
• 取引所で購入する方法
め、善良なブロックチェーンを伸ばしていく。しかし悪
• 商品を販売して代金として得る方法
• 採掘を行い入手する方法
取引所では購入だけでなくビットコインの売却をするこ
とも可能である。また、採掘によって入手する方法は、採
チェーンを伸ばす。ブロックチェーンが分岐をした場合
掘者と呼ばれる不特定多数のノードがビットコインを使
良なブロックチェーンが正当なブロックチェーンとして
用した取引の管理を行う。その報酬として一定量のビッ
認められる [1]。
トコインが新規に発行され、採掘者に与えられる。これ
3
ビットコインは二者間での取引を可能としている仮想
通貨の一つである。仮想通貨は現金と異なり使用したら
をビットコインの採掘と呼び、各ノードはより多くのビッ
トコインを得るために計算能力に優れたハードウェアの
意のあるノードは不正な取引を承認し、不正なブロック
より長いブロックチェーンを正当なブロックチェーンと
みなし、短いブロックチェーンを無効とする。善良なノー
ド全体が全てのノードが持つ計算量の大多数であれば善
51%攻撃
ビットコインに対する攻撃として Race 攻撃 [6] や Finney
攻撃 [3] が知られるが、本研究では 51%攻撃 [4] を取り
神奈川大学理学部情報科学科 2014 年度学士論文要旨
指導教員:松尾和人
上げる。善良なノード全体が全てのノードが持つ計算量
論を得た。
の過半数を保持していればビットコインの取引は不正が
5
結託した場合の 51%攻撃の対策
起きない。しかし、一人のノードが全体が持つ計算量の
前節で考察した、ノードが結託を行いノード全体が持
過半数を支配し, このノードが悪意あるノードであった
つ計算量の過半数を支配している場合の攻撃の有効性及
場合ビットコインの取引は正当に行われることはない。
びその対策について検討する。悪意のある小さな計算量を
ビットコインの取引は最長のチェーンを正当な取引とし
持つノードが結託を行い 51%攻撃を行った場合、51%攻
て判断される。ブロックチェーンを長く伸ばすにはノー
撃が行われていると推測できるのは善良なノードだけで
ド全体が持つ計算量の過半数を持っていれば良い。つま
ある。攻撃が行われるとブロックチェーンの分岐が起き
り、一人のノードがノード全体が持つ計算量の過半数を
る。善良なノードは善良なブロックチェーンを伸ばし、悪
得た場合このノード単独で取引の承認と拒否を行い常に
意のあるノードは不正なブロックチェーンを伸ばす。正当
正当とみなされるチェーンを伸ばし続けることが可能で
なチェーンとして認められるのはより長いブロックチェー
ある。ノード全体が持つ計算量の過半数を得た場合, (1)
ンである。結託した悪意のあるノードがノード全体の持
不正な取引の正当化 (2) 正当な取引の拒否 (3) 採掘の独
つ計算量の過半数を支配している場合、善良なノードが
占を行うことが可能となる。
伸ばしているブロックチェーンは正当な取引として認め
現在 51%攻撃に対する有効な対策はない。しかし、攻
られない。そのため善良なノードは、不正ブロックチェー
撃者は 51%攻撃を行ったとしても期待値以上の利益を得
ンを伸ばしている悪意のあるノードが正当なチェーンを
ることがないことを知っているためノードは 51%攻撃を
伸ばしているノードが持つ計算量よりも、高い計算量を
行わないと考えられている。ビットコインは価値が変動
持つと推測することができる。そのため、善良なノード
する通貨であるため、51%攻撃が可能になる前にビット
は 51%攻撃に対して対策を行うことが可能であると考え
コインの価値が下がると考えられている。これは、どの
る。しかし、51%攻撃を無効化するには善良なノードが
ノードが全体が持つ計算量の何%を保持しているかを確
計算量を増やし、悪意のあるノードが持つ計算量を上回
認できるハッシュレート [5] があるためである。このハッ
る必要があるが、この方法は困難である。現実的な対策
シュレートは誰でも確認することが可能である。これに
としては、攻撃者が攻撃を行っても利益を得ることが出
より、計算量が明確に表示されるため、ノードが全体が
来ないと判断させればよいので、善良なノードが、51%攻
持つ計算量の過半数に近づくと 51%攻撃の脅威により、
撃を行われている可能性をネットワーク上で伝えること
ビットコインの安全性が確保できないため、ビットコイ
が挙げられる。この場合、既に 51%攻撃が成功し攻撃者
ンの価値が下がる。攻撃者は価値が下がったビットコイ
は一定量の利益を得ている場合があると考えられる。そ
ンを不正に得ても利益につながらないので攻撃は行われ
れを防ぐためには、全体の計算量だけでなく、各ブロッ
ないとされている。
クチェーンを計算するノードの計算量をハッシュレート
4
ノードが結託した場合の 51%攻撃
本研究では、小さな計算量を持つ悪意のあるノードが
結託を行い、ノード全体が持つ計算量の過半数を支配し
た場合を想定して 51%攻撃の有効性について検討する。
の様に、誰でも見ることが可能なシステムを構築すれば
良いと考える。
6
まとめ
本研究では、ビットコインに対する 51%攻撃について調
各ノードが持つ計算量はハッシュレートによって明確に
査した。また、悪意のある小さなノードが結託し、ノード
示されている。そのため、あるノードが全体が持つ計算
全体が持つ計算量の過半数を支配した場合に 51%攻撃を
量の過半数に近づくと、全ての利用者がビットコインを
行った場合について検討し、その対策について考察した。
売り払うことにより価値が下がる。ここで、ハッシュレー
参考文献
トから計算量の過半数を支配していることが分からない
場合をつくり攻撃を行うこと考えた。例えば 1%の計算
量を持つ 51 のノードが結託を行うことによってハッシュ
レートによる 51%攻撃が行える危険性を利用者は感知す
ることが出来ない。また、結託したノードが全体が持つ
計算量の過半数を支配している場合、3 節で挙げたノー
ドが全体が持つ計算量の過半数を支配した場合に行うこ
とが可能となる項目を行うことが可能であると考られる。
本研究では、この場合の攻撃の有効性と対策について考
察した。その結果、3 節で挙げた (1) 不正な取引の正当
化 (2) 正当な取引拒否 (3) 採掘の独占が可能であると結
[1] S.Nakamoto, “Bitcoin:A peer-to-peer Elec tronic Cash
Sysytem,” 2008, www.bitcoin.org/bitcoin.pdf
[2] bitcoin, http://www.bitcoin.orgc
[3] G.O.Karame,E.Androulaki “Tow Bit coin at the Price
of One? Double-Spending Attacks on Fast Payments
in Bitcoin” 2012, http://users.encs.concordia.ca/
~clark/biblio/bitcoin/Karame\%202012.pdf
[4] I.Eyal,E.G.Sirer,
“Hacking,Distributed How A
Mining Monopoly Can Attack Bitcoin”http:
//hackingdistributed.com/2014/06/16/
how-a-mining-monopoly-can-attack-bitcoin/
[5] Bitcoin Block Explorer, https://blockchain.info/
ja/
[6] E.Bonadonna “Bitcoin and the Double-Spending Problem” 2013