Noritamaの仮想通貨交遊録

どーもー、Noritamaです。ここは、仮想通貨関連、プログラミングの話題について記事にします。

間違いやすい、仮想通貨のハードフォーク・ソフトフォーク

f:id:Noritama0308:20180216011856j:plain

こんにちは、Noritamaです。
最近は、Airdropに没頭中です!!
twitterAirdrop情報を載せているので、よければフォローをお願いたします!!

twitter.com




今回は、仮想通貨のハードフォーク・ソフトフォークについてです!!
自分でも勘違いしていたことがたくさんありましたのでまとめてみました!!


それでは、はりきってどうぞ!!

フォークの分類

f:id:Noritama0308:20180215235935j:plain

ブロックチェーンにおける「フォーク」とは分岐を意味し、本来は一本鎖であったブロックチェーンが分岐して二本鎖になってしまうことです。


上記の図のように、分類されます。


ただのフォーク

f:id:Noritama0308:20180216000139j:plain

ただのフォークは、ブロックチェーンがマイニング(PoW)に成功した時に起こります。
二つのマイナーが同時にマイニングすると、一時的にブロックチェーンが分岐します。


多くのブロックチェーンにおいては、「最も長いブロックチェーン」や「最も計算が積み重なっているブロックチェーン」をメインチェーンとする、とプロトコルで定めてありますので、分岐した一方のチェーンはデータ的になかったことになります。


ルール変更

f:id:Noritama0308:20180216000838j:plain


技術的なアップデートのため、プロトコルのルールが変更されることが多々あります。
windows 7 から windows 10 にアップグレードするようなものです


前項では、マイニングでブロックチェーンの同時生成での分岐(ただの分岐)では一時的なものでしたが、プロトコルルールの変更での分岐永久的なものになります。


さらに、ルール変更によるフォークはハードフォークソフトフォークに分けることができます。


ソフトフォーク

f:id:Noritama0308:20180216001658j:plain


ソフトフォークによるルール変更では、アップデート前のプロトコルでもアップデート後のプロトコルでも互換性があります。
したがって、アップデートしていないノードもアップデート後のトランザクションの検証および承認を行うことができます


しかしながら、ソフトフォークが実施された後、アップデートをしていないマイナーが生成したブロックはブロックチェーンに追加されることはありません。


例えるならば、windows7 は引き続き使用できるが、ソフトウェア開発者は最新版のwindows 10に対応しなければならないみたいなことです。
当然、windows 10の方が便利とされているので、ユーザーもだんだん最新版のwindows10に移行していくことになります。(私は今だwindows7です。笑)


ただし、ソフトフォークにも旧ブロックチェーンが伸びていくなどのリスクがあるので、ビットコインにおいてはマイナーの95%以上の同意がなければソフトフォークは実施されないようになっています。

ソフトフォークの例

  • P2SH
  • Segwit

ハードフォーク

f:id:Noritama0308:20180216002857j:plain

ハードフォークは、ソフトフォークと違ってフォーク前後のバージョンに互換性がありません
したがって、ハードフォークを実施するときはネットワークに参加する全てのノードが一斉にフォーク後の新しいブロックチェーンを使用する必要があります。でなければ、ネットワークが分離してしまいます。


例えるなら、Windows 98はつかえないよ。明日までに、Windows10にしてね。みたいなことです。


ブロックチェーンで使われるコインは別物になるので、送金トラブルが多発する可能性もあります。もちろん大きなプロトコル変更も伴うのでバグが生じる等、ハードフォークはソフトフォークよりもリスクが高いことが分かります。

ハードフォークの必要性

ハードフォークは互換性のないアップデートである分、柔軟にコードを変更することができ大規模なアップデートを行うことが可能ですが、
ソフトフォークは互換性のあるアップデートしか行えないため、制限のあるルール変更しかできないのです。


新しいルールが導入されるだけなら旧バージョンのルールも含まれていることになりますが、ルールが削除されるとなると旧バージョンのルールが適用できないことになるので互換性がなくなってしまうことが多いみたいです。


