Tiêu đề gốc: "Bản tin Bitcoin Optech số 277"
Tác giả gốc: Bitcoin Optech
Bản tổng hợp ban đầu: Luccy, BlockBeats
blockquote>Lưu ý của biên tập viên:Nhóm công nghệ vận hành Bitcoin (Optech) cam kết mang đến công nghệ nguồn mở tốt nhất cho các doanh nghiệp sử dụng Bitcoin để giảm chi phí và cải thiện trải nghiệm của khách hàng. Nội dung dự án Bản tin Bitcoin Optech mà nó cung cấp được cập nhật hàng tuần và nhằm mục đích ghi lại các cập nhật về công nghệ dự án sinh thái Bitcoin.Bản tin 277 ghi lại việc tinh chỉnh đề xuất neo tạm thời nhằm loại bỏ khả năng giả mạo khỏi các giao dịch. Đề xuất này cho phép các giao dịch chứa các đầu ra có giá trị bằng 0 và các tập lệnh đầu ra mà bất kỳ ai cũng có thể chi tiêu, khiến việc tăng phí CPFP trở nên thuận tiện hơn.Ngoài ra, bài viết còn đề cập đến lịch sử phát triển của Miniscript, từ ứng dụng ban đầu trong Revault đến việc tích hợp vào Bitcoin Core cho đến việc được các nhà sản xuất thiết bị chữ ký hỗ trợ. Miniscript được sử dụng để phân tích tĩnh, sáng tác và chữ ký chung, mang lại cho Revault một công cụ mạnh mẽ để giải quyết các vấn đề kỹ thuật. Với sự hỗ trợ của các nhà sản xuất thiết bị ký kết và việc kích hoạt Taproot, tương lai của Miniscript đầy hứa hẹn, cung cấp các công cụ thuận tiện hơn cho các hợp đồng trên Bitcoin.
Bản tin tuần này cung cấp thông tin cập nhật về đề xuất neo tạm thời và cung cấp báo cáo khu vực về những đóng góp của Miniscript từ các nhà phát triển tại Wizardsardine. Ngoài ra còn có nội dung thường xuyên cho từng số phát hành, thông báo các bản phát hành phần mềm mới và các ứng cử viên phát hành cũng như tóm tắt những thay đổi lớn đối với một số dự án cơ sở hạ tầng Bitcoin phổ biến.
Tin tức
Loại bỏ khả năng giả mạo trong chi tiêu cố định ngắn hạn: Gregory Sanders trong Delving Một điều chỉnh đề xuất neo phù du đã được đăng trên diễn đàn Bitcoin. Đề xuất này cho phép các giao dịch chứa đầu ra có giá trị bằng 0 và tập lệnh đầu ra mà bất kỳ ai cũng có thể chi tiêu. Vì bất kỳ ai cũng có thể chi tiêu một đầu ra nên bất kỳ ai cũng có thể sử dụng mức tăng phí CPFP để tạo giao dịch cho đầu ra đó. Điều này rất thuận tiện cho các thỏa thuận hợp đồng nhiều bên (chẳng hạn như LN), vì các giao dịch thường được ký kết trước khi dự đoán chính xác tỷ lệ sẽ được thanh toán. Một mỏ neo tạm thời cho phép một trong hai bên tham gia hợp đồng bổ sung các khoản phí mà họ cho là cần thiết. Nếu bất kỳ bên nào khác hoặc bất kỳ người dùng nào khác muốn thêm phí cao hơn vì bất kỳ lý do gì, họ có thể thay thế mức tăng phí CPFP ban đầu bằng mức tăng phí CPFP cao hơn của chính họ.
Nên sử dụng loại mà bất kỳ ai cũng có thể sử dụng tập lệnh bao gồm tập lệnh đầu ra tương đương với OP_TRUE, tập lệnh này có thể được sử dụng bởi đầu vào có tập lệnh đầu vào trống. Như Sanders đã đăng trong tuần này, việc sử dụng tập lệnh đầu ra truyền thống có nghĩa là các giao dịch phụ của chi tiêu có txid có thể giả mạo, chẳng hạn, bất kỳ người khai thác nào cũng có thể thêm dữ liệu vào tập lệnh đầu vào để thay đổi txid của giao dịch phụ. Điều này có thể không khôn ngoan khi sử dụng các giao dịch con ngoài việc tăng phí, vì ngay cả khi chúng được xác nhận, chúng có thể được xác nhận bằng một txid khác làm vô hiệu mọi giao dịch cháu.
Sanders khuyên bạn nên sử dụng một trong các tập lệnh đầu ra dành riêng cho việc nâng cấp segwit trong tương lai. Mặc dù điều này làm tăng không gian khối một chút, bốn byte cho segwit và một byte cho OP_TRUE, nhưng nó loại bỏ mọi lo ngại về khả năng giả mạo giao dịch. Sau một số cuộc thảo luận về chủ đề này, Sanders đã đề xuất hai điểm: phiên bản OP_TRUE phù hợp với những người không quan tâm đến khả năng giả mạo và muốn giảm thiểu quy mô giao dịch và phiên bản segwit lớn hơn một chút không cho phép thay đổi các giao dịch phụ. Các cuộc thảo luận khác trong chủ đề này tập trung vào việc lựa chọn các byte bổ sung được sử dụng cho phương pháp segwit để tạo địa chỉ bech32m đáng nhớ.
Báo cáo thực địa: Hành trình của Miniscript
Chúng tôi bắt đầu quan tâm đến Miniscript vào đầu năm 2020, tại vào thời điểm đó chúng tôi đang thiết kế Revault, một kiến trúc vault nhiều bên chỉ sử dụng các kịch bản gốc có sẵn vào thời điểm đó.
Ban đầu, chúng tôi đã trình diễn Revault bằng cách sử dụng một nhóm người tham gia cố định. Khi chúng tôi cố gắng giới thiệu tính năng này cho nhiều người tham gia sản xuất hơn, chúng tôi nhanh chóng gặp phải vấn đề.
Trên thực tế, chúng tôi nghi ngờ rằng tập lệnh chúng tôi sử dụng trong bản demo có an toàn không? Nó có thể được chi tiêu theo tất cả các cách nó được quảng cáo không? Ngoài những cách công khai này, còn có những cách chi tiêu nào khác?
Mặc dù vậy, làm cách nào để chúng tôi triển khai nó cho những người tham gia khác nhau và giữ nó an toàn? Làm cách nào tôi có thể thực hiện một số tối ưu hóa và đảm bảo rằng các tập lệnh được tạo có cùng ngữ nghĩa?
Ngoài ra, Revault đang sử dụng các giao dịch được ký trước (để thực thi chính sách chi tiêu). Làm cách nào để biết trước ngân sách được phân bổ cho việc tăng chi phí dựa trên cấu hình của tập lệnh? Làm cách nào để đảm bảo rằng mọi giao dịch chi tiêu từ các tập lệnh này đều vượt qua các bước kiểm tra tiêu chuẩn phổ biến nhất?
Cuối cùng, ngay cả khi giả sử rằng các tập lệnh của chúng tôi tuân thủ ngữ nghĩa mong đợi và luôn có thể chi tiêu được, thì chúng tôi cụ thể chi tiêu chúng như thế nào? Nghĩa là, làm thế nào để chúng tôi tạo ra các nhân chứng thỏa đáng ("chữ ký") cho mọi cấu hình có thể? Làm cách nào để làm cho thiết bị ký phần cứng tương thích với tập lệnh của chúng tôi?
Nếu không có Miniscript, những vấn đề này sẽ là một trở ngại. Hai anh chàng trong gara sẽ không viết một phần mềm có thể ứng biến một kịch bản và quan trọng nhất là gọi nó là ví Bitcoin được tăng cường bảo mật. Chúng tôi muốn thành lập một công ty xung quanh sự phát triển của Revault, nhưng chúng tôi sẽ không thể đảm bảo nguồn vốn nếu không cung cấp cho các nhà đầu tư sự đảm bảo chắc chắn rằng chúng tôi có thể tung ra một sản phẩm an toàn. Và nếu không có kinh phí, chúng tôi sẽ không thể giải quyết tất cả những vấn đề kỹ thuật này.
Miniscript ra đời, "một ngôn ngữ để viết (một tập hợp con của các tập lệnh Bitcoin) theo cách có cấu trúc hỗ trợ phân tích, kết hợp, chữ ký phổ quát, v.v. Nó có Cấu trúc cho phép thành phần. Rất dễ dàng thực hiện phân tích tĩnh trên các thuộc tính khác nhau (điều kiện chi tiêu, tính chính xác, thuộc tính bảo mật, khả năng giả mạo, v.v.)." Đây chính xác là những gì chúng ta cần. Với công cụ mạnh mẽ này, chúng tôi có thể đảm bảo tốt hơn cho các nhà đầu tư của mình trong việc huy động vốn và bắt đầu phát triển Revault.
Vào thời điểm đó, Miniscript vẫn còn lâu mới trở thành một giải pháp plug-and-play dành cho bất kỳ nhà phát triển ứng dụng Bitcoin nào. (Nếu bạn là nhà phát triển Bitcoin mới đọc nội dung này sau năm 2023, hãy biết rằng chúng tôi đã từng phải viết các tập lệnh Bitcoin bằng tay.) Chúng tôi phải tích hợp Miniscript vào Bitcoin Core (xem PR #24147, #24148 và # 24149), chúng tôi đã sử dụng nó làm phần phụ trợ cho ví Revault và thuyết phục các nhà sản xuất thiết bị chữ ký triển khai nó trong chương trình cơ sở của họ. Phần sau được chứng minh là phần khó nhất.
Đó là vấn đề con gà và quả trứng: các nhà sản xuất có ít động lực hơn để triển khai Miniscript mà không có nhu cầu của người dùng và không có thiết bị có chữ ký. Nếu không có hỗ trợ, chúng tôi không thể phát hành Revault. May mắn thay, chu kỳ này cuối cùng đã bị phá vỡ vào tháng 3 năm 2021 bởi Stepan Snigirev, người đã giới thiệu hỗ trợ cho bộ mô tả Miniscript cho Spectre DIY. Tuy nhiên, Spectre DIY từ lâu đã được biết đến như một "nguyên mẫu chức năng" đơn thuần, với việc Salvatore Ingala lần đầu tiên giới thiệu Miniscript cho một ứng dụng Bitcoin mới trên Ledger Nano S(+) vào tháng 1 năm 2023. Phát hành, cho phép chúng tôi ra mắt ví Liana hỗ trợ nhiều nhất thiết bị ký phổ biến.
Chúng tôi còn một bước phát triển nữa trong hành trình Miniscript của mình. Liana là ví Bitcoin tập trung vào các tùy chọn khôi phục. Nó cho phép người dùng chỉ định một số điều kiện khôi phục bị khóa theo thời gian (ví dụ: khóa khôi phục của bên thứ ba thường không thể tiêu tiền hoặc đa chữ ký mở rộng dần dần). Ban đầu Miniscript chỉ hoạt động với tập lệnh P2WSH. Thật không may, gần 2 năm sau khi Taproot được kích hoạt, đường dẫn khôi phục phải được xuất bản trên chuỗi mỗi lần sử dụng. Vì mục đích này, chúng tôi đã nỗ lực làm việc để chuyển Miniscript sang Tapscript.
Với hầu hết các thiết bị ký đã triển khai hoặc đang trong quá trình triển khai hỗ trợ Miniscript (chẳng hạn như Bitbox và Coldcard gần đây), cũng như với các khung gốc Taproot và Miniscript tiếp tục cải tiến, sử dụng các nguyên tắc Bảo mật giúp việc ký hợp đồng trên Bitcoin trở nên dễ dàng hơn.
Thật thú vị, hỗ trợ tài chính cho các công cụ và khuôn khổ nguồn mở làm giảm ngưỡng cạnh tranh của các công ty đổi mới, tức là thúc đẩy các dự án được triển khai. Xu hướng này đã tăng tốc trong vài năm qua, mang lại cho chúng ta hy vọng về tương lai của lĩnh vực này.
Tất nhiên vẫn có rủi ro, nhưng ít nhất chúng tôi tự tin có thể giải quyết được phần trên dây chuyền. Thật bất ngờ, phần off-chain lại tỏ ra khó khăn hơn.
Các bản phát hành và các ứng cử viên phát hành
Dưới đây là các bản phát hành mới từ một số dự án cơ sở hạ tầng Bitcoin phổ biến phiên bản và ứng cử viên phát hành, vui lòng xem xét nâng cấp lên phiên bản mới hoặc giúp kiểm tra ứng viên phát hành.
LND 0.17.1-beta là bản phát hành bảo trì cho quá trình triển khai nút Lightning Network này, bao gồm một số sửa lỗi và cải tiến nhỏ.
Bitcoin Core 26.0rc2 là bản phát hành ứng cử viên cho bản phát hành chính tiếp theo của quá trình triển khai nút đầy đủ chính này. Có hướng dẫn thử nghiệm cũng như cuộc họp theo lịch trình của Câu lạc bộ đánh giá PR Bitcoin Core tập trung vào thử nghiệm, dự kiến vào ngày 15 tháng 11 năm 2023.
Core Lightning 23.11rc1 là ứng cử viên phát hành cho phiên bản chính tiếp theo của việc triển khai nút Lightning Network này.
Thay đổi mã và tài liệu
Bitcoin Core, Core Lightning, Eclair, LDK, LND, Một số thay đổi đáng chú ý trong libsecp256k1, Giao diện ví phần cứng (HWI), Rust Bitcoin, Máy chủ BTCPay, BDK, Đề xuất cải tiến Bitcoin (BIP), Lightning BOLT và Thẩm vấn Bitcoin.
Bitcoin Core #28207 cập nhật cách lưu trữ nhóm bộ nhớ trên đĩa (thường xảy ra trong quá trình tắt nút, nhưng cũng có thể được kích hoạt thông qua RPC savemempool). Trước đây, nó được lưu trữ dưới dạng tuần tự hóa đơn giản của dữ liệu cơ bản. Cấu trúc được tuần tự hóa này hiện được XOR với các giá trị ngẫu nhiên được tạo độc lập bởi mỗi nút để làm xáo trộn dữ liệu. Trong quá trình tải, XOR được thực hiện với cùng các giá trị để loại bỏ sự nhầm lẫn. Việc xáo trộn ngăn không cho ai đó có thể đưa một số dữ liệu nhất định vào giao dịch để một chuỗi byte cụ thể xuất hiện trong dữ liệu mempool đã lưu, điều này có thể khiến các chương trình như trình quét vi-rút gắn cờ dữ liệu mempool đã lưu là nguy hiểm. Cách tiếp cận tương tự trước đây đã được áp dụng để lưu trữ các bộ UTXO trong PR #6650. Bất kỳ phần mềm nào cần đọc dữ liệu mempool từ đĩa đều có thể dễ dàng áp dụng thao tác XOR hoặc sử dụng cài đặt cấu hình -persistmempoolv1 để yêu cầu lưu ở định dạng không bị xáo trộn. Xin lưu ý rằng các cài đặt cấu hình tương thích ngược dự kiến sẽ bị xóa trong bản phát hành trong tương lai.
LDK #2715 cho phép các nút chấp nhận có chọn lọc các HTLC có giá trị nhỏ hơn mức chúng sẽ phân phối. Điều này rất hữu ích khi một nút ngang hàng ngược dòng thanh toán một nút thông qua kênh JIT mới phát sinh phí giao dịch trên chuỗi cho nút ngang hàng ngược dòng mà họ muốn khấu trừ từ số tiền HTLC được trả cho nút.
「Liên kết gốc‖
Chào mừng bạn tham gia cộng đồng chính thức của BlockBeats:
Nhóm Telegram đăng ký: https://t.me/theblockbeats
Nhóm Telegram thảo luận: https://t.me/BlockBeats_App
Tài khoản Twitter chính thức: https://twitter.com/BlockBeatsAsia