Bitcoin hệ thống giao dịch lặp lại: một lỗ hổng hiếm gặp và thú vị
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 sử dụng 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 đã có hai nhóm giao dịch hoàn toàn giống nhau. Tình huống này có thể xảy ra vì giao dịch coinbase không có đầu vào, mà trực tiếp tạo ra đồng coin mới. Do đó, hai giao dịch coinbase khác nhau có thể gửi cùng một số lượng Bitcoin đến cùng một địa chỉ, tạo ra giao dịch hoàn toàn nhất quán. Vì những giao dịch này có nội dung giống nhau, nên ID giao dịch của chúng cũng sẽ khớp.
Hai nhóm giao dịch lặp lại này xảy ra giữa ngày 14 và 15 tháng 11 năm 2010, với khoảng thời gian khoảng 16 giờ. ID của nhóm giao dịch lặp lại đầu tiên bắt đầu bằng d5d2 và kết thúc bằng 8599; nhóm thứ hai bắt đầu bằng e3bf và kết thúc bằng b468. Thú vị là, mặc dù d5d2....8599 đã trở thành bản sao trước, nhưng sự xuất hiện đầu tiên của nó trên blockchain lại muộn hơn e3bf....b468.
Tổng số lượng Bitcoin liên quan đến các giao dịch lặp lại này là 200 BTC, mỗi giao dịch 50 BTC. Tính đến thời điểm hiện tại, những Bitcoin này vẫn chưa được sử dụng. Về lý thuyết, người sở hữu chìa khóa riêng liên quan có thể chi tiêu những Bitcoin này, nhưng một khi đã được sử dụng, 50 BTC lặp lại sẽ bị mất, do đó số Bitcoin thực tế có thể sử dụng chỉ còn 100 BTC.
Giao dịch lặp lại có thể gây rắc rối cho ví và trình duyệt blockchain, đồng thời làm mơ hồ nguồn gốc của Bitcoin. Nghiêm trọng hơn, nó có thể được sử dụng để tấn công các sàn giao dịch và các tổ chức khác, gây ra thiệt hại tài chính. Để giải quyết vấn đề này, vào tháng 3 năm 2012, một phân nhánh mềm BIP30 đã được triển khai, cấm sử dụng ID giao dịch lặp lại, trừ khi giao dịch trước đó đã được sử dụng. Vào tháng 9 cùng năm, quy tắc này đã được mở rộng thêm cho tất cả các khối.
BIP34 được kích hoạt vào tháng 3 năm 2013 yêu cầu các giao dịch coinbase phải bao gồm thông tin chiều cao khối, điều này càng làm giảm khả năng xảy ra giao dịch trùng lặp. Tuy nhiên, một số khối trước BIP34 có giao dịch coinbase mà byte đầu tiên của scriptSig trùng khớp với chiều cao khối hợp lệ trong tương lai, điều này có nghĩa là rủi ro xảy ra giao dịch trùng lặp vẫn tồn tại, mặc dù cực kỳ hiếm.
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. Để khai thác lỗ hổng này, các thợ mỏ cần phải trả một cái giá lớn, bao gồm việc đốt cháy một lượng lớn Bitcoin như một khoản phí giao dịch. Xét đến chi phí và độ khó, lỗ hổng này không cấu thành một mối đe dọa an ninh chính đối với hệ thống Bitcoin.
Mặc dù vậy, các nhà phát triển vẫn đang cố gắng giải quyết vấn đề này trong nhiều năm qua. Các giải pháp khả thi có thể bao gồm việc thực thi cam kết SegWit, điều này có thể cần phải thực hiện thông qua một phân nhánh mềm. Mặc dù lỗ hổng này gần như không thể bị khai thác trong thực tế, nhưng nó làm nổi bật sự phức tạp của hệ thống Bitcoin và các vấn đề di sản tiềm năng.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
15 thích
Phần thưởng
15
6
Chia sẻ
Bình luận
0/400
BlockchainBouncer
· 19giờ trước
Những lỗi của năm 2010 thật sự khiến người ta nhớ nhung.
Xem bản gốcTrả lời0
RiddleMaster
· 22giờ trước
Lỗi này đã phải được sửa từ lâu.
Xem bản gốcTrả lời0
¯\_(ツ)_/¯
· 22giờ trước
Con bug này có chút đặc biệt đấy.
Xem bản gốcTrả lời0
FUD_Vaccinated
· 22giờ trước
Ôi trời, đã bắt đầu nổ bug từ năm 2010.
Xem bản gốcTrả lời0
FlashLoanPrince
· 22giờ trước
Thật không ngờ là coin ảo cũng có thể giao dịch lặp lại?
Lỗ hổng giao dịch lặp lại của Bitcoin: Phân tích sự kiện lịch sử hiếm có và rủi ro trong tương lai
Bitcoin hệ thống giao dịch lặp lại: một lỗ hổng hiếm gặp và thú vị
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 sử dụng 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 đã có hai nhóm giao dịch hoàn toàn giống nhau. Tình huống này có thể xảy ra vì giao dịch coinbase không có đầu vào, mà trực tiếp tạo ra đồng coin mới. Do đó, hai giao dịch coinbase khác nhau có thể gửi cùng một số lượng Bitcoin đến cùng một địa chỉ, tạo ra giao dịch hoàn toàn nhất quán. Vì những giao dịch này có nội dung giống nhau, nên ID giao dịch của chúng cũng sẽ khớp.
Hai nhóm giao dịch lặp lại này xảy ra giữa ngày 14 và 15 tháng 11 năm 2010, với khoảng thời gian khoảng 16 giờ. ID của nhóm giao dịch lặp lại đầu tiên bắt đầu bằng d5d2 và kết thúc bằng 8599; nhóm thứ hai bắt đầu bằng e3bf và kết thúc bằng b468. Thú vị là, mặc dù d5d2....8599 đã trở thành bản sao trước, nhưng sự xuất hiện đầu tiên của nó trên blockchain lại muộn hơn e3bf....b468.
Tổng số lượng Bitcoin liên quan đến các giao dịch lặp lại này là 200 BTC, mỗi giao dịch 50 BTC. Tính đến thời điểm hiện tại, những Bitcoin này vẫn chưa được sử dụng. Về lý thuyết, người sở hữu chìa khóa riêng liên quan có thể chi tiêu những Bitcoin này, nhưng một khi đã được sử dụng, 50 BTC lặp lại sẽ bị mất, do đó số Bitcoin thực tế có thể sử dụng chỉ còn 100 BTC.
Giao dịch lặp lại có thể gây rắc rối cho ví và trình duyệt blockchain, đồng thời làm mơ hồ nguồn gốc của Bitcoin. Nghiêm trọng hơn, nó có thể được sử dụng để tấn công các sàn giao dịch và các tổ chức khác, gây ra thiệt hại tài chính. Để giải quyết vấn đề này, vào tháng 3 năm 2012, một phân nhánh mềm BIP30 đã được triển khai, cấm sử dụng ID giao dịch lặp lại, trừ khi giao dịch trước đó đã được sử dụng. Vào tháng 9 cùng năm, quy tắc này đã được mở rộng thêm cho tất cả các khối.
BIP34 được kích hoạt vào tháng 3 năm 2013 yêu cầu các giao dịch coinbase phải bao gồm thông tin chiều cao khối, điều này càng làm giảm khả năng xảy ra giao dịch trùng lặp. Tuy nhiên, một số khối trước BIP34 có giao dịch coinbase mà byte đầu tiên của scriptSig trùng khớp với chiều cao khối hợp lệ trong tương lai, điều này có nghĩa là rủi ro xảy ra giao dịch trùng lặp vẫn tồn tại, mặc dù cực kỳ hiếm.
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. Để khai thác lỗ hổng này, các thợ mỏ cần phải trả một cái giá lớn, bao gồm việc đốt cháy một lượng lớn Bitcoin như một khoản phí giao dịch. Xét đến chi phí và độ khó, lỗ hổng này không cấu thành một mối đe dọa an ninh chính đối với hệ thống Bitcoin.
Mặc dù vậy, các nhà phát triển vẫn đang cố gắng giải quyết vấn đề này trong nhiều năm qua. Các giải pháp khả thi có thể bao gồm việc thực thi cam kết SegWit, điều này có thể cần phải thực hiện thông qua một phân nhánh mềm. Mặc dù lỗ hổng này gần như không thể bị khai thác trong thực tế, nhưng nó làm nổi bật sự phức tạp của hệ thống Bitcoin và các vấn đề di sản tiềm năng.