4.7 KiB
Executable File
Relevant BIPs
Understanding the following BIPs is relevant for the project.
BIP documents
- BIP 340 - Schnorr Signatures for secp256k1
- BIP 341 - SegWit version 1 spending rules
- BIP 342 - Validation of Taproot Scripts
- BIP 114(Rejected but interesting) - Merkelized Abstract Syntax Tree
- BIP 65 - OP_CHECKLOCKTIMEVERIFY
- BIP 174 - Partially Signed Bitcoin Transaction Format
- BIP 370 - PSBT Version 2
- BIP 327 - MuSig2
BIP Readtrough videos
Taproot
!Taproot output structure.canvas
Spending Taproot UTXOs
Videos
- Introduction to Taproot - Nicolas Dorier - short video
- Very good, practical introduction to coding taproot Transactions - Bitdevs LA
Workshop
Bitcoin Optech Schnorr Taproot Workshop
Descriptors/Miniscript
We can use Descriptors/Miniscript to precisely and human readable describe the Transaction outputs of the escrow transaction pipeline. This improves readability and portability of the pipeline.
Videos
- Using BDK and Wallet descriptors for Taproot - Video - Bitdevs LA
- Introduction to Miniscript - Port of Bitcoin
- Getting started with Miniscript - Andrew Poelstra
Websites
- Miniscript introduction/compiler/specification
- https://bitcoinops.org/en/preparing-for-taproot/#taproot-descriptors
Signature/Pubkey aggregation
To combine multiple parties pubkeys to a single combined Taproot pubkey and to create a aggregated signature with all participants MuSig2 is relevant.
Videos
- MuSig2 in Taproot - Nicolas Dorier - higher level explanation
- MuSig2: Simple Two-Round Schnorr Multi-Signatures - very detailed, more crypto focused explanation
ROAST
Sighash Types
Maybe sighash flags could be a useful tool? It's possible to construct a transaction with multiple inputs/outputs from different parties using signatures committing only to specific inputs or outputs.
Canvas
Blog articles
Blog article on Sighashes - good examples - Raghav Sood
Signature Hash Flags Medium Article - enigbe ochekliye
How to make taproot transactions? (Example transactions)
https://github.com/danielabrozzoni/multisigs_and_carrots (Best Example I could find)
https://bitcoindevkit.org/blog/2021/11/first-bdk-taproot-tx-look-at-the-code-part-1/ (Interesting read)
https://github.com/bitcoin-core/btcdeb/blob/master/doc/tapscript-example-with-tap.md (Good code for spending taproot transactions)
https://dev.to/eunovo/a-guide-to-creating-taproot-scripts-with-bitcoinjs-lib-4oph (Can look at this, this uses bitcoinjs-lib to create taproot scripts)
Partially signed bitcoin transactions
Bitcoin Optech collection of sources
PTLC's
https://voltage.cloud/blog/lightning-network-faq/how-do-htlc-work-lightning-network/ Replacing HTLC's https://bitcointalk.org/index.php?topic=5455282.0 https://extheo.hashnode.dev/point-time-locked-contracts-part-one https://suredbits.com/ptlc-proof-of-concept/