Bitcoin giao dịch lặp lại: một lỗ hổng thú vị nhưng rủi ro rất nhỏ
Tổng quan
Giao dịch Bitcoin thường sử dụng đầu ra chưa chi tiêu bằng cách tham chiếu ID của giao dịch trước đó. Những đầu ra này chỉ có thể được chi tiêu một lần, nếu không sẽ dẫn đến vấn đề chi tiêu gấp đôi. Tuy nhiên, trong lịch sử Bitcoin, thực sự có hai nhóm giao dịch hoàn toàn giống nhau. Tình huống này xảy ra bởi vì giao dịch coinbase không có đầu vào, mà thay vào đó tạo ra đồng coin mới. Do đó, hai giao dịch coinbase khác nhau có thể được xây dựng theo cách hoàn toàn giống nhau, khiến cho ID giao dịch của chúng cũng giống nhau. Ngoài ra, chỉ có sự va chạm băm mới có thể dẫn đến ID giao dịch trùng lặp, nhưng điều này gần như không thể xảy ra trong các hàm băm an toàn về mặt mật mã.
Hai nhóm giao dịch lặp lại này đều xảy ra giữa ngày 14 và 15 tháng 11 năm 2010, kéo dài khoảng 16 giờ. Mặc dù d5d2....8599 xuất hiện trên blockchain sau e3bf....b468, nhưng chúng tôi vẫn phân loại nó là giao dịch lặp lại đầu tiên.
Chi tiết giao dịch lặp lại
Trình duyệt khối mempool.space hiển thị trường hợp giao dịch lặp lại đầu tiên xuất hiện trong hai khối khác nhau. Thú vị thay, các trình duyệt khối khác nhau có thể có hành vi mặc định khác nhau khi hiển thị giao dịch lặp lại.
Trong bốn khối liên quan, chỉ có một khối chứa các giao dịch khác, kết hợp 1 BTC và 19 BTC thành một đầu ra 20 BTC.
Tính khả thi chi tiêu của việc xuất ra lặp lại
Giá trị của mỗi giao dịch lặp lại là 50 BTC, tổng cộng liên quan đến 200 BTC hoặc 100 BTC, tùy thuộc vào cách hiểu. Tính đến thời điểm hiện tại, những Bitcoin này chưa được chi tiêu. Về lý thuyết, người sở hữu khóa riêng liên quan có thể chi tiêu những Bitcoin này, nhưng chỉ có 100 BTC thực sự có thể được khôi phục, vì 50 BTC lặp lại sẽ không thể chi tiêu. Còn về việc những đồng coin này sẽ được chi tiêu từ block nào, có thể là chưa xác định.
Vấn đề giao dịch lặp lại
Giao dịch lặp lại sẽ gây ra sự hỗn loạn cho ví và trình duyệt blockchain, cũng như có thể gây ra rủi ro tấn công tiềm ẩn. Ví dụ, nó có thể dẫn đến việc thanh toán lặp lại hoặc tấn công vào sàn giao dịch.
Giải pháp
Để giải quyết vấn đề giao dịch trùng lặp, cộng đồng Bitcoin đã thực hiện các biện pháp sau:
BIP30: Được đề xuất và thực hiện vào năm 2012, cấm sử dụng TXID trùng lặp để giao dịch, trừ khi TXID trước đó đã được chi tiêu.
BIP34: Kích hoạt năm 2013, yêu cầu giao dịch coinbase bao gồm chiều cao khối, khiến cho tất cả các giao dịch đều phải là duy nhất.
Ngừng kiểm tra BIP30: Năm 2015, do việc thực hiện BIP34, các nút đã ngừng kiểm tra BIP30 tốn kém.
Rủi ro tiềm ẩn
Dù BIP34 đã giải quyết hầu hết các vấn đề, nhưng trong một số khối trước khi BIP34 được kích hoạt, scriptSig của giao dịch coinbase có thể khớp với độ cao khối trong tương lai, vẫn có nguy cơ trùng lặp tiềm tàng. Khối tiếp theo có thể xuất hiện giao dịch trùng lặp là 1,983,702, dự kiến sẽ được tạo ra vào khoảng tháng 1 năm 2046.
Kết luận
Xem xét độ khó, chi phí của việc sao chép giao dịch và sự khan hiếm của các cơ hội, lỗ hổng này không tạo thành mối đe dọa an ninh chính đối với Bitcoin. Tuy nhiên, do tính độc đáo và ảnh hưởng lâu dài của nó, đây vẫn là một vấn đề thú vị đáng được quan tâm. Trong tương lai, có thể cần phải sửa chữa vấn đề này một cách triệt để thông qua các phương pháp như phân nhánh mềm.
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
Câu đố giao dịch Bitcoin lặp lại: Lỗ hổng hiếm gặp và thách thức trong tương lai
Bitcoin giao dịch lặp lại: một lỗ hổng thú vị nhưng rủi ro rất nhỏ
Tổng quan
Giao dịch Bitcoin thường sử dụng đầu ra chưa chi tiêu bằng cách tham chiếu ID của giao dịch trước đó. Những đầu ra này chỉ có thể được chi tiêu một lần, nếu không sẽ dẫn đến vấn đề chi tiêu gấp đôi. Tuy nhiên, trong lịch sử Bitcoin, thực sự có hai nhóm giao dịch hoàn toàn giống nhau. Tình huống này xảy ra bởi vì giao dịch coinbase không có đầu vào, mà thay vào đó tạo ra đồng coin mới. Do đó, hai giao dịch coinbase khác nhau có thể được xây dựng theo cách hoàn toàn giống nhau, khiến cho ID giao dịch của chúng cũng giống nhau. Ngoài ra, chỉ có sự va chạm băm mới có thể dẫn đến ID giao dịch trùng lặp, nhưng điều này gần như không thể xảy ra trong các hàm băm an toàn về mặt mật mã.
Hai nhóm giao dịch lặp lại này đều xảy ra giữa ngày 14 và 15 tháng 11 năm 2010, kéo dài khoảng 16 giờ. Mặc dù d5d2....8599 xuất hiện trên blockchain sau e3bf....b468, nhưng chúng tôi vẫn phân loại nó là giao dịch lặp lại đầu tiên.
Chi tiết giao dịch lặp lại
Trình duyệt khối mempool.space hiển thị trường hợp giao dịch lặp lại đầu tiên xuất hiện trong hai khối khác nhau. Thú vị thay, các trình duyệt khối khác nhau có thể có hành vi mặc định khác nhau khi hiển thị giao dịch lặp lại.
Trong bốn khối liên quan, chỉ có một khối chứa các giao dịch khác, kết hợp 1 BTC và 19 BTC thành một đầu ra 20 BTC.
Tính khả thi chi tiêu của việc xuất ra lặp lại
Giá trị của mỗi giao dịch lặp lại là 50 BTC, tổng cộng liên quan đến 200 BTC hoặc 100 BTC, tùy thuộc vào cách hiểu. Tính đến thời điểm hiện tại, những Bitcoin này chưa được chi tiêu. Về lý thuyết, người sở hữu khóa riêng liên quan có thể chi tiêu những Bitcoin này, nhưng chỉ có 100 BTC thực sự có thể được khôi phục, vì 50 BTC lặp lại sẽ không thể chi tiêu. Còn về việc những đồng coin này sẽ được chi tiêu từ block nào, có thể là chưa xác định.
Vấn đề giao dịch lặp lại
Giao dịch lặp lại sẽ gây ra sự hỗn loạn cho ví và trình duyệt blockchain, cũng như có thể gây ra rủi ro tấn công tiềm ẩn. Ví dụ, nó có thể dẫn đến việc thanh toán lặp lại hoặc tấn công vào sàn giao dịch.
Giải pháp
Để giải quyết vấn đề giao dịch trùng lặp, cộng đồng Bitcoin đã thực hiện các biện pháp sau:
BIP30: Được đề xuất và thực hiện vào năm 2012, cấm sử dụng TXID trùng lặp để giao dịch, trừ khi TXID trước đó đã được chi tiêu.
BIP34: Kích hoạt năm 2013, yêu cầu giao dịch coinbase bao gồm chiều cao khối, khiến cho tất cả các giao dịch đều phải là duy nhất.
Ngừng kiểm tra BIP30: Năm 2015, do việc thực hiện BIP34, các nút đã ngừng kiểm tra BIP30 tốn kém.
Rủi ro tiềm ẩn
Dù BIP34 đã giải quyết hầu hết các vấn đề, nhưng trong một số khối trước khi BIP34 được kích hoạt, scriptSig của giao dịch coinbase có thể khớp với độ cao khối trong tương lai, vẫn có nguy cơ trùng lặp tiềm tàng. Khối tiếp theo có thể xuất hiện giao dịch trùng lặp là 1,983,702, dự kiến sẽ được tạo ra vào khoảng tháng 1 năm 2046.
Kết luận
Xem xét độ khó, chi phí của việc sao chép giao dịch và sự khan hiếm của các cơ hội, lỗ hổng này không tạo thành mối đe dọa an ninh chính đối với Bitcoin. Tuy nhiên, do tính độc đáo và ảnh hưởng lâu dài của nó, đây vẫn là một vấn đề thú vị đáng được quan tâm. Trong tương lai, có thể cần phải sửa chữa vấn đề này một cách triệt để thông qua các phương pháp như phân nhánh mềm.