Add taproot privacy optimisations in policy compiler
Les mainteneurs répondent en général sous 2 jours
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 55/100
Piste de recherche
Suivez le point d’entrée bdk-cli compile --type tr et examinez l’appel actuel à compile ainsi que l’enrobage manuel d’une seule leaf. Comparez ce chemin avec la sortie de compile_tr de rust-miniscript pour les exemples disjonctif et de threshold ; le travail est considéré comme terminé lorsque les politiques taproot utilisent des leaves séparées et que l’arbre résultant reçoit l’optimisation de Huffman prévue.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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))
- Langage dominant
- Rust
- Étoiles
- 143
- Forks
- 98
- Merge moyen
- 6 j 8 h
- PR mergées (30 j)
- 6
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de bitcoindevkit/bdk-cli
-
Use `ValueEnum` for `--type` in `compile` commandPeut-être pris @chukwudiikeh l’a pris il y a 3 jours. Ouvertegood first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
bitcoindevkit/bdk-cli#345 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours
-
Remove "wallet" field from `WalletConfigInner`Peut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverteenhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
bitcoindevkit/bdk-cli#332 · 2 commentaires ·
Les mainteneurs répondent en général sous 2 jours
-
`compile` doesn't validate keys and returns unusable descriptorsPeut-être pris @Olorunshogo l’a pris il y a 3 jours. Ouverteenhancement
Difficulté 3/5 1-2 jours Accessibilité débutants 52/100
bitcoindevkit/bdk-cli#344 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours
-
bug
Difficulté 4/5 3-5 jours Accessibilité débutants 50/100
bitcoindevkit/bdk-cli#340 · 1 commentaire ·
Les mainteneurs répondent en général sous 2 jours
-
Enforce Core-compatible OP_RETURN / datacarrier and standard tx-size limits in create_txPeut-être pris @tvpeter l’a pris il y a 16 jours. Ouverteenhancement
bitcoindevkit/bdk-cli#339 · 1 personne assignée ·
Les mainteneurs répondent en général sous 2 jours
Toutes les issues de bitcoindevkit/bdk-cli
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 69/100
router-for-me/EasyCLIProxyAPI#406 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 67/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 83/100
Les mainteneurs répondent en général sous 1 jour
-
ai-priority/P2 bug db/oracle user-priority/P1
Difficulté 2/5 1-3 heures Accessibilité débutants 67/100
Les mainteneurs répondent en général sous 1 jour
-
Sweep stale notesOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 63/100