今更ながらSegwitについて
Segwitという技術について話すと、
Segwitというのは実は略称で、正確にはこれは"Segregated Witness"と言う、わしはこれを日本語では"署名分離"と言っているが、このSegwitによって、旧来のトランザクション(TX)では、TXデータに"署名"が一緒に入っていたが、これを分離して、別の場所に保管する。
署名を分離することによる利点はいくつかあって、
1つ目は、署名部分をモジュール化することで署名部分の変更を容易にする。今はこれにより、署名方式をECDSAからシュノア署名に変更しようという動きもある。
2つ目に、トランザクション変形性(トランザクション展性と良くいわれるが、わしはこっちの訳語を使う)によって同じ内容のTXを違うIDで発行させることを防げる、これはMt.Goxが資金を失った原因の1つでもある。
3つ目に、これはソフトフォークで済む、つまり古いクライアントとの共存が可能。ビットコインはあまりに普及しすぎており、混乱を防ぐためにソフトフォークで済ませ、簡単にハードフォークをしたくないという問題がある。
(続く) #MSTL
今更ながらSegwitについて 2
また、Segwitが有効化されると、同時に、ブロックに入るデータが増えるのと、Lightning network(Layer 2技術)が使えるようになるという画期的なメリットもあった。これれは送金手数料を引き下げるのに役立つ。(当時は結構送金需要が増えてきて送金手数料が気になり始めた時期もある)
ところで、Segwitについての提案は、結構大きな変更なので3つの提案によってSegwitの全部が作られ、2016年1月時点で一応は仕様が固まった。
https://github.com/bitcoin/bips/blob/master/bip-0144.mediawiki
しかし、実際にSegwitが有効になったのは2017年8月で、なぜかなり時間がかかったかというと、実は同じころ、Bitmainのマイニング用ASIC(マイニング専用機械のこと、今後単にASICと書く)には特殊なマイニング最適化アルゴリズムASICBoostを採用したASICを売りに出し始めていたが、Segwitによってこれが意味がなくなってしまう問題があったからである。
https://blockchain.gunosy.io/entry/mining-asicboost
(続く)
今更ながらSegwitについて 3
そのため、ASIC製造元のBitmainが運営するマイニングプール、Antpoolやその傘下のマイニングプールや中国系プール(Bitmainがそもそも中国企業)は、Segwitに反対し、また、ASICBoostが無効化されないからという本音を隠して、ブロックサイズ引き上げ以外での方法を認めようとしなかった。
2016年中は中国勢は謎の理由によってSegwitに反対しているという認識だったが、ASICBoostについて明るみに出始めたのが2017年、そこから世論的に不利になってきて、本音の部分がバレてしまい始めた、また、2017年7月前後に、あまりにSegwit導入に時間がかかりすぎてコミュニティの一部の人たちが怒り、「強制的に一定ブロックからSegwit有効のシグナルしか出さず、Segwit無効のブロックを受け入れない版」のビットコインクライアントを作ったり、コミュニティ分裂などの一触即発の危機が発生し、ついに2017年8月になってSegwit導入をしぶしぶ認めた。(続く) #MSTL