BCHの開発中や議論中のプロポーザルまとめ

こんにちは! Androidエンジニアの ゆいき @yuikimil です

今回はBCH(Bitcoin Cash)の直近の開発済、開発中、議論中のプロポーザルをさくっと2~3行程度でまとめてみました!

次回の11月のハードフォークにも取り入れられるかも...?という項目群です

開発完了

Grapheneはつい先日、開発が完了し、アクティベーション待ちの状態です

Graphene

ブロックを従来より効率よく伝播する技術
ブロック作成時にブロードキャストしなければならないトランザクションの集合をIBLT(Invertible Bloom Lookup Tables)を利用して最適化します

IBLTについてはこの記事が詳しいです
O(1) block propagation · GitHub

開発中

以下は開発中の項目で、次のハードフォークで取り入れられる可能性が高いものです

  • Canonical Transaction Ordering
  • Revised DAA (w/ PID control)
  • OP_DATASIGVERIFY
  • Double spend proof creation and forwarding
  • UTXO commitments

各項目について簡単に説明します

Revised DAA (w/ PID control)

DAAに室温調整など工学で使われるPID制御アルゴリズムを採用することで、ブロックの生成間隔を理想の間隔に最適化します

Canonical Transaction Ordering

ブロックにおけるトランザクションのソートアルゴリズムです
これがあることで上述したIBLTを利用した際に、ブロック内のトランザクションの順序に関する情報をピアに教える必要がなくなります

OP_DATASIGVERIFY

既存の OP_CHECKSIG ではトランザクションの署名しか検証できませんが、OP_DATASIGVERIFYを用いるとスタック上の任意のデータの署名を検証することができます

これを用いるとオラクルなどの任意のデータの真正性を検証できます(正当性は検証できません)

UTXO commitments

ある時点(ブロック)で存在するUTXOの集合に対して一意に決まる32バイトのハッシュを作成します
EthereumにおけるState treeのルートハッシュのようなものと言えばいいでしょうか

こうすることで、BCHでもフルノードにおいて全データを保持しないfast syncモードが可能になります
Ethereumのフルノード geth にある --fast オプションのようなものを実現しようとしています

議論中

以下は議論中の項目です

  • Representative Tokens
  • Double Spend Notifications
  • Bobtail
  • One Way Aggregate Signatures
  • Switch standard denomination to 'bits'
  • Avalanche
  • Chain ID

こちらも各項目について簡単に説明します

Representative Tokens

新しいOP_CODE OP_GROUP を追加することで、BCH上でカラードコイン(トークン)を作成できるようにしようという提案です
賛成派もいれば反対派も居て、相容れない状態になっているようです…

ちなみに OP_GROUP についてはこの記事が詳しいです
techmedia-think.hatenablog.com

Double Spend Notifications

Double spendが試行されていることを検知すると、他のノードにすぐに知らせるようにします
このようにすることで、0-confの信頼性を向上させます

Bobtail

double spendやselfish miningを阻止するために、ブロック生成間隔のばらつきを小さくします
具体的には、ある標本(ブロック間の時間群)の順序統計量の頭からk個の平均値を現在のターゲットと比較することによってターゲットを調整します

One Way Aggregate Signatures (OWAS)

トランザクションの匿名性を上げるための新しい署名方式です
しかし、OWASは遅いという欠点があり、Mimblewimbleではその問題を解決しています

Switch standard denomination to 'bits'

1/1,000,000 BCHを1 bitsと表記しようという提案です
cash にしようという話もあって、redditでは結構議論になっていたりします…

www.reddit.com

Avalanche

Avalancheはゴシッププロトコルから影響を受けた準安定(Metastable)な仕組みを用いて成り立つ新しいBFTなコンセンサスプロトコルの提案です
DAGを用いて投票を行い、4秒の確認時間で1300tpsという高スループットを可能にします

Chain ID

DDA(Due Diligence Agent)が本人確認をして、ブロックチェーンにユーザ情報を書き込み、その情報を用いて送金を行います
送金の都度に送金先の承認が必要となり、誤ったアドレスに送ってしまうのを防ぎます(ウォレット側の実装が必要)

まとめ

今回は2~3行でまとめた程度なので、より知りたい人はWP読むなどしてみてください!

僕はAvalancheについてリサーチしてみようかなと思っています📝

宣伝

今度、Mobile Dev.向けにビットコインのハッカソンやります!

↓来てください!!↓ connpass.com

参考文献