Bitcoin giao dịch sao chép hiện tượng: một trường hợp đặc biệt thú vị nhưng có rủi ro thấp
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 hai lần. Tuy nhiên, trong hệ thống Bitcoin có hai nhóm giao dịch hoàn toàn giống nhau. Tình huống này xảy ra vì giao dịch coinbase không có đầu vào, mà tạo ra đồng coin mới. Do đó, hai giao dịch coinbase khác nhau có khả năng gửi cùng một số tiền đến cùng một địa chỉ, cách xây dựng cũng hoàn toàn giống nhau, dẫn đến việc tạo ra giao dịch hoàn toàn giống nhau. Vì nội dung giao dịch giống nhau, ID giao dịch của chúng cũng sẽ khớp, vì ID giao dịch là giá trị băm của dữ liệu giao dịch. Trừ khi xảy ra va chạm băm, nếu không không thể xảy ra ID giao dịch trùng lặp, và va chạm băm chưa từng xảy ra trong Bitcoin hay bất kỳ hệ thống nào khác.
Hai nhóm giao dịch lặp lại này xảy ra trong khoảng thời gian từ ngày 14 đến 15 tháng 11 năm 2010, kéo dài khoảng 16 giờ. Nhóm giao dịch lặp lại đầu tiên (d5d2....8599) mặc dù xuất hiện sau nhóm khác trên blockchain, nhưng được coi là bản sao đầu tiên.
Từ ảnh chụp màn hình của trình duyệt khối, có thể thấy giao dịch lặp lại đầu tiên xuất hiện trong hai khối khác nhau. Điều thú vị là, hành vi mặc định của các trình duyệt khối khác nhau khi hiển thị các giao dịch lặp lại này là khác nhau. Trong bốn khối liên quan, chỉ có một khối chứa các giao dịch khác.
Tổng số Bitcoin liên quan đến các giao dịch lặp lại này là 200 BTC, nhưng thực tế chỉ có 100 BTC là tồn tại. Đến thời điểm hiện tại, 200 BTC này vẫn chưa được sử dụng. Về lý thuyết, nếu ai đó sở hữu khóa riêng liên quan, họ có thể sử dụng những Bitcoin này. Nhưng một khi được sử dụng, 50 BTC lặp lại sẽ không thể sử dụng lại. Về việc sẽ trừ từ block nào khi sử dụng, điều này có thể không chắc chắn.
Giao dịch lặp lại có thể gây ra sự nhầm lẫn cho ví và trình duyệt khối, và cũng có thể bị sử dụng cho các cuộc tấn công gian lận. Để 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 thực hiện, 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 sửa đổi thêm, áp dụng cho tất cả các khối, nhưng giữ lại hai giao dịch lặp lại ban đầu như là ngoại lệ.
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 chiều cao khối, điều này đã giải quyết phần lớn vấn đề giao dịch trùng lặp. Tuy nhiên, trong một số khối trước khi BIP34 được kích hoạt, byte đầu tiên của scriptSig trong giao dịch coinbase lại 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à vẫn còn khả năng trùng lặp tiềm ẩn.
Khối tiếp theo có khả năng xuất hiện giao dịch lặp lại là 1,983,702, dự kiến sẽ được tạo ra vào khoảng tháng 1 năm 2046. Chi phí để khai thác lỗ hổng này rất cao, có thể vượt quá 15 triệu đô la Mỹ, và gần như không mang lại lợi ích thực tế cho kẻ tấn công. Các khối có lỗ hổng tiềm năng sau đó sẽ không xuất hiện cho đến năm 2078.
Xét về độ khó và chi phí để khai thác lỗ hổng này, cũng như tính hiếm hoi của cơ hội, vấn đề giao dịch lặp lại không phải là mối đe dọa an ninh chính đối với Bitcoin. Tuy nhiên, với khoảng thời gian liên quan và tính độc đáo của vấn đề, đây vẫn là một chủ đề đáng suy ngẫm. Các nhà phát triển Bitcoin có thể sẽ tìm cách giải quyết triệt để vấn đề này trước năm 2046, có thể cần thực hiện thông qua một soft fork. Một giải pháp khả thi là thực thi cam kết SegWit.
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.
Giao dịch lặp lại hiếm gặp trong lịch sử Bitcoin: Thảo luận về rủi ro tiềm ẩn trong tương lai và giải pháp
Bitcoin giao dịch sao chép hiện tượng: một trường hợp đặc biệt thú vị nhưng có rủi ro thấp
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 hai lần. Tuy nhiên, trong hệ thống Bitcoin có hai nhóm giao dịch hoàn toàn giống nhau. Tình huống này xảy ra vì giao dịch coinbase không có đầu vào, mà tạo ra đồng coin mới. Do đó, hai giao dịch coinbase khác nhau có khả năng gửi cùng một số tiền đến cùng một địa chỉ, cách xây dựng cũng hoàn toàn giống nhau, dẫn đến việc tạo ra giao dịch hoàn toàn giống nhau. Vì nội dung giao dịch giống nhau, ID giao dịch của chúng cũng sẽ khớp, vì ID giao dịch là giá trị băm của dữ liệu giao dịch. Trừ khi xảy ra va chạm băm, nếu không không thể xảy ra ID giao dịch trùng lặp, và va chạm băm chưa từng xảy ra trong Bitcoin hay bất kỳ hệ thống nào khác.
Hai nhóm giao dịch lặp lại này xảy ra trong khoảng thời gian từ ngày 14 đến 15 tháng 11 năm 2010, kéo dài khoảng 16 giờ. Nhóm giao dịch lặp lại đầu tiên (d5d2....8599) mặc dù xuất hiện sau nhóm khác trên blockchain, nhưng được coi là bản sao đầu tiên.
Từ ảnh chụp màn hình của trình duyệt khối, có thể thấy giao dịch lặp lại đầu tiên xuất hiện trong hai khối khác nhau. Điều thú vị là, hành vi mặc định của các trình duyệt khối khác nhau khi hiển thị các giao dịch lặp lại này là khác nhau. Trong bốn khối liên quan, chỉ có một khối chứa các giao dịch khác.
Tổng số Bitcoin liên quan đến các giao dịch lặp lại này là 200 BTC, nhưng thực tế chỉ có 100 BTC là tồn tại. Đến thời điểm hiện tại, 200 BTC này vẫn chưa được sử dụng. Về lý thuyết, nếu ai đó sở hữu khóa riêng liên quan, họ có thể sử dụng những Bitcoin này. Nhưng một khi được sử dụng, 50 BTC lặp lại sẽ không thể sử dụng lại. Về việc sẽ trừ từ block nào khi sử dụng, điều này có thể không chắc chắn.
Giao dịch lặp lại có thể gây ra sự nhầm lẫn cho ví và trình duyệt khối, và cũng có thể bị sử dụng cho các cuộc tấn công gian lận. Để 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 thực hiện, 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 sửa đổi thêm, áp dụng cho tất cả các khối, nhưng giữ lại hai giao dịch lặp lại ban đầu như là ngoại lệ.
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 chiều cao khối, điều này đã giải quyết phần lớn vấn đề giao dịch trùng lặp. Tuy nhiên, trong một số khối trước khi BIP34 được kích hoạt, byte đầu tiên của scriptSig trong giao dịch coinbase lại 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à vẫn còn khả năng trùng lặp tiềm ẩn.
Khối tiếp theo có khả năng xuất hiện giao dịch lặp lại là 1,983,702, dự kiến sẽ được tạo ra vào khoảng tháng 1 năm 2046. Chi phí để khai thác lỗ hổng này rất cao, có thể vượt quá 15 triệu đô la Mỹ, và gần như không mang lại lợi ích thực tế cho kẻ tấn công. Các khối có lỗ hổng tiềm năng sau đó sẽ không xuất hiện cho đến năm 2078.
Xét về độ khó và chi phí để khai thác lỗ hổng này, cũng như tính hiếm hoi của cơ hội, vấn đề giao dịch lặp lại không phải là mối đe dọa an ninh chính đối với Bitcoin. Tuy nhiên, với khoảng thời gian liên quan và tính độc đáo của vấn đề, đây vẫn là một chủ đề đáng suy ngẫm. Các nhà phát triển Bitcoin có thể sẽ tìm cách giải quyết triệt để vấn đề này trước năm 2046, có thể cần thực hiện thông qua một soft fork. Một giải pháp khả thi là thực thi cam kết SegWit.