Transaction malleability

提供: tezos-wiki
Transaction Malleabilityから転送)
移動先: 案内検索

transactionが署名されている間、署名は現在、トランザクションハッシュを作成するためにハッシュされたトランザクション内のすべてのデータをカバーしていません。したがって、珍しいことではありますが、ネットワーク上のノードが送信するトランザクションを、ハッシュが無効になるように変更することは可能です。これは単にハッシュを変更することに注意してください。トランザクションの出力は同じままで、ビットコインは意図された受信者に送られます。しかし、これは、後のトランザクションが以前のトランザクションのハッシュに依存するため、未確認のトランザクションの連鎖を受け入れることは安全ではないことを意味します。これらのハッシュはブロックで確認されるまで変更できます(ブロックチェーンが再編成された場合には確認の後でさえも潜在的に)。さらに、クライアントは常にトランザクションをアクティブにスキャンする必要があります。前に作成したクライアントが安全でないためにtxoutが存在すると仮定します。

署名の可鍛性[編集]

展性の第一の形態は署名そのものです。各署名にはDERでエンコードされたASN.1オクテット表現が1つしかありませんが、OpenSSLはこれを強制しません。署名がひどく不正でない限り、それは受け入れられます。<ref> https://bitcointalk.org/indexすべてのECDSA署名(r、s)に加えて、署名(r、-s(mod N))は同じメッセージの有効な署名です。<ref> https://bitcointalk.org/index.php?topic=8392.msg1245898#msg1245898 </ ref>

ブロック363724現在、BIP66が起動から施行に切り替わったのはいつですか?]、2015年7月6日、StephenM347、Bitcoin.StackExchange </ ref> BIP66ソフトフォークは、DERでエンコードされたASN.1標準に厳密に従うようにブロックチェーン内のすべての新しいトランザクションが必須になっています。 DERシグネチャ内で他の可能な可鍛性を閉じるためのさらなる努力がまだ進行中である。

署名は、対応する秘密鍵にアクセスできるすべての人が変更できます。

scriptSig可用性[編集]

Bitcoinで使用される署名アルゴリズムは、署名を作成するscriptSigに署名しません。 scriptSig全体に署名するのは不可能です。署名は署名することになります。これは、必要な署名と公開鍵よりも前にスタックにプッシュされるように追加データを追加できることを意味します。同様に、OP_DROPを追加して、scriptPubKeyの実行前に以前と同じようにスタックをそのまま残すことができます。

scriptSigの順応性も同様に考慮されています。現在、scriptSig内のデータプッシュ操作以外のトランザクションは非標準と見なされ、リレーされず、最終的にこのルールは実行後にスタックに正確に1つの項目があるように強制することができます。ただし、これを行うと、後でBitcoinに拡張される可能性があります。

参考文献[編集]

<リファレンス/>

Category:技術 Category:開発者