神奈川大学理学部情報科学科 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
© Copyright 2024 ExpyDoc