BIP91、BP141、ハードフォーク、などなど・・・ビットコインに今起こっている事
かなり情報が錯綜していて、「8月1日に分裂する予定が7月23日に早まった」「ハードフォークは回避された」など、間違った情報が出回っています。自分も色々と調べていますが、正しい情報であって、かつわかりやすく整理されているのが、この2つの記事でした。①の記事昨日から報道などでは「ビットコイン分裂の危機が7.23に前倒しされた」というようなものが出回っているようで、非常におどろいている。あらためて状況を確認したい。まず、8.1に起こるかもしれないといわれていた・敵対的な2つの陣営が対立することによる・予想の付かない事態を孕んだ分岐(UASF)は、回避された。まず、この前提を抑えて欲しい。現在、あたかも上記のような分岐が8.1から7.23に前倒しして起こるというように勘違いされているひともいるかもしれないが、このような危機的なチェーン分岐は既に回避された。7.23に行われることは真逆で、8.1に致命的なチェーン分岐が起きないようにするための新ルールを、採掘者の合意のもとで適用する、ネットワークのアップデートである。敵対的な要素はない。「ビットコイン分裂の可能性が7・23に早まった」という表現は誤解を招く恐れが有る。このアップデートもBIP91ソフトフォークという名前が付いているために、あたかも危険な分岐が起こるということに勘違いしているのかもしれない。では、7.23のリスクとは一体なんなのか?これは、いわゆるソフトウェアのアップデート時に動作がうまくいかないといったタイプの問題である。つまり、全員の合意のもとアップデートするのだが、かなり急ごしらえでやっているもののため、ソフトウェアに未知のバグがあったり、採掘者が適切なソフトウェアを走らせてない可能性やうっかりミスも考えられ、それら起因してブロックチェーンが一時的に分岐する可能性が指摘されている。この場合再び元に戻るので永続的な分岐にはならないものの、取引の承認が不安定になる可能性がある。またその頻度が上がる可能性があると考えられている。取引所の対応について論点は、一時的なチェーン分岐がどのくらいの頻度・長さで起こるかということだ。これは各社の見解・見通しということになるが、それぞれに対応は異なっているようだ。入出金や送金を一時的に止めるといった対応をするケースから、入出金や送金は止めずに、通常よりも多くの時間を待つ(6確認程度)こととする対応まである。取引所におけるリスク評価は各社の判断におまかせするとして、当ブログでは、一般のユーザー向けに、下記の指針をおつたえしておくことにする。7/23日19:00にむけて、その数時間まえから、ビットコインを受け取るひとは、通常の1確認ではなく、6確認まで待ったほうが良い。これは、Segwitがロックインされる8.10前後まではそのようにされたほうが良い。②の記事※7月23日に恒久的なビットコインの分岐は起きませんので、ご安心ください。※ただし一時的な分岐(オーファンブロック)が起きる可能性はあります。そのため23日はコインの確認は標準の6確認、もしくはそれ以上待つことを推奨します。※なお、BIP(Bitcoin Improvement Proposal)66のときの例とは異なり、今回はすでにほぼすべてのマイナーがBIP91について理解しており、23日のアクティべート後に不用意にBit1を立てない採掘をするリスクは低いと考えます。8月1日のBTC Cash、8月中旬のSegwitのアクティベート、そして11月中旬の2Mハードフォークが現状で分かる限り残された主なイベントです。用語の整理・ソフトフォークとハードフォークプログラムの変更の方法でありチェーンが分岐するかどうかとは直接は関係ありません。またこの区分けはどちらかというとマイナー向けではなくクライアント向けに意味のある区分けであり、ソフトフォークの場合SPVウォレットなど多くのクライアントソフトウェアは変更をする必要はありません。・チェーンの分岐(一時的と恒久的)ブロックチェーンが分岐すること。一時的な分岐はオーファンブロックとも呼ばれ常に起きています(1日数回)。通常は1、2ブロック後にその分岐は行き止まりとなる(Re-Organization[再構成]とも言う)。用語としてハードフォークという言葉が多用されるが、非常に混乱を招くので「分岐」という言葉を使うことを推奨します。これまでの経緯・Segwit (Segregated Witness)署名部分を別管理にするというプログラムの変更のこと。ソフトフォークとして実装されます。トランザクションのサイズが小さくなる効果と、トランザクション展性問題を解決しサイドチェーンを利用しやすくする効果があります。・BU (Bitcoin Unlimited)1MBのブロックサイズを大きくするプログラムの変更のこと。ハードフォークとして実装されます。ブロックサイズをどこまで大きくするかについて動的な仕組みを持っており、そのためチェーンの一時的な分岐が起きやすいと言われています。・BIP9 (投票)プログラムの変更時に分岐が起きにくいようにするために、突然変更をアクティベート(有効化)するのではなく、事前に投票を行い十分な数の投票を得た場合に限り有効にする仕組み。過去NブロックでX%以上の支持があればプログラムの採用が決定し(ロックイン)、Yブロック後に変更が有効になる(アクティベート)仕組み。・BIP141Segwitによる変更をBIP9による投票によって行う提案であり、従前から投票は行われてきました。しかしX%の部分を95%にしていたためなかなかロックインされませんでした。・BIP148 (UASF[User Activated Soft Fork])なかなかロックインされないSegwitに業を煮やして投票によらずに強制的にSegwitを有効にしてしまおうという変更。投票ではなくある時期(8月1日 0:00 UTC)になったら有効化される。しかし少し変則的で8月1日になったらSegwitが有効化されるのではなく、8月1日になったらSegwit(BIP141)の投票を行っていないブロックを不正なブロックとみなすという変更でした。結果的に不正でないブロックは 100% Segwit支持となるのですぐにロックインし有効化されるというシナリオでした。しかし投票を介さないのでチェーンの恒久的な分岐の危機が高まりました。・BTC Cash / BitcoinABCBU をベースにしたハードフォークでUASFに対抗する形で提案された。UASFと同じで投票によらずに時刻で有効化する。当初は UASF が起きた場合に限りその12時間20分後に起きるように設定されていました。しかし7月18日になって UASF とは関係なく有効化すると宣言されました。・ニューヨーク合意(NewYork Agreement, NYA)過激な UASF により高まった分裂危機を収めるために Segwit と ブロックサイズの2MBへの引き上げを両方行うという合意。多くのマイナー、取引所などがサインをしました。・BIP91ニューヨーク合意の結果としてまずは UASF と同じことを投票形式で行うこととした。投票を7月21日に開始し 80% で有効と決める。UASF と同じこと、つまり Segwit(BIP141)に投票していないブロックは不正なブロックとみなします。しかしUASFと違うのは投票を行うことで、十分な賛成がなければ発動しないため分岐のリスクは殆どありません。・7月21日に BIP91 がロックイン開始後すぐに BIP91 が80%を獲得しロックインされました。その結果7月23日午後8時ごろには有効化され、その後1ヶ月以内に Segwit が有効化することが確実となりました。しかしロックインしたにもかかわらず一部のマイナーが Segwit(BIP141) のフラグを立てずにマイニングを行っていました。そのまま7月23日を迎えるとチェーンの分岐が起きてしまうという恐れから、一部では「ソフトフォーク(UASF)の危機が8月1日から7月23日に前倒しになった」という情報が出ました。しかしこの説明は完全に間違いで UASF が危機だったのは投票をしなかったからであってBIP91 は投票の結果これを行うのでネットワークの51%以上が裏切り者(ビザンチンノード)でない限り分岐は起きません。なお、そもそも51%以上のビザンチンノードを想定するのであればいつでも分岐は発生しえます。今回のこのマイナーの行動は不安を感じさせるものであったのは事実ですが、上記説明は理論的にも誤りであり、かつ、結果的にも誤りです。なお、実際にロックインの数時間後には多くのマイナーが Segwitフラグを立てるようになっており、7月23日の分岐のリスクは本日現在、考えにくいです。よくある質問・8月1日に分岐は起きるのですか?UASFによる分岐の可能性はなくなりました。しかしUAHF(BTC Cash)による分岐は起き得ます。・7月23日に分岐は起きるのですか?ネットワークに多数のビザンチンノード(裏切り者)がいない限り分岐は起きません。しかし小数のビザンチンノードや変更のことを知らない「のん気な」ノードによりいつもより多くの一時的な分岐(オーファンブロック)が作られる可能性があります。そのため普段は1確認で済ましている場合でも、6確認以上を待つことが推奨されます。・なぜ8月1日前後にコインの引出しや預入を停止する取引所があるのですか?UAHFによる分岐後にトランザクションが発生するとそのトランザクションが分岐したどちらのチェーンには入るのかあるいは両方にはいるのか予測がつきません。チェーンの分岐が一時的なのか恒久的なのか、一時的だとして何度も繰り返されるのか、なども予測できません。そのため確実に特定のチェーンでのみトランザクションを発生させるために分岐の予測される前後ではコインの引き出しや預入を停止する場合があります。・コインがなくなることはあるのでしょうか?ビットコインの転送を行わなければブロックチェーン上にあるコインがなくなることはありません。混乱期に転送を行うと意図していないチェーンのコインも一緒に移動してしまうことがあります。これを Replay Attack といいます。また分岐後に受け取るコインについてはその分岐が恒久的なものであるかどうかの見極めがきわめて重要です。一時的な分岐によるチェーンで受け取ったコインはなくなることはないものの、もうその分岐のチェーンでは新たなトランザクションが承認されることがないため使うことの出来ないコイン(≒無価値)となります。・ハードウェアウォレットに入れておいたほうが安全でしょうか?信用の置けない事業者にビットコインを預けておくよりは安全だと考えます。しかし、8月1日の分岐後にコインをそれぞれのチェーンで意図したとおりに送ることが出来ない場合は、ビットコインを分離送付できる事業者に預けておくほうが安全だと考えます。・分岐するとコインが2つもらえるのですか?分岐が恒久的なものであれば、分岐前のチェーンで保持していたコインは両方のチェーンで別々に利用することが出来るため2つもらえるのと同じことになります。但し、分岐後の2つのコインの価値がどのようになるかは市場により決定され、予測はできません。また、証拠金取引などのレバレッジサービスで保持しているコインについての扱いは事業者ごとに扱いが異なります。・マイナーのプログラムの変更は難しいのでしょうか?今回のシグナル発信をするためのプログラム変更はBit1フラグ・Bit4フラグを立てること、またBit1 が立ってないブロックを拒絶するという簡単な変更です。プログラムの更新によるリスクは、8月中旬に予定されているSegwitアクティベートの方が高いと言えます。・過去のBIP66では一時的な分岐が起きましたが23日も起きるのでは?過去BIP66においてReOrgが必要だったのは不用意なマイナーおよびプログラムのバグがあったからで今回は・ほぼすべてのマイナーがこのこと(BIP91)を知っている・上述の通りプログラム自体が単純なのでバグが起こりにくいの理由により大きなリスクはないと考えられます。・でもマイナーが嘘をついているかもしれないのでは?もちろんマイナーが悪意をもって(ビザンチンノード)シグナリングをし、悪意をもったハッシュパワーの存在を想定するのであれば、それは今回に限ったことではなく、ビットコインネットワークは混乱します。それを想定するのであれば23日に限らずいつでも一時的な分岐の可能性があります。もしビザンチンノードが51%以上いるのであれば恒久的な分岐もあり得ますが、これは今回に限らずブロックチェーンの根源を揺るがす事態です。・それでも通常より分岐リスクが大きいのではないでしょうか?23日に恒久的な分岐は起きません。一時的な分岐(オーファンブロック)は通常よりリスクが高く、23日は確認数を6以上に増やすことを推奨しています。この2つの記事を読めば、今起こっている事はほぼ理解できるはずです。その上で、さらに簡単にまとめます。・BIP91とはSegwit実装に向けた手順・7月21日に投票を開始し80%以上で有効となる・7月21日昼の段階で80%を超えてロックインされる(8月1日のUASFは回避)・BIP91の実際のアクティベートは7月23日の19時頃・この際にソフトウェアの不具合やマイナーが間違ったブロックを掘る可能性がある・上記の混乱を避けリスクを最大限に減らすために一部取引所は23日に取引を停止する → この事についてビットコインが分裂するという誤情報が流れている・8月1日よりBitcoin Cashが正式にリリースされる(UASFではない)・8月10日頃にSegwitがロックインされるこのように見ていくと、致命的に何かがおかしくなるということは、ほぼ無くなったように感じられます。「23日に分裂の危機が起こる」ということは全く無いので、それだけは確実に押さえておいてください。2017年7月31日(月) 23:59まで最大5000円分のビットコインがもらえる※新規登録日、取引は新規登録日から90日間有効コインチェックの登録はこちらから ↓あなたはどっちを選ぶ!銀行金利?資産運用?↓↓↓http://ameblo.jp/toacoinadream/entry-12294632631.html