Floc Basics Vol.6 ブロックチェーンの合意形成

ファイナリティ

パブリックチェーンにはファイナリティがない。

ひとつだけ補足しておきますと、決済の仕事に携わる人々の間で、よく「ファイナリティー(finality)のある決済」という言葉が使われます。これは、「それによって期待どおりの金額が確実に手に入るような決済」のことを言います。具体的には、まず、用いられる決済手段について(1)受け取ったおかねが後になって紙くずになったり消えてしまったりしない、また決済方法について(2)行われた決済が後から絶対に取り消されない――そういう決済が「ファイナリティーのある決済」と呼ばれます。

日本銀行

日本銀行

まず、買物客が商店で品物を買い、その代金を商品券で支払ったとします。商店が買物客から受け取った商品券は、その商品券の発行会社へ持っていっておかねに換える必要があります。しかし、換金する前にこの商品券の発行会社が倒産してしまいますと、商品券をおかねに換えることができません。このように、商店にとって商品券を受け取ることは、損をする可能性を抱えたことを意味しています。損失の可能性が生じたのは、代金…

→BitcoinのProof of workでは6承認あれば、取引が確定したとみなされる。
 →100承認されるとGenerationTXのUTXOを使用可能
 →1ヶ月経てば取引が覆る可能性が限りなくゼロになる
 ※162承認されたブロックが変更される確率は2の256乗分の1

→どのような状態が取引確定かが大きな課題となっている

→現時点では、ビジネス慣行との整合性があるプライベートチェーンかコンソーシアムチェーンが導入しやすい。

ブロックチェーンのおいて確定を意味する言葉「ファイナリティー」

ブロックチェーンを生み出したビットコインにおいて、画期的なことは特定の第三者の存在のない分散システムにおいて決済システムが機能していることです。ブロックチェーンが様々な分野で使われたり検討されていますが、、特に決済システムとしてブロックチェーンを利用する際には「ファイナリティー」が重要になります。そこで今回はファイナリティーについて紹介します。 …

ビザンチン将軍問題への解

ビザンチン将軍問題

相互に通信しあう何らかのオブジェクト群において、通信および個々のオブジェクトが故障または故意によって偽の情報を伝達する可能性がある場合に、全体として正しい合意を形成できるかを問う問題

Wikipedia

ビザンチン将軍問題