また、ハードフォークを行う動機によって三種類に分類できます。


計画的なハードフォーク

f:id:Noritama0308:20180216004124j:plain


計画的なハードフォークとは、あらかじめプロジェクトのロードマップで「どのタイミングでどのようなルール変更を伴うハードフォークを行うか」ということを決めていたハードフォークです。ロードマップ等で、アナウンスされていることが多いです。


プロジェクトの参加者はハードフォークの内容とタイミングをあらかじめ把握しているので、比較的安全にハードフォークを実施することができます


イーサリアムは、ディフィカルティボムというプロトコルが導入し、計画的にかつ安全にハードフォークを実施しています。

計画的なハードフォークの例

  • モネロのRCT(Ring Confidential Transactions)


イーサリアムビザンチウムは、ロードマップで考えられている第3段階目のハードフォークの前半部分で2017年10月に実施され、トランザクションの匿名性が向上するなどしました。


モネロのRCTは2017年1月にハードフォークで導入されトランザクションのプライバシーおよびセキュリティが向上しました。


意図しないハードフォーク

f:id:Noritama0308:20180216005113j:plain


意図しないハードフォークは、ロードマップに記されておらず、発見された脆弱性の改善やコミュニティ内で思想が合わない等により、一部参加者がハードフォークにより分裂することです。


脆弱性改善の場合はコミュニティ全体がハードフォークを望んでいることが多いのでスムーズに実施されることが多いです。


方向性の違いなどによる場合は、コミュニティも分裂し、仮想通貨の価格にも大きく影響することが多いみたいです。

意図しないハードフォークの例


イーサリアムクラシックでは、DAOというハッキング事件が発端でコミュニティの分裂が起きたハードフォークです。DAOはデータ的になかったことにしようとするハードフォークに対し、一部のコミュニティ参加者は反対しハードフォーク後も旧バージョンのブロックチェーンがマイニングされ続けているのです。この旧バージョンのブロックチェーンを使用している仮想通貨がイーサリアム・クラシックになります。


ビットコインキャッシュは、送金をより早くより少ない手数料で行われるようにビットコインからハードフォークした仮想通貨になります。ビットコインキャッシュは、ブロックサイズを現行の1MBから引き上げる方針であったのでハードフォークが必要となりました。


新コインの派生

f:id:Noritama0308:20180216010021j:plain


仮想通貨はほとんどがオープンソースであり、誰でもそのソースを参考にして機能を変えることで新しい仮想通貨を生み出すことが可能です。
これらもハードフォークだといえます。

新コインの派生の例

  • Litecoin
  • SHEILD
  • COLX

etc.


LitecoinはBitcoinの派生として、広く知られています。違いについては



このようにハードフォークであれば根本的な機能を変更することができるので、十分なコミュニティの規模があればビットコインをベースとした派生コインを誕生させることが可能なのです。

COLXについてはこちらの記事をごらんください
noritama0308.hatenablog.com


まとめ

どうでしたでしょうか、私もかなり勘違いしていたことも多々ありました。
こうやって、フォークによって様々なコインが生まれるのも、仮想通貨の醍醐味と言えます。

この記事を書くにあたって、以下のブログを参考にしました。
【まとめ】ブロックチェーンにおけるソフトフォークとハードフォークの違い


それでは、またの機会に!!


仮想通貨は、リスクがあります。ここでの情報を鵜呑みにせず、ご自身で良く調べてから投資してください。
ここで得た情報で損失が発生しても一切の責任は負えません


よかったら投げ銭をお願いいたします!!今後のやる気に繋がります(笑)

BTC:
33ohnQPJHwDNQZvdsn9RhqMCX3xUNNs7m1

f:id:Noritama0308:20180207024841p:plain

ETH:
0xC2e4851120689191515a55A91c822BC27A70893a

f:id:Noritama0308:20180207024903p:plain

XRP:
tag:1033106

アドレス:rw7m3CtVHwGSdhFjV4MyJozmZJv3DYQnsA

TRX:
0x4f01694feb817406a9e2b88781909f9af2d90aaf