Was macht die Implementierung der Cross-Input-Signaturaggregation kompliziert?

Nov 27 2020

Was macht die Implementierung der Cross-Input-Signaturaggregation kompliziert? Außer aus Gründen des Designraums, warum hat es es nicht in BIP-Taproot geschafft? (Die Schlüsselaggregation innerhalb einer Eingabe kann mit MuSig, MuSig2 usw. erreicht werden, Signaturen können jedoch mit BIP-Taproot nicht über verschiedene Eingaben hinweg aggregiert werden.)

Diese Frage wurde von Thorkil Vaerge auf Twitter gestellt .

Antworten

2 MichaelFolkson Nov 27 2020 at 05:07

Pieter Wuille hat dies auf Twitter beantwortet .

Die wichtigste Komplikation der Cross-Input-Aggregation wird in diesem Beitrag der Bitcoin-Entwickler-Mailingliste von AJ Towns erläutert .

TL; DR: Wenn Softforks ändern, welche Signaturen überprüft werden, dürfen sie nicht ändern, was zusammen aggregiert wird. Dies ist besonders kompliziert, wenn sie mit dem OP_SUCCESSx-Upgrade-Mechanismus von BIP341 interagieren, wodurch zukünftige Softforks die Skriptsemantik leicht vollständig ändern können. Hier gibt es nichts grundlegend Schwieriges - es ist nur technische Komplexität, um sicherzustellen, dass alles gut zusammenarbeitet.

Pieter fügte bei einem sokratischen BitDevs- Seminar in London über BIP-Taproot hinzu:

Graftroot- und Cross-Input-Aggregation sind so tiefgreifende konzeptionelle Änderungen. Sie können nicht zulassen, dass sie später gebaut werden. Es ist eine solche strukturelle Änderung der Funktionsweise von Skripten. Diese Dinge können nicht einfach später über Taproot hinzugefügt werden. Du brauchst einen Nachfolger. Bei der Cross-Input-Aggregation ist das Konzept der Skriptüberprüfung nicht mehr eine Sache pro Eingabe, sondern eine Sache pro Transaktion. Sie können es nicht mit optimaler Effizienz tun, ich denke, Sie können Dinge erfinden. Die Art der Erweiterbarkeit, die eingebaut ist, sind neue Opcodes, neue Arten von öffentlichen Schlüsseln, neue Seufzer-Typen. All diese Dinge sind ziemlich einfach und haben fast keine Nachteile im Vergleich dazu, dass sie nicht sofort ausgeführt werden. Echte strukturelle Änderungen an der Skriptausführung, sie brauchen etwas anderes.