Bitcoin(ビットコイン)とBitcoin CashのMalleability(可鍛性)を修正すべきなのか?

まとめ(30秒News)
・可鍛性が保証された状態でBitcoinの取引をすると、ブロックに入る前に取引ID(txid)を変更することができる。
・開発者が扱い安く、順応性が高いという利点はあるものの、それを利用して騙すことも可能というリスクがある。
・可鍛性を保証するための唯一の利点は、確認されていない親トランザクションに対する0-confの信頼性を高めることであろう。しかし、採用していいくには時間を要するだろう。
あなたがビットコイナー或いは仮想通貨愛好家であれば、この「可鍛性」とは何か疑問に思うだろう。

Bitcoin(ビットコイン)とBitcoin Cashに対するMalleability(可鍛性)とは?

Bitcoinの取引をすると、ブロックに入る前に取引ID(txid)を変更することができるということだ。
取引IDとは、あなたの取引の “レシート番号”のようなものだと考えると良い。第三者は、資金の受取人、金額、手数料を変更することは不可能だ。

機能やバグ?

Bitcoinは、Elliptic Curve Digital Signature Algorithm(ECDSA)と呼ばれる種類の暗号を使用し、これらのデジタル上での署名に可鍛性がある。例えば、(r、s)であるECDSAは、(r、-s)と整理することも可能だ。
 ECDSAは本質的に可鍛性であり、署名は各取引の一部であるため、Bitcoinの取引における順応性が高くなる。
このような可鍛性を利用して騙すことだってできる。以前起きたMt Goxの事件はこの可鍛性に起因している。

ツールとしての可鍛性

可鍛性の利点の1つは、他のプロジェクト(Lightning Networkなど)を容易に実装できることである。
利点のもう1つは、Walletの開発者が扱いやすいという点だ。たとえば、各取引をtxidで容易に管理できるからである。

0-Confトランザクション

ここで私が「非問題」と考えるものについて議論したところで、実際の問題に直面するだろう。これには、0-confトランザクションと関係がある。
ビットコインでは、マイナーがそれをブロックに含めると取引が確認され、そのブロックをブロックチェーンに公開する仕様になっており、確認が多いほど、取引はより健全なものとなる。まだブロックに含まれていないトランザクションは、未確認、保留中、または “0-conf”と認識され、確認されていない取引は安全性が低いことを意味する。Bitcoin Core’の哲学は、高い料金を支払ってシステム構築してもらう必要があり、、適切な高額手数料を払わない限り、確認されていない取引には確認に時間がかかる。
これを0-confにより安全で信頼性の高いものにするだろう。
通常、マイナーは取引を整理しない。彼らがそこから利益を得ることができないためである。
しかし、このようなことが起こったとしても、影響を受けるためには、未確認の親との取引が必要になります。そして取引を攻撃側の鉱夫が掘り起こして採掘する必要があります。
たとえそれが起こったとしても、取引は失敗し、取引はすぐに無効になるため、財布はすぐに財布に戻されます。

実際にはどういった問題があるのか?

トランザクションが失敗した場合、通常、自宅にいるインターネットユーザーには問題はありません。しかし、現実の生活では、マイナーがそれを整理する(小さな)リスクがある場合、未確認の親との取引を受け入れたくないかもしれない。
これらの取引の1つのソースはアドレスの変更だ。たとえば、20ドルの未出金の出品で2ドルのアイテムを購入すると、18ドルの変更が戻ってくる。そして、18ドルは未確認の状態になる。
Bitcoin Coreでは、簡単にコーディングできるようにするため、可用性を修正したいと検討している。

2つのアプローチ

展性を修正しようとする場合、2つの基本的なアプローチがある。
最初に、シグネチャの生成方法の詳細を指示するコンセンサスルールを追加するといったアプローチだ。これはBip62で試されたが、コンセンサスの変化著しく、実際には難しいフォークになるため、Bipは却下された。手数料が低いときは、値を分割して組み合わせることは簡単かつ安価に行うことができます。これがより一般的であるほど、ブロックチェーン分析がますます負担と複雑になるため、プライバシーが増加します。
第2のアプローチは、署名がトランザクションハッシュの一部でないように、ブロックおよびトランザクション構造の変更を含むことである。
これはSegwit、Flex Trans、MalFixのアプローチだ。
私たちがハッシュに署名を含めなくなったら、それは何を意味するのか?
Bitcoinのホワイトペーパーは、以下のように説明している:
我々は、デジタル署名のチェーンとして仮想通貨を定義する。それぞれの所有者は、以前の取引のハッシュと次の所有者の公開鍵に署名し、こういった一連の流れを続けることによって、次の所有者へ取引していく。
これらの展性修正(Segwit、Flex Trans、およびMalFix)のすべてが変更される。以前の取引のハッシュに署名する必要がなくなり、署名(最も重要な部分)がないトランザクションのみに署名し、その署名をブロックのどこかに入れる。

SegWit

SegWitのファンには申し訳ないが、すべての展性提案の中で、SegWitは最悪だ。シグネチャはアップグレードされていないクライアントではオプションで、全員が破棄できるため、Bitcoinセキュリティモデルが弱くなるだろう。

FlexTrans

Flextransはより良い方法だ。これは、コードの数行だけを変更するハードフォークである。取引はSegWitの場合と同様に破棄することはできない。また、すべての取引の可用性は保証されている。
それでも、デジタル署名のチェーンとしてのBitcoinの厳密な定義(1つのトランザクションから次のトランザクションまで)は保持されない。

FlexTransは署名によるブロクチェーンなのか?

FlexTransなどの開発計画では、署名はまだブロック内にあり、ブロック全体のハッシュの一部になります。
そのハッシュは次のブロックで使用される(Segwitとは違い、次のブロックで使用されない第2のMerkleツリーに署名を追加する)。
Flextransセキュリティモデルは元のBitcoinよりも弱いとは言えない。
FlexTransとアイデアはそれをもっと学ばなければならない
一方、FlextransはホワイトペーパーのBitcoinからの変更だ。
取引と署名を分離するという方法は複雑であり、マイナーが今後さらなる(望ましくない)変化を起こしやすくするように思われる。
Flextransのような方法はもっと深く研究され、拡大のためにテストするべきだ。そして、その費用対効果を慎重に評価する必要がある。
最善の選択は何もしないこと
先日、reddit上で、ビットコインにいくつかの「オフチェーン」スケーリングが含まれるべきかどうかの質問が挙げられ、u / coincrazyyは次のようにコメントした。
私達は、私たちが必要としている時にこれをやります。最初はギガロックと$ .01の取引で初の億万長者を手に入れましょう。存在しない問題を解決しないでください
同じ考え方が展性にも適用されるべきだ。
確かに、可鍛性を保証するための唯一の利点は、確認されていない親トランザクションに対する0-confの信頼性を高めることであろう。
しかし、我々が採用していくには時間を要する。
参考文

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です