ビザンチン将軍問題(ビザンチンしょうぐんもんだい、 英語: Byzantine Generals Problem)とは、相互に通信しあう何らかのオブジェクト群において、通信および個々のオブジェクトが故障または故意によって偽の情報を伝達する可能性がある場合に、全体として正しい合意を形成できるかを問う問題である。 フォールトトレラントシステムでの多数決の妥当性や 分散コンピューティングの処理の妥当性に関わる問題と言え、 二人の将軍問題 を一般化したものと言える。 ビザンチン将軍問題に帰結される故障や障害を ビザンチン故障(Byzantine Failure、あるいは ビザンチン障害)と呼ぶ。また、ビザンチン将軍問題が発生しても全体として正しく動作するシステムを ビザンチン・フォールトトレラント性 (Byzantine Fault Tolerance)があるという。 ビザンチン将軍問題は、 東ローマ帝国(ビザンチン帝国)の 将軍たちがそれぞれ 軍団 を率いて、ひとつの都市を包囲している状況で発生する。将軍たちは、都市攻撃計画について合意したいと考えている。最も単純な形では、将軍たちは、攻撃するか撤退するかだけを合意決定する。一部の将軍たちは攻撃したいと言うだろうし、他は撤退を望むかもしれない。重要な点は、将軍たちはひとつの結論で合意しなければならないということである。つまり、一部の将軍だけで攻撃を仕掛けても敗北することは明らかで、全員一致で攻撃か撤退かを決めなければならないのである。また、将軍たちは、それぞれ離れた場所に各軍団を配置しており、メッセンジャーを相互に送ることで合意を目指す。 問題を複雑にさせているのは、一部の将軍たちが反逆者であって、時折最適でない 戦略 に票を投じたりして混乱させることである。例えば、9人の将軍が投票するとして、その内の4人が攻撃に投票し、別の4人は撤退に投票した場合、9人目の(反逆者でもある)将軍は、撤退に投票した将軍たちには撤退票を送り、攻撃に投票した将軍たちには攻撃票を送ることができる。すると、この9人目の将軍から撤退票を受けた将軍たちは(撤退が過半数であると判断して)撤退するだろうし、残りの将軍たちは(攻撃が過半数であると判断して)攻撃を開始するだろう(しかし攻撃はうまくいかないだろう)。更に問題を複雑にするのは、将軍たちは物理的に離れた場所にいるため、使者に投票の信書を運ばせねばならないが、票を届けるのに失敗する場合もあるし、偽の票に改竄される可能性もあることである。 誠実な将軍たち(反逆者でない将軍たち)が全員一致で攻撃(あるいは撤退)に同意している場合、ビザンチン・フォールトトレラント性は達成可能である。ある将軍が正しい判断をする場合、他の誠実な将軍たちは必ずその判断に合意する。さもなくば、合意された戦略を選択することは、見当違いの方法ということになる。 この問題を 合意問題として定式化したのは、マーシャル・ピーズ、ロバート・ショスタク、 レスリー・ランポート の1980年の論文である。 ビザンチン故障とは、 分散コンピューティングにおいて、 アルゴリズム を実行中に発生する故障・障害である。不作為障害 (omission failures) と作為障害 (commission failures) が含まれる。不作為障害とは、クラッシュ、要求を受信しそこなうこと、応答を返しそこなうことなどを指す。一方、作為障害とは、要求を不正に処理すること、局所状態が壊れること、要求に対して不正または一貫しない応答を返すことなどを指す。ビザンチン故障が発生すると、ビザンチン・フォールトトレラント性を備えていないシステムは、予期しない動作をすることがある。 例えば、ある サブルーチンの出力が別のサブルーチンの入力になっているとき、第一のサブルーチンで生じた小さな 丸め誤差が、第二のサブルーチンで大きな誤差を生じることがある。さらに、その結果を第三のサブルーチンに入力すると、その誤差はさらに大きくなることがあり、無意味な値を生成することもある。別の例として、 ソースコードの コンパイルがある。コンパイラは、小さな構文上の誤りから、多くの誤りが生じることがある。こうなると、コンパイラの構文解析器は、ソースプログラムの字句情報や構文情報を見失ってしまう。そのような障害や故障が主要なインターネットサービスを停止させたこともある。例えば、2008年に、 Amazon S3 が1ビットのハードウェアの障害がシステム全体に伝播したことで数時間ダウンしたことがある。 ビザンチン・フォールトトレラント性 (BFT)

ビザンチン将軍問題とその解決策とは?問題解決の仕組みを解説

ブロックチェーンネットワークに潜む「ビザンチン将軍問題」はご存知ですか?人間心理にある裏切りが取引を脅かすビザンチン将軍問題とはどういう問題なのか、またBitcoinなどがどのようにその問題をクリアしてきたかについて解説します。 ビザンチン将軍問題とは、世界史上の集団の中の裏切り行為を例にとったネットワーク上の不正やエラーを指します。 …

→9名の集団があって、4名は○、4名は×だった時に、最後の1名が全社に○と告げ、後者に×と告げた場合、前者は○で合意したと思い、後者は×で合意したと思う。こういった不正者がいることを前提としなければならない。

→ブロックチェーンの場合は、当然これより複雑で総数もわからない。Bitcoinは悪意のノードや故障ノードがいることも考慮して解決策を提示している。

→この問題はそもそもノード数がわかっているクローズドなP2Pネットワークの問題。

Bitcoinの現実解

「インセンティブを与える」

→正直に行動することで経済合理性があるような報酬設計

→これによりほぼ不正によりシステムダウンする確率がゼロになった。

BFT(Byzantin Fault Tolerance)

ビザンチン障害への耐性を持ったアルゴリズムがBFTアルゴリズムで、実用的なのがPBFT(Practical BFT)。

コンソーシアム型ブロックチェーンで使用できる合意形成アルゴリズム「PBFT」

ブロックチェーンという分散システムにおいて合意形成は非常に重要な要素です。また、ここでは様々な合意形成のアルゴリズムを紹介してきました。 分散ネットワークでの合意を可能にしたコンセンサスアルゴリズム「プルーフ・オブ・ワーク」 Proof of Workの欠点を克服させた合意形成アルゴリズム「プルーフ・オブ・ステーク」 …

→HyperLedgerFabricなどで実装。

→リーダーノードが最初にトランザクションを受け取り、その他の承認ノードに転送する。

→このアルゴリズムをパブリックチェーンに応用したのがDPoS(Delegated Proof Of Stake)

→トランザクション処理の高速化と手数料の削減

