Add taproot privacy optimisations in policy compiler
Maintainer thường phản hồi trong vòng 2 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 55/100
Hướng nghiên cứu
Theo dõi entry point bdk-cli compile --type tr và kiểm tra lệnh gọi compile hiện tại cùng việc wrapping thủ công một leaf duy nhất. So sánh đường dẫn đó với output của compile_tr trong rust-miniscript cho các ví dụ disjunctive và threshold; hoàn thành khi các policy taproot sử dụng các leaf riêng biệt và cây kết quả nhận được tối ưu hóa Huffman như dự định.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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))
- Ngôn ngữ chính
- Rust
- Star
- 143
- Fork
- 98
- Merge trung bình
- 6 ngày 8 giờ
- Pull request đã merge (30 ngày)
- 6
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của bitcoindevkit/bdk-cli
-
Use `ValueEnum` for `--type` in `compile` commandCó thể đã có người làm @chukwudiikeh đã nhận 3 ngày trước. Đang mởgood first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
bitcoindevkit/bdk-cli#345 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
bitcoindevkit/bdk-cli#332 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
`compile` doesn't validate keys and returns unusable descriptorsCó thể đã có người làm @Olorunshogo đã nhận 3 ngày trước. Đang mởenhancement
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 52/100
bitcoindevkit/bdk-cli#344 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
bug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 50/100
bitcoindevkit/bdk-cli#340 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Enforce Core-compatible OP_RETURN / datacarrier and standard tx-size limits in create_txCó thể đã có người làm @tvpeter đã nhận 16 ngày trước. Đang mởenhancement
bitcoindevkit/bdk-cli#339 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 2 ngày
Tất cả issue của bitcoindevkit/bdk-cli
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
swc-project/swc#12516 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
app bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
-
mls-rs-crypto-awslc: exact aws-lc-rs =1.16.3 pin blocks rustls security updateCó thể đã có người làm @muscariello đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
-
[work-item] adam-adae-worsening-emergence: conform spec.yaml to the specification style contract (REQ-1280)Có thể đã có người làm @muse-yamaa-bot đã nhận hôm nay. Đang mởwork-item
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 82/100
Maintainer thường phản hồi trong vòng 1 ngày