Lỗ hổng giao thức Bitcoin: Tấn công xoắn thời gian
Vào tháng 3 năm 2025, cộng đồng phát triển Bitcoin đã đề xuất một đề xuất phân tách mềm có tên là "Dọn dẹp đồng thuận lớn". Đề xuất này nhằm sửa chữa một số lỗ hổng và điểm yếu tồn tại lâu dài trong giao thức Bitcoin, bao gồm vấn đề giao dịch trùng lặp mà chúng ta vừa thảo luận gần đây. Một lỗ hổng nghiêm trọng hơn được gọi là "tấn công xoắn thời gian", chính là nội dung mà bài viết này sẽ tập trung thảo luận.
Cơ chế bảo vệ dấu thời gian khối Bitcoin
Trước khi thảo luận về cuộc tấn công làm biến dạng thời gian, chúng ta cần hiểu rõ các quy tắc bảo vệ chống lại sự thao túng thời gian trong mạng Bitcoin hiện tại:
Thời gian trung vị trước đó (MPT) quy tắc: Dấu thời gian của khối mới phải muộn hơn trung vị dấu thời gian của 11 khối trước.
Quy tắc thời gian khối trong tương lai: Dấu thời gian của khối mới không được trước thời gian trung bình của các nút mạng quá 2 giờ. Đồng thời, độ chênh lệch thời gian tối đa cho phép giữa các nút là 90 phút, đây là một biện pháp bảo vệ khác.
Quy tắc MPT ngăn chặn dấu thời gian khối quá khứ, trong khi quy tắc khối tương lai giới hạn dấu thời gian quá sớm. Cần lưu ý rằng không thể áp dụng các hạn chế tương tự như quy tắc khối tương lai cho dấu thời gian trong quá khứ, vì điều này có thể ảnh hưởng đến quá trình đồng bộ hóa ban đầu của blockchain. Cuộc tấn công uốn cong thời gian chính là việc giả mạo dấu thời gian đã quay ngược lại một cách đáng kể.
Lỗi "thiếu một" của Satoshi Nakamoto
Chu kỳ điều chỉnh độ khó của Bitcoin bao gồm 2016 khối, tính theo thời gian phát khối 10 phút, khoảng hai tuần. Khi tính toán điều chỉnh độ khó khai thác, giao thức sẽ tính toán chênh lệch dấu thời gian giữa hai khối đầu và cuối trong cửa sổ 2016 khối. Cửa sổ này thực tế bao gồm 2015 khoảng cách khối (2016-1). Do đó, thời gian mục tiêu lý thuyết nên sử dụng là 60 giây × 10 phút × 2015 khoảng cách = 1,209,000 giây. Tuy nhiên, giao thức Bitcoin đã sử dụng con số 2016 để tính toán thời gian mục tiêu: 60 giây × 10 phút × 2016 = 1,209,600 giây. Đây là một lỗi điển hình "thiếu một" rất có thể là Satoshi Nakamoto đã nhầm lẫn giữa số lượng khối và số lượng khoảng cách khối khi tính toán.
Lỗi này khiến thời gian mục tiêu dài hơn 0,05% so với thực tế. Nói cách khác, khoảng thời gian thực tế để tạo ra một khối Bitcoin không phải là 10 phút, mà là 10 phút và 0,3 giây. Sự chênh lệch nhỏ này không đáng kể trong thực tế, vì kể từ khi Bitcoin ra đời, với sự gia tăng liên tục về sức mạnh tính toán, khoảng thời gian trung bình để tạo ra một khối luôn duy trì ở khoảng 9 phút 36 giây, rõ ràng ngắn hơn 10 phút. Điều này cũng giải thích lý do tại sao sự kiện giảm một nửa gần đây đã được đẩy lên tháng 4 năm 2024 thay vì tháng 1 năm 2025. Mặc dù độ sai lệch 0,3 giây có vẻ không đáng kể, nhưng nó đã phát sinh một lỗ hổng nghiêm trọng hơn.
Nguyên lý tấn công biến dạng thời gian
Cuộc tấn công biến dạng thời gian lần đầu tiên được phát hiện vào năm 2011, nó đã lợi dụng lỗi trong việc tính toán độ khó của Satoshi Nakamoto. Giả sử việc khai thác hoàn toàn bị tập trung, thợ mỏ có thể tùy ý đặt dấu thời gian trong phạm vi cho phép của giao thức. Kẻ tấn công sẽ đặt dấu thời gian của phần lớn các khối sớm hơn một giây so với khối trước đó, khiến cho chuỗi khối tiến triển chậm về mặt thời gian, đồng thời tuân thủ quy tắc MTP. Để tối đa hóa việc làm chậm thời gian tiến lên, kẻ tấn công có thể giữ cùng một dấu thời gian cho sáu khối liên tiếp, sau đó tăng một giây cho khối thứ bảy, và cứ như vậy lặp lại.
Hành động này sẽ dẫn đến việc thời gian blockchain dần dần chậm hơn so với thời gian thực, trong khi độ khó ngày càng tăng, khiến việc khai thác trở nên ngày càng khó khăn. Tuy nhiên, để tăng cường hiệu ứng tấn công, kẻ tấn công sẽ đặt thời gian của khối cuối cùng trong mỗi chu kỳ điều chỉnh độ khó thành thời gian thực trên thế giới. Khối đầu tiên của chu kỳ tiếp theo sẽ được đặt trở lại quá khứ, chỉ sớm hơn một giây so với khối thứ hai từ cuối của chu kỳ trước. Hành động này vẫn tuân thủ quy tắc MTP, vì một giá trị bất thường đơn lẻ sẽ không ảnh hưởng đến trung vị của 11 khối.
Sau khi thực hiện cuộc tấn công này, độ khó của chu kỳ đầu tiên sẽ không bị ảnh hưởng. Nhưng từ chu kỳ điều chỉnh thứ hai trở đi, độ khó sẽ bắt đầu giảm đáng kể. Sau đó, kẻ tấn công có thể tạo ra các khối với tốc độ rất nhanh, tiềm năng đúc ra một lượng lớn Bitcoin và thu lợi từ đó.
Phân tích tính khả thi của cuộc tấn công
Mặc dù về lý thuyết, cuộc tấn công này có tính hủy diệt, nhưng việc thực hiện thực tế gặp phải nhiều thách thức:
Có thể cần kiểm soát phần lớn sức mạnh tính toán của mạng.
Sự tồn tại của những thợ mỏ trung thực sẽ tăng độ khó của cuộc tấn công.
Quy tắc MTP và dấu thời gian trung thực sẽ hạn chế mức độ hồi tố của dấu thời gian ác ý.
Nếu thợ mỏ trung thực tạo ra khối đầu tiên của bất kỳ cửa sổ điều chỉnh độ khó nào, cuộc tấn công của chu kỳ đó sẽ không còn hiệu lực.
Quá trình tấn công có thể thấy được bởi tất cả mọi người, có thể kích hoạt sửa chữa phân nhánh mềm khẩn cấp.
Giải pháp tiềm năng
Có một vài cách để khắc phục lỗ hổng này:
Thay đổi thuật toán điều chỉnh độ khó, tính toán khoảng thời gian giữa các cửa sổ 2016 khối khác nhau, đồng thời sửa lỗi "thiếu một". Nhưng điều này có thể cần một đợt phân tách cứng.
Hủy bỏ quy tắc MTP, yêu cầu thời gian của mỗi khối phải tăng dần một cách nghiêm ngặt. Nhưng điều này có thể dẫn đến việc dấu thời gian bị đẩy quá sớm, hoặc gây ra vấn đề do sự khác biệt về đồng hồ giữa các thợ mỏ.
Một giải pháp đơn giản hơn là yêu cầu thời gian của khối đầu tiên trong chu kỳ độ khó mới không sớm hơn một số phút cụ thể so với khối cuối cùng của chu kỳ trước. Thời gian đang được thảo luận dao động từ 10 phút đến 2 giờ.
Trong đề xuất làm sạch đồng thuận lớn nhất mới nhất, các nhà phát triển có xu hướng áp dụng giới hạn 2 giờ. Khoảng thời gian này chiếm khoảng 0,6% thời gian mục tiêu của chu kỳ điều chỉnh độ khó, có thể hiệu quả hạn chế không gian thao tác giảm độ khó.
Dù cuối cùng áp dụng phương án nào, việc khắc phục lỗ hổng tồn tại lâu dài này sẽ tăng cường thêm tính an toàn và ổn định của mạng Bitcoin.
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.
20 thích
Phần thưởng
20
6
Chia sẻ
Bình luận
0/400
TeaTimeTrader
· 07-07 18:30
Lỗi này thật sự đã làm tắc nghẽn thế giới tiền điện tử.
Xem bản gốcTrả lời0
GasFeeCrier
· 07-07 15:25
Cả ngày kêu gas phí đắt, đó không phải là đùa đâu.
Xem bản gốcTrả lời0
ShibaOnTheRun
· 07-04 22:21
Tôi đã giết một cái để xem vấn đề này có chút nghiêm trọng.
Xem bản gốcTrả lời0
NeverPresent
· 07-04 22:15
Sớm muộn gì cũng có chuyện, không ngờ nhanh như vậy.
Xem bản gốcTrả lời0
ChainComedian
· 07-04 22:07
Đừng lo lắng, người khai thác không ngốc đâu.
Xem bản gốcTrả lời0
GasWastingMaximalist
· 07-04 21:59
Lại phải thay đổi nhận thức chung, btc gây rắc rối thật nhiều.
Lỗ hổng giao thức Bitcoin bị phơi bày: Tấn công thời gian xoắn có thể dẫn đến thao tác độ khó quy mô lớn
Lỗ hổng giao thức Bitcoin: Tấn công xoắn thời gian
Vào tháng 3 năm 2025, cộng đồng phát triển Bitcoin đã đề xuất một đề xuất phân tách mềm có tên là "Dọn dẹp đồng thuận lớn". Đề xuất này nhằm sửa chữa một số lỗ hổng và điểm yếu tồn tại lâu dài trong giao thức Bitcoin, bao gồm vấn đề giao dịch trùng lặp mà chúng ta vừa thảo luận gần đây. Một lỗ hổng nghiêm trọng hơn được gọi là "tấn công xoắn thời gian", chính là nội dung mà bài viết này sẽ tập trung thảo luận.
Cơ chế bảo vệ dấu thời gian khối Bitcoin
Trước khi thảo luận về cuộc tấn công làm biến dạng thời gian, chúng ta cần hiểu rõ các quy tắc bảo vệ chống lại sự thao túng thời gian trong mạng Bitcoin hiện tại:
Thời gian trung vị trước đó (MPT) quy tắc: Dấu thời gian của khối mới phải muộn hơn trung vị dấu thời gian của 11 khối trước.
Quy tắc thời gian khối trong tương lai: Dấu thời gian của khối mới không được trước thời gian trung bình của các nút mạng quá 2 giờ. Đồng thời, độ chênh lệch thời gian tối đa cho phép giữa các nút là 90 phút, đây là một biện pháp bảo vệ khác.
Quy tắc MPT ngăn chặn dấu thời gian khối quá khứ, trong khi quy tắc khối tương lai giới hạn dấu thời gian quá sớm. Cần lưu ý rằng không thể áp dụng các hạn chế tương tự như quy tắc khối tương lai cho dấu thời gian trong quá khứ, vì điều này có thể ảnh hưởng đến quá trình đồng bộ hóa ban đầu của blockchain. Cuộc tấn công uốn cong thời gian chính là việc giả mạo dấu thời gian đã quay ngược lại một cách đáng kể.
Lỗi "thiếu một" của Satoshi Nakamoto
Chu kỳ điều chỉnh độ khó của Bitcoin bao gồm 2016 khối, tính theo thời gian phát khối 10 phút, khoảng hai tuần. Khi tính toán điều chỉnh độ khó khai thác, giao thức sẽ tính toán chênh lệch dấu thời gian giữa hai khối đầu và cuối trong cửa sổ 2016 khối. Cửa sổ này thực tế bao gồm 2015 khoảng cách khối (2016-1). Do đó, thời gian mục tiêu lý thuyết nên sử dụng là 60 giây × 10 phút × 2015 khoảng cách = 1,209,000 giây. Tuy nhiên, giao thức Bitcoin đã sử dụng con số 2016 để tính toán thời gian mục tiêu: 60 giây × 10 phút × 2016 = 1,209,600 giây. Đây là một lỗi điển hình "thiếu một" rất có thể là Satoshi Nakamoto đã nhầm lẫn giữa số lượng khối và số lượng khoảng cách khối khi tính toán.
Lỗi này khiến thời gian mục tiêu dài hơn 0,05% so với thực tế. Nói cách khác, khoảng thời gian thực tế để tạo ra một khối Bitcoin không phải là 10 phút, mà là 10 phút và 0,3 giây. Sự chênh lệch nhỏ này không đáng kể trong thực tế, vì kể từ khi Bitcoin ra đời, với sự gia tăng liên tục về sức mạnh tính toán, khoảng thời gian trung bình để tạo ra một khối luôn duy trì ở khoảng 9 phút 36 giây, rõ ràng ngắn hơn 10 phút. Điều này cũng giải thích lý do tại sao sự kiện giảm một nửa gần đây đã được đẩy lên tháng 4 năm 2024 thay vì tháng 1 năm 2025. Mặc dù độ sai lệch 0,3 giây có vẻ không đáng kể, nhưng nó đã phát sinh một lỗ hổng nghiêm trọng hơn.
Nguyên lý tấn công biến dạng thời gian
Cuộc tấn công biến dạng thời gian lần đầu tiên được phát hiện vào năm 2011, nó đã lợi dụng lỗi trong việc tính toán độ khó của Satoshi Nakamoto. Giả sử việc khai thác hoàn toàn bị tập trung, thợ mỏ có thể tùy ý đặt dấu thời gian trong phạm vi cho phép của giao thức. Kẻ tấn công sẽ đặt dấu thời gian của phần lớn các khối sớm hơn một giây so với khối trước đó, khiến cho chuỗi khối tiến triển chậm về mặt thời gian, đồng thời tuân thủ quy tắc MTP. Để tối đa hóa việc làm chậm thời gian tiến lên, kẻ tấn công có thể giữ cùng một dấu thời gian cho sáu khối liên tiếp, sau đó tăng một giây cho khối thứ bảy, và cứ như vậy lặp lại.
Hành động này sẽ dẫn đến việc thời gian blockchain dần dần chậm hơn so với thời gian thực, trong khi độ khó ngày càng tăng, khiến việc khai thác trở nên ngày càng khó khăn. Tuy nhiên, để tăng cường hiệu ứng tấn công, kẻ tấn công sẽ đặt thời gian của khối cuối cùng trong mỗi chu kỳ điều chỉnh độ khó thành thời gian thực trên thế giới. Khối đầu tiên của chu kỳ tiếp theo sẽ được đặt trở lại quá khứ, chỉ sớm hơn một giây so với khối thứ hai từ cuối của chu kỳ trước. Hành động này vẫn tuân thủ quy tắc MTP, vì một giá trị bất thường đơn lẻ sẽ không ảnh hưởng đến trung vị của 11 khối.
Sau khi thực hiện cuộc tấn công này, độ khó của chu kỳ đầu tiên sẽ không bị ảnh hưởng. Nhưng từ chu kỳ điều chỉnh thứ hai trở đi, độ khó sẽ bắt đầu giảm đáng kể. Sau đó, kẻ tấn công có thể tạo ra các khối với tốc độ rất nhanh, tiềm năng đúc ra một lượng lớn Bitcoin và thu lợi từ đó.
Phân tích tính khả thi của cuộc tấn công
Mặc dù về lý thuyết, cuộc tấn công này có tính hủy diệt, nhưng việc thực hiện thực tế gặp phải nhiều thách thức:
Giải pháp tiềm năng
Có một vài cách để khắc phục lỗ hổng này:
Thay đổi thuật toán điều chỉnh độ khó, tính toán khoảng thời gian giữa các cửa sổ 2016 khối khác nhau, đồng thời sửa lỗi "thiếu một". Nhưng điều này có thể cần một đợt phân tách cứng.
Hủy bỏ quy tắc MTP, yêu cầu thời gian của mỗi khối phải tăng dần một cách nghiêm ngặt. Nhưng điều này có thể dẫn đến việc dấu thời gian bị đẩy quá sớm, hoặc gây ra vấn đề do sự khác biệt về đồng hồ giữa các thợ mỏ.
Một giải pháp đơn giản hơn là yêu cầu thời gian của khối đầu tiên trong chu kỳ độ khó mới không sớm hơn một số phút cụ thể so với khối cuối cùng của chu kỳ trước. Thời gian đang được thảo luận dao động từ 10 phút đến 2 giờ.
Trong đề xuất làm sạch đồng thuận lớn nhất mới nhất, các nhà phát triển có xu hướng áp dụng giới hạn 2 giờ. Khoảng thời gian này chiếm khoảng 0,6% thời gian mục tiêu của chu kỳ điều chỉnh độ khó, có thể hiệu quả hạn chế không gian thao tác giảm độ khó.
Dù cuối cùng áp dụng phương án nào, việc khắc phục lỗ hổng tồn tại lâu dài này sẽ tăng cường thêm tính an toàn và ổn định của mạng Bitcoin.