
Bốn lỗ hổng, 0,89% và đồng hồ lượng tử: Bitcoin đang nợ chính nó một quyết định
Hoàng Xuân
Trong 14 ngày qua, chỉ 0,89% số khối thể hiện tín hiệu ủng hộ BIP-110. Ngưỡng tối thiểu để tiến tới giai đoạn kích hoạt cưỡng bức là 55%. Bốn lỗ hổng consensus — time warp, chi phí xác minh cực đoan, sự mơ hồ của Merkle và giao dịch trùng lặp — đã được ghi nhận qua nhiều năm nhưng vẫn chưa được vá trên mainnet. Và bản phác thảo nâng cấp hậu lượng tử BIP-361 vừa đặt ra một thời hạn năm năm, trong khi vẫn chưa chọn được giao thức cứu hộ cho giai đoạn B. Nói như một người làm kiểm toán: mã nguồn không bao giờ hết hạn, nhưng sự kiên nhẫn của thị trường thì có.
Bốn đề xuất đang nằm trên bàn của giao thức Bitcoin: BIP-110, cơ chế kích hoạt soft fork bằng tín hiệu của thợ mỏ; BIP-54, gói sửa lỗi consensus có tên Consensus Cleanup; BIP-446 và BIP-448, các nguyên thủy covenant cho Tapscript; và BIP-361, lộ trình di cư sang chữ ký hậu lượng tử. Bốn đề xuất này thuộc bốn tầng khác nhau trong ngăn xếp công nghệ. Một cái sửa lỗi cũ, một cái thay đổi cơ chế quản trị, một cái mở rộng khả năng lập trình, một cái chuẩn bị cho mối đe dọa chưa xảy ra. Việc chúng cùng xuất hiện trong một cửa sổ thời gian hẹp không phải là sự trùng hợp. Bitcoin nổi tiếng chậm thay đổi, nhưng nợ kỹ thuật có cách riêng để đến hạn. Trong hai thập kỷ, Bitcoin duy trì sự ổn định bằng cách từ chối hầu hết các thay đổi. Tuy nhiên, một số quyết định ban đầu — thiết kế script, thuật toán điều chỉnh độ khó, cấu trúc Merkle — đã in sâu vào lớp nền tảng. Chúng không sai, chỉ là cũ. Cũ đến mức nguy hiểm.
Con số 0,89% không đơn thuần là một số liệu. Đó là một cuộc bỏ phiếu tín nhiệm đối với toàn bộ mô hình soft fork do thợ mỏ kích hoạt. BIP-110 yêu cầu thợ mỏ gửi tín hiệu trong cửa sổ hai tuần, đạt 55% trước khi chuyển sang giai đoạn forced version bit. 0,89% có nghĩa là gần như không ai trong số những người bảo vệ mạng lưới muốn sử dụng cơ chế này. Không phải vì họ phản đối nội dung, mà vì họ mệt mỏi với vai trò trở thành một nhánh hành pháp của giao thức. Tôi đã kiểm toán các hợp đồng ICO vào năm 2017. Có một điểm tương đồng rõ rệt: nhiều dự án có quy trình nâng cấp được thiết kế để làm hài lòng nhà đầu tư, không phải để bảo vệ người dùng. BIP-110 về bản chất là một câu hỏi chính trị: ai có quyền nói rằng đã có đủ sự đồng thuận? Con số 0,89% chính là câu trả lời từ phía thợ mỏ — họ không muốn vai trò đó. Hệ quả là nếu BIP-54 cần kích hoạt, giao thức sẽ phải tìm một con đường khác. UASF từng được đề xuất trong quá khứ, nhưng nó mang theo rủi ro phân tách mạng lưới. Cơ chế kích hoạt không còn là một chi tiết kỹ thuật nữa. Nó đã trở thành nút thắt của toàn bộ quá trình nâng cấp.
Bốn vấn đề mà BIP-54 nhắm tới không phải tin tức mới. Time warp cho phép một thợ mỏ chiếm đa số hashrate hạ độ khó xuống mức tối thiểu trong 38 ngày. Khi đó, các khối trong tương lai có thể được đào với chi phí gần bằng không. Phần thưởng khối về cơ bản bị rút ra trước hạn, phá vỡ giả định về nguồn cung cố định 21 triệu coin. Trong các hợp đồng thông minh, đây là một biến thể của reentrancy: một vòng lặp không được kiểm soát, cho phép một bên rút tài sản nhiều lần trước khi hệ thống cập nhật trạng thái. Vấn đề thứ hai là một khối được dựng đặc biệt có thể khiến nút xác minh bị treo trong nhiều giờ. Với một mạng lưới thanh toán, nút bị treo có nghĩa là người dùng không thể chuyển tiền đúng lúc. Trong tình huống hoảng loạn, nhiều nút bị treo cùng lúc có thể chia cắt mạng lưới. Tôi từng thấy lỗ hổng tương tự trong các giao thức AMM: một hàm gọi với đầu vào cực đoan có thể tiêu tốn gas gấp hàng nghìn lần dự kiến. Nhà phát triển thường không coi đó là vấn đề cho đến khi ai đó dùng nó để tấn công từ chối dịch vụ. Vấn đề thứ ba và thứ tư — Merkle ambiguity và giao dịch trùng lặp — ít được chú ý hơn, nhưng chúng nằm trong cùng một họ: những giả định về cấu trúc dữ liệu được đưa vào năm 2009, khi tác giả chưa hình dung ra một ngành công nghiệp trị giá hàng nghìn tỷ đô la xây dựng trên đó. Kinh nghiệm kiểm toán của tôi chỉ ra một quy luật: các lỗ hổng đã biết thường không được vá không phải vì khó, mà vì rủi ro của việc vá được đánh giá cao hơn rủi ro của việc không vá. Với BIP-54, rủi ro của việc không vá đang tăng theo thời gian. Mỗi năm có thêm hàng trăm nghìn UTXO được tạo ra dựa trên các giả định cũ. Việc vá trở nên đắt hơn, và lỗ hổng vẫn nằm đó.
Opcode OP_TEMPLATEHASH đã được kích hoạt trên signet. BIP-448 tham vọng hơn với ba opcode hỗ trợ atomic swap, channel, statechains và Ark. Với một người làm audit, đây là phần thú vị nhất. Covenant cho phép các điều kiện chi tiêu ràng buộc tương lai của đồng coin. Điều này mở ra vault, nơi người dùng thiết lập thời gian trì hoãn để chống lại việc mất khóa. Người dùng có thể viết một lớp bảo mật mới vào script thay vì phụ thuộc hoàn toàn vào phần mềm ví. Nhưng hãy nhìn vào độ chín muồi: BIP-446 mới thử nghiệm trên signet, không phải mainnet. BIP-448 vẫn ở giai đoạn đề xuất. Tôi thường cảnh giác với các giao thức DeFi có tính năng hấp dẫn nhưng chưa trải qua kiểm thử đối nghịch. Covenant cũng vậy. Một opcode cho phép biểu diễn điều kiện phức tạp, đến lượt nó, cũng cho phép tạo ra các điều kiện mà người dùng không lường trước được. Trên lý thuyết, opcode an toàn có thể tạo ra những hợp đồng khó hiểu trong thực tế. Sự tồn tại song song của hai đề xuất — một tối giản, một toàn diện — phản ánh một cuộc tranh luận chưa ngã ngũ: nên thêm opcode tối thiểu trước, hay chờ gói hoàn chỉnh. Từ góc nhìn quản lý rủi ro, cách tiếp cận tối giản thường là đúng. Từ góc nhìn phát triển hệ sinh thái, một gói hoàn chỉnh giúp các nhà phát triển tầng hai thiết kế với ít ràng buộc hơn. Đáng chú ý, các nhà phát triển này đang nói về Ark và statechains — những giao thức cần covenant để hoạt động hiệu quả. Nếu Bitcoin không chọn một hướng đi rõ ràng, nó sẽ không mất đi sự an toàn, nhưng nó có thể mất đi các nhà phát triển vào những chuỗi có lập trình linh hoạt hơn.
Đây là phần khiến tôi khó chịu nhất. BIP-361 đưa ra lộ trình: khoảng một năm để ngừng tạo output dễ bị tấn công lượng tử, sau đó một khoảng thời gian và ba năm nữa để thắt chặt quy tắc xác minh. Nhưng khi đến giai đoạn B — nơi cần một giao thức cứu hộ hậu lượng tử để di cư tài sản từ các địa chỉ cũ — tài liệu vẫn chưa chỉ định thiết kế cụ thể. Nói cách khác, bạn có năm năm, nhưng bạn không biết mình sẽ di chuyển bằng phương tiện gì. Trong các cuộc kiểm toán, tôi thường nói với khách hàng rằng một chính sách bảo mật thiếu kế hoạch khôi phục không phải là một chính sách. Nó là một lời hứa. BIP-361 là một lời hứa có thời hạn. Điều nguy hiểm nằm ở ảnh hưởng lan tỏa: các sàn giao dịch và nhà giữ hộ sẽ phải xây dựng quy trình di cư UTXO cho khách hàng. Nếu không có giao thức cứu hộ, họ không thể lên kế hoạch ngân sách, không thể thiết kế hệ thống tuân thủ. Toàn bộ chi phí không chắc chắn sẽ đổ lên người dùng cuối. Rủi ro lớn nhất không phải là một máy tính lượng tử xuất hiện vào năm 2030. Rủi ro lớn nhất là sự mơ hồ kéo dài khiến thị trường định giá sai mức độ khẩn cấp. Đồng hồ lượng tử không chờ đợi sự đồng thuận. Một giao thức có thể bảo thủ, và đó là một đặc điểm đáng quý. Nhưng sự bảo thủ trong việc thiết kế một giao thức cứu hộ là không thể chấp nhận được, bởi vì nó đe dọa khả năng tự bảo vệ của hàng triệu người dùng.
Bây giờ đến phần mà những người lạc quan có thể đúng. Bitcoin đã từng bị tuyên bố sắp chết hơn mười lần. Các cuộc tranh cãi về kích thước khối, SegWit, Taproot — tất cả đều kết thúc mà không có vụ nổ lớn. Sự trì hoãn không phải lúc nào cũng là sự yếu kém. Trong một môi trường mà một dòng mã sai có thể đốt cháy hàng tỷ đô la, việc từ chối thay đổi vội vàng là một tính năng. BIP-54 chưa được kích hoạt, nhưng các lỗ hổng đã được biết đến nhiều năm và chưa bị khai thác công khai. BIP-361 có thể mơ hồ, nhưng chính sự mơ hồ đó ngăn con người hành động dựa trên các giả định chưa chín muồi. Tuy nhiên, lập luận này có một điểm mù: các sự kiện rủi ro thấp, tác động cao thường không xuất hiện cho đến khi chúng xảy ra. Một thợ mỏ khai thác time warp sẽ không tuyên bố trước. Một máy tính lượng tử có năng lực sẽ không xuất hiện trên trang nhất của báo trước. Nó xuất hiện trong phòng thí nghiệm, sau đó là một bài báo trên Nature. Khi điều đó xảy ra, năm năm trong BIP-361 có thể rút ngắn thành năm tháng. Điểm contrarian ở đây: phe bò đúng rằng Bitcoin đã sống sót qua sự bất cẩn. Nhưng điều đó không biến sự bất cẩn thành một chiến lược. Nó chỉ có nghĩa là Bitcoin đã may mắn. Sự may mắn không phải là một giao thức.
Câu hỏi cuối cùng: nếu một giao thức được định giá hàng nghìn tỷ đô la không thể sửa bốn lỗ hổng đã biết trong nhiều năm, và nếu nó đưa ra lộ trình di cư hậu lượng tử mà không xác định phương tiện di cư, thì sự bảo thủ của nó còn là đức tính hay đã trở thành cái cớ? Mỗi khối trôi qua là một dòng chữ "chưa sẵn sàng" được khắc thêm vào. Câu hỏi không phải là liệu Bitcoin có thể chịu đựng đến năm 2030 hay không. Câu hỏi là những người nắm giữ nó có sẵn sàng tiếp tục chịu đựng sự mơ hồ đó hay không.