Der Schnorr Zoo
Protokolle auf Taproot & mehr
Jonas Nick
nickler.ninja
Blockstream Research
- Forschung an
- Signaturverfahren
- Scriptsprachen (Miniscript, Simplicity)
- für das Bitcoin Protokoll, Wallets, Elements Sidechain, Lightning Network, etc...
- Sowie Beiträge zu Open Source Projekten wie Bitcoin Core, libsecp, rust-bitcoin, uvm.
Bitcoin Heute
Alice
Bob
bc1q... Adresse
bitcoin
Bitcoin nach Taproot Upgrade
Alice
Bob
bc1p... Adresse
bitcoin
mit Taproot
Taproot Aktivierung
- Taproot ist eingelockt, und wird Mitte November aktiviert.
- Das Bitcoin Regelwerk wird von Full Nodes durchgesetzt, also Computern mit Software die die Blockchain verifizieren.
- Für reibungsloses Update, muss überwältigende Mehrheit Taproot unterstützen.
- Heute (2021-07-28) sind es nur etwa 36% bis 41% der Full Nodes.
Meine Wallet benutzt eine eigene Bitcoin Full Node
Ich nutze die Zitadelle um das zu ändern
Ich update auf Bitcoin Core 0.21.1
Ich nutze Bitcoin Core Version (oder equiv.)
Ich stelle sicher dass meine Freunde Core 0.21.1 nutzen
Nein
Ja
< 0.21.1
0.21.1
Taproot Basics
Design Goal: Widerstandsfaehigkeit
- Widerstandsfaehigkeit gegenüber Einflussnahme einzelner Parteien
- Entscheidender Faktor: Benötigte Ressourcen für Full Node
I hope it's obvious it was only the centrally controlled nature of those systems that doomed them. I think this is the first time we're trying a decentralized, non-trust-based system.
Satoshi:
Schnorr Sigs in Taproot
Autorisierung von Transaktion:
In Blockchain: ECDSA Schnorr Signatur von Alices öffentlichem Schlüssel (Key)
Alice
Charlie
bitcoin
Der Schnorr Zoo
Taproot
TR + ½ Agg
TR + Agg
Batch Verify
Key Agg
Rek. Key Agg
Adaptor Sigs
on-chain
off-chain
Taproot
TR + ½ Agg
TR + Agg
Batch Verify
Key Agg
Rek. Key Agg
Adaptor Sigs
on-chain
off-chain
Schnorr Batch Verifizierung
- Ohne: Full Node muss jede Signatur in Blockchain einzeln verifizieren
- Mit: Full Node verfiziert einen Batch von Signaturen auf einmal
- Beispiel Batch = 10.000: Verifizierung doppelt so schnell
- Daher Full Node Ressourcenverbrauch reduziert
- Status: Proof-of-Concept Implementierung existiert
Weitere Design Goals
Tauglichkeit als Zahlungsmittel
(On-chain und Layer 2)
Überwachungsresistenz
Sicherheit von Wallets
Ununterscheidbarkeit
- Transaktionen haben gleiche Struktur, unabhängig davon ob sie einfache Zahlungen sind oder Teil komplexerer Protokolle.
- Erschwert Ausspähen mit Blockchain
- Layer 2 (L2) und Multisig kostengünstiger
Transaktion
Multisig?
Normale Zahlung?
Sidechain?
Lightning?
Taproot
TR + ½ Agg
TR + Agg
Batch Verify
Key Agg
Rek. Key Agg
Adaptor Sigs
on-chain
off-chain
Scripts versteckt in Merkle Tree
Taproot
TR + ½ Agg
TR + Agg
Batch Verify
Key Agg
Rek. Key Agg
Adaptor Sigs
on-chain
off-chain
Key Aggregation
- Beispiel: Alice, Bob und Charlie haben ein 2-aus-3 Multisig Wallet.
- Ohne: Alle drei Keys und zwei Signaturen müssen in die Chain geschrieben werden
-
Mit:
- Gemeinsamer Key
- Gemeinsam erstellte Signatur
- Daher ununterscheidbar zu normalen Transaktionen
A
B
C
ABC
MuSig vs MuSig2 vs FROST
-
MuSig: n-aus-n Multisig
- Status: Ersetzt durch MuSig2
-
MuSig2: n-aus-n Multisig
- benötigt weniger Kommunikation
- vor allem wichtig für Lightning Routing
- Status: Impl. & Spezifizierung im Gange
- benötigt weniger Kommunikation
-
FROST: m-aus-n multisig
- Beispiel: reduziert Kosten einer 11-aus-15 Multisig Federation um 75%
- Status: Impl. eines Prototyps im Gange
Taproot
TR + ½ Agg
TR + Agg
Batch Verify
Key Agg
Rek. Key Agg
Adaptor Sigs
on-chain
off-chain
Rekursive Key Agg
Alice Key 1
- Beispiel: Alice verteilt Schlüssel ihres Lightning Channels mit Bob auf mehrere Geräte
- Ohne: Änderung des Lightning Protokolls, Bob erkennt Alice's Setup
- Mit:
Alice Key 2
Alice Agg Key
Agg Key
Bob Key
- Status: Forschungsgegenstand
Taproot
TR + ½ Agg
TR + Agg
Batch Verify
Key Agg
Rek. Key Agg
Adaptor Sigs
on-chain
off-chain
Adaptor Signatures
- Beispiel: Atomic Swaps wie Lightning Payment, DLCs, Cross-Chain Swaps
- Ohne: Benötigt on-chain Hash
- Mit: Stattdessen off-chain Adaptor Signature
- HTLC: Hash Timelocked Contract, sichtbar on-chain, auf der Route dasselbe
- PTLC: Point Timelocked Contract
- Status: Spezifizierung (des Primitivs) im Gange
Lightning:
HTLC PTLC
HTLC PTLC
Taproot
TR + ½ Agg
TR + Agg
Batch Verify
Key Agg
Rek. Key Agg
Adaptor Sigs
on-chain
off-chain
Schnorr Half Aggregation
- Ohne: Blöcke enthalten (mind.) eine Signatur pro ausgegebenen Coin
-
Mit: Blöcke enthalten eine "halb-"aggregierte Signatur, die etwa halb so groß ist wie die Summe der einzelnen Signaturen
- Nicht-interaktiv
- Beispiel: 10 halb-aggregierte Signaturen benötigen Platz von 6 normalen Signaturen
-
Daher mehr Transaktion pro Block möglich
-
Status: Forschungsgegenstand, würde weiteren Softfork benötigen
Taproot
TR + ½ Agg
TR + Agg
Batch Verify
Key Agg
Rek. Key Agg
Adaptor Sigs
on-chain
off-chain
Schnorr Full Aggregation
- Ohne: Transaktionen enthalten (mind.) eine Signatur pro ausgegebenen Coin
- Mit: Transaktionen enthalten genau eine, aggregierte Signatur
- Größe gleich normaler Schnorr Signatur
- Signieren ist interaktiv
- Kleinere Transaktionen, schafft Anreiz für CoinJoin
- Status: Forschungsgegenstand, würde weiteren Softfork benötigen
Zusammenfassung
- nickler.ninja/slides/
- Full Nodes updaten!
- Widerstandsfähigkeit ist A und O
- Überwachungsresistenz
- Tauglichkeit als Zahlungsmittel
- Sicherheit von Wallets
- Ununterscheidbarkeit
- Key Aggregation: Aggregierung in einem Multisig Wallet
- Sig Aggregation: Aggregierung über Wallets hinweg
Zusammenfassung
Protokoll | Anwendung | Nutzen | Status (inkl. Warten auf TR) |
---|---|---|---|
Batch Verify | Schnelleres Verifizieren | Full Node Ressourcen | Prototyp Impl. |
TR Merkle Tree | Versteckte Script Paths | Kleinere Txs, Überwachungsresistenz | - |
MuSig | n-aus-n Multisig | Kleinere Txs, Überwachungsresistenz | Ersetzt durch MuSig2 |
MuSig2 | " | " | Spezifizierung in Gange |
FROST | t-aus-n Multisig | " | Impl. in Gange |
Rek. Key Agg | Multisig aus Multisigs | L2 Tricks | Forschungsgegenstand |
Adaptor Sigs | Swaps, HTLCs | nützlich fuer L2, Überwachungsresistenz | Spezifizierung in Gange |
Blind Sigs | Blind Swap | Überwachungsresistenz | Anwendungen? |
Half Agg | Alle Txs | Kleinere Txs | Forschungsgegenstand, benötigt Softfork |
Full Agg | Alle Txs | Kleinere Txs | Forschungsgegenstand, benötigt Softfork |
Schnorr Zoo
By iamjon
Schnorr Zoo
- 276