→EOS、LISKで採用されている。BlockProducerというValidatorがブロックを生成する。

Introducing Byzantine Fault Tolerance Consensus for Lisk

I will give an overview of Lightcurve’s proposal for a Byzantine fault tolerance (BFT) consensus algorithm for Lisk. I will explain the importance of BFT, outline the main features and benefits of our proposed change and compare it to other consensus algorithms. Byzantine fault tolerance addresses a very real challenge in distributed systems – that challenge is ensuring that computers in a said system can reach consensus on certain data in a robust fashion.

Proof Of Work

・不正ができない理由

  1. 全員でネットワーク監視
  2. 正当なブロックしか残らない
  3. マイニングコストが高い

・セキュリティ

51%攻撃によってネットワークを支配することが可能。

※2014/6/13にハッシュレートが51%に到達したことがあるが、価格が暴落したことにより、危機が回避された。

51%攻撃

51%攻撃とは、仮想通貨のマイニング市場において、特定の個人や団体が計算処理能力の51%以上を支配することによって、本来不正な取引が正当として承認されるようになってしまったり、正当な取引が拒否されたりする状況のことです。マイニングを独占することが可能になるため、他のマイナーが排斥されてしまうという弊害もはらんでいます。昨今では巨大な資本を投じ、事業としてマイニングを行う「マイニングファーム」…

※Bitcoinにおいて、51%攻撃をするためには数千億円の初期コストが発生してしまう。

※ハッシュレートが低いブロックチェーンの場合は、不正を働いた方が合理的となる場合がある。実際にMonacoinやBitcoinGoldは攻撃された。

モナコイン、バージ、ビットコインゴールドのハッキング情報まとめ | CRYPTO TIMES

特にメジャーなハッキング事件が起こらなかった四月・五月上旬でしたが、ここにきて モナコイン(MONA)、 バージ(XVG)、 ビットコインゴールド(BTG)のハッキングが次々と発覚しました。 この記事では、それぞれの通貨への攻撃の手口や被害状況、公式の対応などについてまとめたいと思います。 今回のハッキングを受けた通貨は全て Proof of Work を採用した通貨で、と呼ばれる手口によって被害に遭いました。 Proof of Workでは、マイニングにより承認されたブロック(トランザクションの集まり)は 他のネットワーク参加者全員に共有される ことになっています。 同時にいくつか異なるブロックが承認されてしまった場合、様子を見て、その後に より多くのブロックが繋がった方が 正しいブロックのチェーンとして採用されます 。 51%攻撃とは、 ネットワーク全体の50%以上のマイニング能力を保持するハッカーが 非公開で自分に都合の良いブロックのチェーンを作り上げ、タイミング良く公開する という手口です。 これを悪用すると、現在公開されているチェーン上で送金を行い、その後に送金を行なっていないチェーンを公開し、それが採用されることで送金をなかったことにできます( ダブルスペンディング)。 この攻撃が成功する確率は、ネットワーク全体の50%以上の処理能力を得ることによりほぼ100%成功すると言われています。これが「51%攻撃」と呼ばれる理由です。 2013年に誕生した日本初の仮想通貨ですが、 今月13日から15日にかけて51%攻撃を受け、 約9万ドル相当の被害 が生み出されたもようです。 今回の攻撃では、モナコインをLivecoinなどの取引所を通して別の通貨に両替し、非公開チェーンを公開して取引を無かったことにするという手口であったようです。 犯人は未だ特定されておらず、 全ハッシュレート(マイニング能力)の約57%を保持していた と推定されています。 また、犯人は同様の手口でのハッキングを半年ほど試みていたと考えられおり、モナコインのマイニング難易度調整システムを悪用しようとしたものとみられます。 モナコイン公式は、攻撃の存在を公式に認めたのち、 51%攻撃が既存のProof of Workではどうしても解決できないものである とコメントしています。 現状ではサービス提供側で入金の承認数を上げる以外に有効な手段はありません。 PoWコインである以上は避けられない問題でもあるので、PoS等への移行も視野に入れていく必要があると考えています。 – monacoinproject (@tcejorpniocanom) May 17, 2018 4月に2千万XVG(時価約1億2千万円相当)の不正獲得事件が起こって間もないバージですが、 今月22日、 システムのバグを悪用した51%攻撃 の被害に遭ったもようです。 今回のハッキングは、 同通貨のマイニングプロトコルの欠陥性が悪用されたもので、ブロックの順番を表す タイムスタンプと呼ばれるものが 偽装された ことが原因とされています。 これにより、ハッカーは 短時間で3500万XVG(約2億円相当)を不正に獲得した と推定されています。 今回のハッキングは Bitcointalkのユーザーが指摘したものですが、バージ公式はこれを認めておらず、 攻撃は他の原因により生じた と言及しています。 同通貨は 大手アダルトサイトの支払い手段として導入される など実用化に力を入れていますが、今回の二度目のハッキング事件によって信頼性が大きく疑われています。 ビットコインのGPUハードフォークとして登場したビットコインゴールドですが、 今月16日から18日にかけて51%攻撃を受け、その被害額は 約39万BTG(約2億円相当) に登るとされています。 モナコインと同様、不正にコントロールされたBTGは仮想通貨取引所と犯人のものと思われるウォレットに両方に送金されたことになっているとのことです。 ビットコインゴールドのデベロッパーは、今回の 不正なチェーンのサイズが最大22ブロックにも及んだことから、 採用を決定するチェーンの長さを50まで延長するように と助言しています。 以上がモナコイン、バージ、ビットコインゴールドのハッキング事件のまとめとなります。 5月24日現時点での情報ですので、追加・変更等あれば随時更新していきたいと思います。

