Bitcoin giao dịch lặp lại: một trường hợp hiếm nhưng 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 chi tiêu một lần, nếu không sẽ xảy ra vấn đề thanh toán kép. Tuy nhiên, trong lịch sử Bitcoin đã xảy ra 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ó bất kỳ đầu vào nà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 coin đến cùng một địa chỉ, từ đó tạo ra giao dịch hoàn toàn giống nhau. Vì nội dung của các giao dịch này giống nhau, nên ID giao dịch của chúng cũng giống nhau.
Hai nhóm giao dịch lặp lại này xảy ra 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 được chèn vào giữa nhóm thứ hai. Chúng tôi phân loại các ID giao dịch bắt đầu bằng d5d2 là giao dịch lặp lại đầu tiên, mặc dù nó xuất hiện lần đầu trên blockchain sau giao dịch lặp lại khác.
Trong một số trình duyệt khối, có thể thấy những giao dịch lặp lại này xuất hiện nhiều lần trong các khối khác nhau. 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ị những giao dịch lặp lại này.
Các giao dịch lặp lại này mỗi giao dịch liên quan đến 50 Bitcoin, tổng cộng liên quan đến 200 Bitcoin. Đến thời điểm hiện tại, những Bitcoin này vẫn chưa được chi tiêu. Về lý thuyết, nếu ai đó sở hữu khóa riêng liên quan, họ có thể chi tiêu những Bitcoin này. Nhưng một khi được chi tiêu, 50 Bitcoin lặp lại đó sẽ bị mất, do đó số Bitcoin thực tế có thể sử dụng chỉ còn 100 Bitcoin. Còn về việc những đồng coin này sẽ được chi tiêu từ khối nào, hiện tại vẫn chưa xác định.
Giao dịch lặp lại rõ ràng sẽ mang lại một số vấn đề. Chúng có thể gây ra sự nhầm lẫn cho ví và trình duyệt blockchain, cũng như khiến người ta khó xác định nguồn gốc của Bitcoin. Điều này cũng có thể được sử dụng cho một số cuộc tấn công, chẳng hạn như gửi tiền lặp lại đến sàn giao dịch.
Để giải quyết vấn đề này, vào tháng 3 năm 2012, Bitcoin đã triển khai BIP30 thông qua phân tách mềm, cấm sử dụng ID giao dịch trùng lặp để thực hiện giao dịch. Vào tháng 9 năm 2012, đã có những sửa đổi thêm, khiến kiểm tra BIP30 áp dụng cho tất cả các khối, chỉ ngoại trừ hai nhóm giao dịch trùng lặp đã được đề cập trước đó.
Tháng 3 năm 2013, Bitcoin đã kích hoạt phân nhánh mềm BIP34, yêu cầu giao dịch coinbase phải bao gồm thông tin chiều cao khối. Điều này dường như đã giải quyết triệt để vấn đề giao dịch trùng lặp, về lý thuyết tất cả các giao dịch đều nên là duy nhất.
Tuy nhiên, trong một số khối trước khi BIP34 kích hoạt, vẫn có một số giao dịch coinbase có byte đầu tiên của scriptSig trùng khớp với chiều cao của khối hợp lệ trong tương lai. Điều này có nghĩa là trong những trường hợp cực kỳ hiếm, giao dịch lặp lại vẫn có thể xảy ra. Khối tiếp theo có khả năng xảy ra 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.
Tuy nhiên, với việc xem xét độ khó và chi phí của việc sao chép loại giao dịch này, cũng như cơ hội để tận dụng nó rất hiếm, lỗ hổng này không phải là mối đe dọa an ninh chính đối với Bitcoin. Dù vậy, các nhà phát triển vẫn đang nghiên cứu các phương pháp để sửa chữa triệt để vấn đề này, có thể cần phải thực hiện thông qua một phân nhánh mềm. Một giải pháp sửa chữa khả thi là bắt buộc 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.
Hiện tượng hiếm gặp trong lịch sử Bitcoin: Giao dịch lặp lại và sự tiến hóa của nó
Bitcoin giao dịch lặp lại: một trường hợp hiếm nhưng 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 chi tiêu một lần, nếu không sẽ xảy ra vấn đề thanh toán kép. Tuy nhiên, trong lịch sử Bitcoin đã xảy ra 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ó bất kỳ đầu vào nà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 coin đến cùng một địa chỉ, từ đó tạo ra giao dịch hoàn toàn giống nhau. Vì nội dung của các giao dịch này giống nhau, nên ID giao dịch của chúng cũng giống nhau.
Hai nhóm giao dịch lặp lại này xảy ra 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 được chèn vào giữa nhóm thứ hai. Chúng tôi phân loại các ID giao dịch bắt đầu bằng d5d2 là giao dịch lặp lại đầu tiên, mặc dù nó xuất hiện lần đầu trên blockchain sau giao dịch lặp lại khác.
Trong một số trình duyệt khối, có thể thấy những giao dịch lặp lại này xuất hiện nhiều lần trong các khối khác nhau. 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ị những giao dịch lặp lại này.
Các giao dịch lặp lại này mỗi giao dịch liên quan đến 50 Bitcoin, tổng cộng liên quan đến 200 Bitcoin. Đến thời điểm hiện tại, những Bitcoin này vẫn chưa được chi tiêu. Về lý thuyết, nếu ai đó sở hữu khóa riêng liên quan, họ có thể chi tiêu những Bitcoin này. Nhưng một khi được chi tiêu, 50 Bitcoin lặp lại đó sẽ bị mất, do đó số Bitcoin thực tế có thể sử dụng chỉ còn 100 Bitcoin. Còn về việc những đồng coin này sẽ được chi tiêu từ khối nào, hiện tại vẫn chưa xác định.
Giao dịch lặp lại rõ ràng sẽ mang lại một số vấn đề. Chúng có thể gây ra sự nhầm lẫn cho ví và trình duyệt blockchain, cũng như khiến người ta khó xác định nguồn gốc của Bitcoin. Điều này cũng có thể được sử dụng cho một số cuộc tấn công, chẳng hạn như gửi tiền lặp lại đến sàn giao dịch.
Để giải quyết vấn đề này, vào tháng 3 năm 2012, Bitcoin đã triển khai BIP30 thông qua phân tách mềm, cấm sử dụng ID giao dịch trùng lặp để thực hiện giao dịch. Vào tháng 9 năm 2012, đã có những sửa đổi thêm, khiến kiểm tra BIP30 áp dụng cho tất cả các khối, chỉ ngoại trừ hai nhóm giao dịch trùng lặp đã được đề cập trước đó.
Tháng 3 năm 2013, Bitcoin đã kích hoạt phân nhánh mềm BIP34, yêu cầu giao dịch coinbase phải bao gồm thông tin chiều cao khối. Điều này dường như đã giải quyết triệt để vấn đề giao dịch trùng lặp, về lý thuyết tất cả các giao dịch đều nên là duy nhất.
Tuy nhiên, trong một số khối trước khi BIP34 kích hoạt, vẫn có một số giao dịch coinbase có byte đầu tiên của scriptSig trùng khớp với chiều cao của khối hợp lệ trong tương lai. Điều này có nghĩa là trong những trường hợp cực kỳ hiếm, giao dịch lặp lại vẫn có thể xảy ra. Khối tiếp theo có khả năng xảy ra 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.
Tuy nhiên, với việc xem xét độ khó và chi phí của việc sao chép loại giao dịch này, cũng như cơ hội để tận dụng nó rất hiếm, lỗ hổng này không phải là mối đe dọa an ninh chính đối với Bitcoin. Dù vậy, các nhà phát triển vẫn đang nghiên cứu các phương pháp để sửa chữa triệt để vấn đề này, có thể cần phải thực hiện thông qua một phân nhánh mềm. Một giải pháp sửa chữa khả thi là bắt buộc thực thi cam kết SegWit.