diff --git a/docs/TapTrade_obs/.obsidian/workspace.json b/docs/TapTrade_obs/.obsidian/workspace.json index 317d452..9b2399e 100644 --- a/docs/TapTrade_obs/.obsidian/workspace.json +++ b/docs/TapTrade_obs/.obsidian/workspace.json @@ -1,18 +1,22 @@ { "main": { - "id": "80a386d23cb49933", + "id": "76683aed2c650663", "type": "split", "children": [ { - "id": "c01e7ef9b6783479", + "id": "beaad7e2dbdb6c54", "type": "tabs", "children": [ { - "id": "117cb3f7c46e67c9", + "id": "1982ff791d557542", "type": "leaf", "state": { - "type": "empty", - "state": {} + "type": "markdown", + "state": { + "file": "Research/Implementation/Libraries.md", + "mode": "source", + "source": false + } } } ] @@ -21,15 +25,15 @@ "direction": "vertical" }, "left": { - "id": "e6a26e5c5b019a1e", + "id": "1f18a06ed3171922", "type": "split", "children": [ { - "id": "3f3159116396a08c", + "id": "11e472dd0e54a674", "type": "tabs", "children": [ { - "id": "35cfcb845e434840", + "id": "6f7c037acc5d6b50", "type": "leaf", "state": { "type": "file-explorer", @@ -39,7 +43,7 @@ } }, { - "id": "0e07985fb8283f1e", + "id": "5dec62ac9c33787e", "type": "leaf", "state": { "type": "search", @@ -54,7 +58,7 @@ } }, { - "id": "738df028c16ab1b9", + "id": "573dc2630a59cc16", "type": "leaf", "state": { "type": "bookmarks", @@ -65,22 +69,23 @@ } ], "direction": "horizontal", - "width": 329.5 + "width": 300 }, "right": { - "id": "5f13d93e126071cf", + "id": "218b4a302bff5924", "type": "split", "children": [ { - "id": "985598abe7b3b823", + "id": "a083e155ae31f912", "type": "tabs", "children": [ { - "id": "dc77dc1e126c6c92", + "id": "16a07ffa6259c80e", "type": "leaf", "state": { "type": "backlink", "state": { + "file": "Research/Implementation/Libraries.md", "collapseAll": false, "extraContext": false, "sortOrder": "alphabetical", @@ -92,18 +97,19 @@ } }, { - "id": "1cfcab3d82b07a15", + "id": "10c5e5ed647927e5", "type": "leaf", "state": { "type": "outgoing-link", "state": { + "file": "Research/Implementation/Libraries.md", "linksCollapsed": false, "unlinkedCollapsed": true } } }, { - "id": "d24ff84f08dd4825", + "id": "51b24aa8f245d50e", "type": "leaf", "state": { "type": "tag", @@ -114,11 +120,13 @@ } }, { - "id": "623d6cb84168c727", + "id": "839ebdb69d764b83", "type": "leaf", "state": { "type": "outline", - "state": {} + "state": { + "file": "Research/Implementation/Libraries.md" + } } } ] @@ -132,45 +140,12 @@ "hiddenItems": { "switcher:Open quick switcher": false, "graph:Open graph view": false, - "daily-notes:Open today's daily note": false, "canvas:Create new canvas": false, + "daily-notes:Open today's daily note": false, "templates:Insert template": false, "command-palette:Open command palette": false } }, - "active": "117cb3f7c46e67c9", - "lastOpenFiles": [ - "Research/Trade Pipelines/new concepts/random pipeline 1 tbd.canvas", - "Research/Trade Pipelines/current trade flow.canvas", - "Research/Bitcoin fundamentals/Knowledge sources.md", - "Research/Bitcoin fundamentals/Signature and Flags.canvas", - "Research/Implementation/Libraries.md", - "Research/Trade Pipelines/Existing research.md", - "signet-instance.md", - "Research/Trade Pipelines/new concepts/Untitled.md", - "Research/Trade Pipelines/new concepts", - "Research/Bitcoin fundamentals/Taproot output structure.canvas", - "assets/anyonecanpay.webp", - "Research/Bitcoin fundamentals/Spending Taproot UTXOs.md", - "Research/Implementation/UI ideas.canvas", - "assets/sighash_flags.webp", - "assets/DER_encoded_signature.webp", - "assets", - "assets/onchain_lightning_switch_screenshot.png", - "assets/advanced_trade_mode_switch.png", - "Research/Implementation/Untitled.md", - "Project Timeline.md", - "2024-05-08.md", - "Obsidian How-To.md", - "Research/Bitcoin fundamentals/Miniscript.md", - "Research/Bitcoin fundamentals", - "Research/Trade Pipelines", - "Research/Implementation", - "Research/Untitled.md", - "Research/Bitcoin&Taproot", - "Research", - "Welcome.md", - "note.md", - "Ctrl+N.md" - ] + "active": "1982ff791d557542", + "lastOpenFiles": [] } \ No newline at end of file diff --git a/docs/TapTrade_obs/Research/Bitcoin fundamentals/Knowledge sources.md b/docs/TapTrade_obs/Research/Bitcoin fundamentals/Knowledge sources.md index b2e1c57..165ed54 100644 --- a/docs/TapTrade_obs/Research/Bitcoin fundamentals/Knowledge sources.md +++ b/docs/TapTrade_obs/Research/Bitcoin fundamentals/Knowledge sources.md @@ -34,6 +34,8 @@ We can use Descriptors/Miniscript to precisely and human readable describe the T #### Websites * [Miniscript introduction/compiler/specification](https://bitcoin.sipa.be/miniscript/) +* [https://bitcoinops.org/en/preparing-for-taproot/#taproot-descriptors](https://bitcoinops.org/en/preparing-for-taproot/#taproot-descriptors) + ### Signature/Pubkey aggregation @@ -58,3 +60,20 @@ It's possible to construct a transaction with multiple inputs/outputs from diffe [Blog article on Sighashes - good examples - Raghav Sood](https://raghavsood.com/blog/2018/06/10/bitcoin-signature-types-sighash) [Signature Hash Flags Medium Article - enigbe ochekliye](https://enigbe.medium.com/signature-hash-flags-f059d035ddd0) + + + +### 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) + + + diff --git a/docs/TapTrade_obs/Research/Implementation/Libraries.md b/docs/TapTrade_obs/Research/Implementation/Libraries.md index 06ced03..4a161d2 100644 --- a/docs/TapTrade_obs/Research/Implementation/Libraries.md +++ b/docs/TapTrade_obs/Research/Implementation/Libraries.md @@ -21,4 +21,15 @@ MuSig2 allows groups of mutually distrusting parties to cooperatively sign data ## [frost crate](https://github.com/ZcashFoundation/frost) This should work with bitcoin as it supports secp256k1. -IIUC frost supports schnorr treshold signatures, unlike N-of-N in MuSig2, Frost can do M-of-N. \ No newline at end of file +IIUC frost supports schnorr treshold signatures, unlike N-of-N in MuSig2, Frost can do M-of-N. + + +## [bitcoinjs-lib](https://github.com/bitcoinjs/bitcoinjs-lib?tab=readme-ov-file) + + + +A javascript Bitcoin library for node.js and browsers. Written in TypeScript, but committing the JS files to verify. + + + +Can look at this library. Example taproot spending using bitcoinjs-lib: https://github.com/bitcoinjs/bitcoinjs-lib/blob/master/test/integration/taproot.spec.ts \ No newline at end of file