※33%程度の小さなハッシュレートでSelfishMiningという攻撃もできる。マイニングに成功したブロックを通知しないで隠し持っておいて、ある程度ブロックが伸びたところで、ネットワーク通知をすることで、ブロックチェーンの再編成を発生させる。(BlockWithholdingAttack)2018/5/13-19にかけて、MonacoinやBitcoinGoldに対して実行されて、多額の資金が引き出された。入金確定となる「承認数」が少なかったのも原因の一つ。

コンセンサスアルゴリズムの種類

Proof Of Work

膨大な計算能力が必要で、消費エネルギーも大きいのが問題。最も実績がある。

ただし、ハッシュレートが小さなブロックチェーンの場合に攻撃されるリスクがある。

https://www.binance.vision/blockchain/proof-of-work-explained

Proof Of Stake

「資産保有の証明」

マイニングする場合に、ウォレットに保証金預ける必要がある。この金額に応じて、次のブロックを発行できる確率が上がる。

計算量が膨大ではないため、消費エネルギーが少なく、新規参加者でも参加しやすい。

ただし、保証金を積めば積むほど、ブロックを生成しやすいので、経済格差の拡大は進みやすい。

Ethereumが採用予定。

https://www.binance.vision/blockchain/proof-of-stake-explained

Proof Of Importance

「重要性の証明」

NEMのみに採用されている。コインの保有量や取引頻度によって重要性が算出される。コインの流動性を向上させる狙いがある。ハーベスティングと呼ばれる。参加には一定量のコインが必要なので参入障壁は高い。

NEM – Distributed Ledger Technology (Blockchain) ” Harvesting & PoI

Harvesting is closely similar to mining in other cryptocurrencies, but it uses unique methods called Proof of Importance and Delegated Harvesting to determine who harvests the next block. Harvesting is necessary to keep the network online and to confirm transactions. Harvesting has several advantages over other types of methods.

Proof Of Consensus(XRP Ledger Consensus Protocol)

「合意の形成」

Rippleのみ採用。

バリデーターは金融機関などの信頼に値する組織で構成。ここはブロックチェーンとしての非中央集権的というメリットがなくなるところ。

承認スピードが約4秒と速い。ファイナリティもある。

仮想通貨取引所が解説するリップル(XRP)の特徴と歴史 | Coincheck(コインチェック)

現在、数多くの仮想通貨が存在していますが、リップル(XRP)は、グローバルに資産をやりとりできることを目標に開発されています。 そのため、ほかの仮想通貨とは違う特徴があります。ここでは、リップル(XRP)とは何か?から、リップル(XRP)の特徴、メリットや仕組みなどについて、初心者にもわかりやすく解説していきます。 リップル(XRP)は、アルトコインのひとつです。 …

まとめ

可用性、取引の透明性を重視するならパブリックチェーン。

→信任された第三者を介さないP2P
→ノード数が多くならないとセキュリティが高まらない
 →サイドチェーンとしてBitcoinを使うことでセキュリティを向上させることができる
→合意形成の時間が長い
 →オフチェーンによって解決策を検討中

情報の秘匿と取引スピードの速さを重視するならコンソーシアムチェーンかプライベートチェーン。