Bitcoin trong giao dịch lặp lại: một thiếu sót thú vị và rủi ro thấp
Tổng quan
Giao dịch Bitcoin thường sử dụng các đầu ra chưa chi tiêu bằng cách tham chiếu đến ID của giao dịch trước đó. Các đầ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 đề thanh toán gấp đôi. 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ó đầ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 đến cùng một địa chỉ, với cách xây dựng hoàn toàn giống nhau, từ đó tạo ra cùng một ID giao dịch.
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, 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 là d5d2....8599, mặc dù nó xuất hiện lần đầu trên blockchain muộn hơn so với giao dịch lặp lại khác e3bf....b468.
Chi tiết giao dịch lặp lại
Hai nhóm giao dịch trùng lặp này xuất hiện trong bốn khối khác nhau. Trình duyệt khối sẽ có các hành vi mặc định khác nhau khi hiển thị các giao dịch này, một số sẽ hiển thị khối sớm hơn, trong khi một số sẽ hiển thị khối muộn hơn.
Trong bốn khối liên quan này, chỉ có một khối (91,812) chứa các giao dịch khác, hợp nhất 1 Bitcoin và 19 Bitcoin thành một đầu ra 20 Bitcoin.
Những đầu ra này có thể sử dụng không?
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, 200 BTC này vẫn chưa được sử dụng. Về lý thuyết, người sở hữu khóa riêng liên quan 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à sẽ bị mất, do đó thực tế chỉ có 100 BTC có thể được khôi phục.
Vấn đề giao dịch lặp lại
Giao dịch lặp lại sẽ gây ra sự lộn xộn cho ví và trình duyệt khối, cũng như dẫn đến nguồn gốc của Bitcoin không rõ ràng. Nó cũng có thể được sử dụng cho một số cuộc tấn công và khai thác lỗ hổng, chẳng hạn như gửi tiền gian lận vào sàn giao dịch.
Giải pháp
Để giải quyết vấn đề giao dịch trùng lặp, vào tháng 3 năm 2012, đã thực hiện phân nhánh mềm BIP30, cấm sử dụng ID giao dịch trùng lặp, 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.
Vào tháng 3 năm 2013, phân nhánh mềm BIP34 yêu cầu giao dịch coinbase phải chứa chiều cao của khối, điều này thực sự giải quyết vấn đề giao dịch trùng lặp. Sau đó, phần mềm lõi Bitcoin đã ngừng kiểm tra BIP30 vì nó không còn cần thiết.
Các vấn đề tiềm năng trong tương lai
Mặc dù BIP34 đã giải quyết được phần lớn vấn đề, nhưng trong một số khối trước khi BIP34 được kích hoạt, byte đầu tiên của scriptSig giao dịch coinbase lại 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ó khả năng xảy ra các giao dịch trùng lặp tại một số chiều cao khối cụ thể trong tương lai.
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, chi phí để khai thác lỗ hổng này rất cao, cần phải đốt một lượng lớn Bitcoin, và gần như không mang lại lợi ích thực tế nào cho kẻ tấn công.
Kết luận
Xét đến độ khó của việc sao chép giao dịch, chi phí cũng như sự hiếm hoi của cơ hội, lỗ hổng này không phải là mối đe dọa an ninh chính đối với Bitcoin. Tuy nhiên, do tính độc đáo và khả năng tồn tại lâu dài, nó vẫn là một vấn đề kỹ thuật thú vị. Các nhà phát triển có thể tìm cách giải quyết triệt để vấn đề này trước năm 2046, có thể thông qua việc phân tách mềm. Một giải pháp tiềm năng 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.
14 thích
Phần thưởng
14
2
Chia sẻ
Bình luận
0/400
SmartMoneyWallet
· 07-22 07:33
Dữ liệu on-chain không bao giờ nói dối, 97% rủi ro đã được BIP34 khóa lại.
Xem bản gốcTrả lời0
AltcoinOracle
· 07-22 07:28
thú vị làm sao giao thức phát triển... các chỉ số chuyên nghiệp của tôi hiển thị xác suất 0.0021% của việc khai thác thực sự thật lòng
Lỗi giao dịch lặp lại trong lịch sử Bitcoin: Nguyên nhân, tác động và phân tích rủi ro trong tương lai
Bitcoin trong giao dịch lặp lại: một thiếu sót thú vị và rủi ro thấp
Tổng quan
Giao dịch Bitcoin thường sử dụng các đầu ra chưa chi tiêu bằng cách tham chiếu đến ID của giao dịch trước đó. Các đầ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 đề thanh toán gấp đôi. 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ó đầ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 đến cùng một địa chỉ, với cách xây dựng hoàn toàn giống nhau, từ đó tạo ra cùng một ID giao dịch.
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, 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 là d5d2....8599, mặc dù nó xuất hiện lần đầu trên blockchain muộn hơn so với giao dịch lặp lại khác e3bf....b468.
Chi tiết giao dịch lặp lại
Hai nhóm giao dịch trùng lặp này xuất hiện trong bốn khối khác nhau. Trình duyệt khối sẽ có các hành vi mặc định khác nhau khi hiển thị các giao dịch này, một số sẽ hiển thị khối sớm hơn, trong khi một số sẽ hiển thị khối muộn hơn.
Trong bốn khối liên quan này, chỉ có một khối (91,812) chứa các giao dịch khác, hợp nhất 1 Bitcoin và 19 Bitcoin thành một đầu ra 20 Bitcoin.
Những đầu ra này có thể sử dụng không?
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, 200 BTC này vẫn chưa được sử dụng. Về lý thuyết, người sở hữu khóa riêng liên quan 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à sẽ bị mất, do đó thực tế chỉ có 100 BTC có thể được khôi phục.
Vấn đề giao dịch lặp lại
Giao dịch lặp lại sẽ gây ra sự lộn xộn cho ví và trình duyệt khối, cũng như dẫn đến nguồn gốc của Bitcoin không rõ ràng. Nó cũng có thể được sử dụng cho một số cuộc tấn công và khai thác lỗ hổng, chẳng hạn như gửi tiền gian lận vào sàn giao dịch.
Giải pháp
Để giải quyết vấn đề giao dịch trùng lặp, vào tháng 3 năm 2012, đã thực hiện phân nhánh mềm BIP30, cấm sử dụng ID giao dịch trùng lặp, 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.
Vào tháng 3 năm 2013, phân nhánh mềm BIP34 yêu cầu giao dịch coinbase phải chứa chiều cao của khối, điều này thực sự giải quyết vấn đề giao dịch trùng lặp. Sau đó, phần mềm lõi Bitcoin đã ngừng kiểm tra BIP30 vì nó không còn cần thiết.
Các vấn đề tiềm năng trong tương lai
Mặc dù BIP34 đã giải quyết được phần lớn vấn đề, nhưng trong một số khối trước khi BIP34 được kích hoạt, byte đầu tiên của scriptSig giao dịch coinbase lại 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ó khả năng xảy ra các giao dịch trùng lặp tại một số chiều cao khối cụ thể trong tương lai.
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, chi phí để khai thác lỗ hổng này rất cao, cần phải đốt một lượng lớn Bitcoin, và gần như không mang lại lợi ích thực tế nào cho kẻ tấn công.
Kết luận
Xét đến độ khó của việc sao chép giao dịch, chi phí cũng như sự hiếm hoi của cơ hội, lỗ hổng này không phải là mối đe dọa an ninh chính đối với Bitcoin. Tuy nhiên, do tính độc đáo và khả năng tồn tại lâu dài, nó vẫn là một vấn đề kỹ thuật thú vị. Các nhà phát triển có thể tìm cách giải quyết triệt để vấn đề này trước năm 2046, có thể thông qua việc phân tách mềm. Một giải pháp tiềm năng là thực thi cam kết SegWit.