Add taproot privacy optimisations in policy compiler
I maintainer di solito rispondono entro 4 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 55/100
Direzione di ricerca
Segui il punto di ingresso bdk-cli compile --type tr e ispeziona la chiamata corrente a compile e il wrapping manuale di una singola leaf. Confronta questo percorso con l’output di compile_tr di rust-miniscript per gli esempi disgiuntivo e threshold; il lavoro è completato quando le policy taproot usano leaf separate e l’albero risultante riceve l’ottimizzazione Huffman prevista.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the enhancement
bdk-cli compile --type tr "$POL" currently only calls compile and manually wraps the result into a single taproot leaf, instead of using compile_tr from rust-miniscript that splits disjunctions into separate leaves and Huffman-optimises the tree. Using compile_tr would be a good compromise, though compile_tr_private_experimental exists and goes one step further in privacy optimisation.
Use case
When compiling a disjunctive policy to a taproot descriptor, each spending condition should ideally be its own leaf so that only the used path is revealed on-chain. Currently all conditions are bundled into a single leaf, missing the privacy benefits of taproot's script tree.
Additional context
The following shows the output of all three rust-miniscript functions for reference:
Example 1: or(pk(A),pk(B))
compile:
or_b(pk(A),s:pk(B))
compile_tr:
internal key : B
tap tree leaves (1 total):
depth=0 script=pk(A)
compile_tr_private_experimental:
internal key : B
tap tree leaves (1 total):
depth=0 script=pk(A)
Example 2: thresh(1,pk(A),pk(B),pk(C))
compile:
multi_a(1,A,B,C)
compile_tr:
internal key : C
tap tree leaves (2 total):
depth=1 script=pk(B)
depth=1 script=pk(A)
compile_tr_private_experimental:
internal key : C
tap tree leaves (2 total):
depth=1 script=pk(B)
depth=1 script=pk(A)
Example 3: thresh(2,pk(A),pk(B),pk(C))
compile:
multi_a(2,A,B,C)
compile_tr:
internal key : UNSPENDABLE
tap tree leaves (1 total):
depth=0 script=multi_a(2,A,B,C)
compile_tr_private_experimental:
internal key : UNSPENDABLE
tap tree leaves (3 total):
depth=1 script=and_v(v:pk(A),pk(B))
depth=2 script=and_v(v:pk(B),pk(C))
depth=2 script=and_v(v:pk(A),pk(C))
- Lingua principale
- Rust
- Stelle
- 142
- Fork
- 103
- Merge medio
- 5g 21h
- PR unite (30g)
- 7
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di bitcoindevkit/bdk-cli
-
Remove "wallet" field from `WalletConfigInner`Forse già presa Una pull request collegata a questa issue è aperta o già unita. Apertaenhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
bitcoindevkit/bdk-cli#332 · 2 commenti ·
I maintainer di solito rispondono entro 4 giorni
-
`warn!` output is invisible unless `RUST_LOG` is setForse già presa @chukwudiikeh l’ha presa oggi. Apertadiscussion
bitcoindevkit/bdk-cli#352 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 4 giorni
-
enhancement
Difficoltà 3/5 1-2 giorni Idoneità per principianti 38/100
bitcoindevkit/bdk-cli#349 ·
I maintainer di solito rispondono entro 4 giorni
-
`compile` doesn't validate keys and returns unusable descriptorsForse già presa @Olorunshogo l’ha presa 5 giorni fa. Apertaenhancement
Difficoltà 3/5 1-2 giorni Idoneità per principianti 52/100
bitcoindevkit/bdk-cli#344 · 1 commento ·
I maintainer di solito rispondono entro 4 giorni
-
bug
Difficoltà 4/5 3-5 giorni Idoneità per principianti 50/100
bitcoindevkit/bdk-cli#340 · 1 commento ·
I maintainer di solito rispondono entro 4 giorni
Tutte le issue di bitcoindevkit/bdk-cli
Issue simili
-
ai_p1 comp-message-queues
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
ClickHouse/ClickHouse#125890 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
storytold/photocraft#5710 ·
I maintainer di solito rispondono entro 1 giorno
-
Two tests fail on a Windows checkout: a CRLF parse in feature_walk_tests, an 8.3 TEMP path in libraries_testsForse già presa @CamWight l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
bherbruck/solvecraft#1186 · 1 commento ·
-
area: screenshot audit bug good first issue priority: P3 security severity: info type: correctness
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
pierruno-labs/prowl#31 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
limitlessprojects/Go-Hybrid#50 ·
I maintainer di solito rispondono entro 1 giorno