Bitcoin có thể bị tấn công thời gian: một mối nguy cơ an ninh tiềm ẩn
Vào ngày 26 tháng 3 năm 2025, các nhà phát triển Bitcoin đã đề xuất một đề xuất phân nhánh mềm có tên gọi "Làm sạch sự đồng thuận lớn". Đề xuất này nhằm khắc phục một số lỗ hổng và điểm yếu lâu dài trong giao thức Bitcoin, trong đó có vấn đề giao dịch trùng lặp mà chúng ta đã thảo luận trước đó. Một lỗ hổng nghiêm trọng hơn được gọi là "tấn công uốn thời gian", đây chính là chủ đề mà bài viết này sẽ đi sâu vào.
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 bóp méo thời gian, chúng ta cần hiểu các quy tắc bảo vệ thao túng thời gian hiện tại:
Thời gian trung vị trước đây (MPT) quy tắc: Dấu thời gian khối phải muộn hơn thời gian trung vị của mười một khối gần nhất.
Quy tắc thời gian khối trong tương lai: Dựa vào hằng số MAX_FUTURE_BLOCK_TIME, dấu thời gian khối không được vượt quá 2 giờ so với thời gian trung bình của mạng. Khoảng cách tối đa cho phép giữa thời gian của nút và đồng hồ hệ thống địa phương là 90 phút, đây là một biện pháp bảo đảm khác.
Các quy tắc MPT đảm bảo rằng các khối sẽ không quá "quay trở lại quá khứ", trong khi các quy tắc khối tương lai ngăn chặn chúng "vượt qua tương lai". Đáng chú ý là không thể thực hiện các quy tắc khối tương lai tương tự để ngăn chặn các khối có 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 blockchain ban đầu. Cuộc tấn công bóp méo thời gian chính là thông qua việc giả mạo dấu thời gian trở về quá khứ rất xa.
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 mục tiêu khối 10 phút, khoảng 2 tuần. Để tính toán điều chỉnh độ khó khai thác, giao thức sẽ tính toán sự chênh lệch dấu thời gian giữa khối đầu tiên và khối cuối cùng trong cửa sổ 2016 khối liên quan. Cửa sổ 2016 khối này thực tế bao gồm 2015 khoảng cách khối (tức là 2016 trừ 1). Do đó, thời gian mục tiêu liên quan được sử dụng nên là 60 giây × 10 phút × 2015 khoảng cách, bằng 1,209,000 giây. Tuy nhiên, giao thức Bitcoin đã sử dụng số 2016 để tính toán mục tiêu. 60 giây × 10 phút × 2016 = 1,209,600 giây. Đây là một lỗi "thiếu một" có thể do nhầm lẫn giữa số lượng khối và số lượng khoảng cách khối.
Lỗi này dẫn đến thời gian mục tiêu dài hơn 0,05% so với mức bình thường. Thực tế, khoảng thời gian giữa các khối mục tiêu của Bitcoin không phải là 10 phút, mà là 10 phút và 0,3 giây. Sự khác biệt nhỏ này hầu như không quan trọng trong hoạt động hàng ngày, đặc biệt là khi xem xét rằng kể từ năm 2009, do 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 thực tế giữa các khối luôn thấp hơn 10 phút.
Nguyên lý của cuộc tấn công bóp méo thời gian
Cuộc tấn công xoắn thời gian lần đầu tiên được phát hiện vào khoảng năm 2011, khai thác lỗi của Satoshi Nakamoto trong việc tính toán độ khó. Ý tưởng cốt lõi của cuộc tấn công là:
Đối với hầu hết các khối, đặt dấu thời gian tiến về phía trước chỉ một giây so với khối trước đó.
Mỗi sáu khối mới di chuyển dấu thời gian về phía trước một giây để tuân thủ quy tắc MPT.
Trong khối cuối cùng của mỗi chu kỳ điều chỉnh độ khó, đặt dấu thời gian thành thời gian thực trong thế giới.
Thời gian đóng dấu khối đầu tiên của chu kỳ tiếp theo lại được đặt về quá khứ.
Hành động này khiến thời gian trên blockchain ngày càng chậm hơn so với thời gian thực, dẫn đến độ khó liên tục tăng lên. Tuy nhiên, do khối cuối cùng của mỗi chu kỳ sử dụng dấu thời gian thực, việc tính toán độ khó sẽ cho rằng thời gian trôi qua chậm hơn thực tế, do đó bắt đầu giảm mạnh độ khó sau chu kỳ điều chỉnh thứ hai.
Tác động tiềm tàng của cuộc tấn công
Nếu triển khai thành công, cuộc tấn công này có thể dẫn đến:
Độ khó giảm mạnh
Tốc độ tạo khối được cải thiện đáng kể
Tạo ra một lượng lớn Bitcoin trong thời gian ngắn
Có thể gây ra sự hỗn loạn trên thị trường
Tuy nhiên, việc thực hiện cuộc tấn công này đối mặt với nhiều thách thức:
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ẽ làm tăng độ khó
Quá trình tấn công có thể được phát hiện kịp thời và thực hiện các biện pháp.
Giải pháp
Để khắc phục lỗ hổng này, có một số phương pháp khả thi:
Sửa đổi thuật toán điều chỉnh độ khó, hoàn toàn khắc phục lỗi "chỉ thiếu một".
Hủy quy tắc MPT, yêu cầu thời gian luôn di chuyển về phía trước trong mỗi khối.
Thiết lập quy tắc giới hạn mới: 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 khoảng thời gian cụ thể trước khối cuối cùng của chu kỳ trước (ví dụ: 2 giờ).
Đề xuất "Dọn dẹp Đại đồng thuận" hiện tại áp dụng phương pháp thứ ba, đề nghị đặt giới hạn 2 giờ. Kế hoạch này không chỉ có thể hiệu quả ngăn chặn tấn công méo thời gian mà còn tối đa hóa việc giảm thiểu rủi ro phát sinh khối không hợp lệ một cách bất ngờ.
Cộng đồng Bitcoin đang tích cực thảo luận và hoàn thiện các đề xuất này để đảm bảo sự an toàn và ổn định lâu dài của mạng. Với sự phát triển không ngừng của công nghệ, chúng ta có lý do để tin rằng mạng Bitcoin sẽ trở nên mạnh mẽ và đáng tin cậy hơn.
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.
11 thích
Phần thưởng
11
4
Chia sẻ
Bình luận
0/400
LiquidityHunter
· 21giờ trước
Lúc nửa đêm lại xuất hiện lỗ hổng bảo mật, giá tụt dốc đi không đi ngồi chờ cơ hội kinh doanh chênh lệch giá.
Xem bản gốcTrả lời0
GasWastingMaximalist
· 21giờ trước
Làm cái quái gì vậy? Lại phải thay đổi quy tắc sao?
Xem bản gốcTrả lời0
ZenMiner
· 21giờ trước
Đào một lúc thì ngủ quên mất, dù sao thì chúng ta cũng không vội.
Xem bản gốcTrả lời0
faded_wojak.eth
· 21giờ trước
Con bug này nghe có vẻ đáng sợ thật, cả ngày chỉ nhìn chằm chằm.
Bitcoin thời gian biến dạng tấn công: Phân tích lỗ hổng ẩn và giải pháp sửa chữa
Bitcoin có thể bị tấn công thời gian: một mối nguy cơ an ninh tiềm ẩn
Vào ngày 26 tháng 3 năm 2025, các nhà phát triển Bitcoin đã đề xuất một đề xuất phân nhánh mềm có tên gọi "Làm sạch sự đồng thuận lớn". Đề xuất này nhằm khắc phục một số lỗ hổng và điểm yếu lâu dài trong giao thức Bitcoin, trong đó có vấn đề giao dịch trùng lặp mà chúng ta đã thảo luận trước đó. Một lỗ hổng nghiêm trọng hơn được gọi là "tấn công uốn thời gian", đây chính là chủ đề mà bài viết này sẽ đi sâu vào.
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 bóp méo thời gian, chúng ta cần hiểu các quy tắc bảo vệ thao túng thời gian hiện tại:
Thời gian trung vị trước đây (MPT) quy tắc: Dấu thời gian khối phải muộn hơn thời gian trung vị của mười một khối gần nhất.
Quy tắc thời gian khối trong tương lai: Dựa vào hằng số MAX_FUTURE_BLOCK_TIME, dấu thời gian khối không được vượt quá 2 giờ so với thời gian trung bình của mạng. Khoảng cách tối đa cho phép giữa thời gian của nút và đồng hồ hệ thống địa phương là 90 phút, đây là một biện pháp bảo đảm khác.
Các quy tắc MPT đảm bảo rằng các khối sẽ không quá "quay trở lại quá khứ", trong khi các quy tắc khối tương lai ngăn chặn chúng "vượt qua tương lai". Đáng chú ý là không thể thực hiện các quy tắc khối tương lai tương tự để ngăn chặn các khối có 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 blockchain ban đầu. Cuộc tấn công bóp méo thời gian chính là thông qua việc giả mạo dấu thời gian trở về quá khứ rất xa.
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 mục tiêu khối 10 phút, khoảng 2 tuần. Để tính toán điều chỉnh độ khó khai thác, giao thức sẽ tính toán sự chênh lệch dấu thời gian giữa khối đầu tiên và khối cuối cùng trong cửa sổ 2016 khối liên quan. Cửa sổ 2016 khối này thực tế bao gồm 2015 khoảng cách khối (tức là 2016 trừ 1). Do đó, thời gian mục tiêu liên quan được sử dụng nên là 60 giây × 10 phút × 2015 khoảng cách, bằng 1,209,000 giây. Tuy nhiên, giao thức Bitcoin đã sử dụng số 2016 để tính toán mục tiêu. 60 giây × 10 phút × 2016 = 1,209,600 giây. Đây là một lỗi "thiếu một" có thể do nhầm lẫn giữa số lượng khối và số lượng khoảng cách khối.
Lỗi này dẫn đến thời gian mục tiêu dài hơn 0,05% so với mức bình thường. Thực tế, khoảng thời gian giữa các khối mục tiêu của Bitcoin không phải là 10 phút, mà là 10 phút và 0,3 giây. Sự khác biệt nhỏ này hầu như không quan trọng trong hoạt động hàng ngày, đặc biệt là khi xem xét rằng kể từ năm 2009, do 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 thực tế giữa các khối luôn thấp hơn 10 phút.
Nguyên lý của cuộc tấn công bóp méo thời gian
Cuộc tấn công xoắn thời gian lần đầu tiên được phát hiện vào khoảng năm 2011, khai thác lỗi của Satoshi Nakamoto trong việc tính toán độ khó. Ý tưởng cốt lõi của cuộc tấn công là:
Hành động này khiến thời gian trên blockchain ngày càng chậm hơn so với thời gian thực, dẫn đến độ khó liên tục tăng lên. Tuy nhiên, do khối cuối cùng của mỗi chu kỳ sử dụng dấu thời gian thực, việc tính toán độ khó sẽ cho rằng thời gian trôi qua chậm hơn thực tế, do đó bắt đầu giảm mạnh độ khó sau chu kỳ điều chỉnh thứ hai.
Tác động tiềm tàng của cuộc tấn công
Nếu triển khai thành công, cuộc tấn công này có thể dẫn đến:
Tuy nhiên, việc thực hiện cuộc tấn công này đối mặt với nhiều thách thức:
Giải pháp
Để khắc phục lỗ hổng này, có một số phương pháp khả thi:
Đề xuất "Dọn dẹp Đại đồng thuận" hiện tại áp dụng phương pháp thứ ba, đề nghị đặt giới hạn 2 giờ. Kế hoạch này không chỉ có thể hiệu quả ngăn chặn tấn công méo thời gian mà còn tối đa hóa việc giảm thiểu rủi ro phát sinh khối không hợp lệ một cách bất ngờ.
Cộng đồng Bitcoin đang tích cực thảo luận và hoàn thiện các đề xuất này để đảm bảo sự an toàn và ổn định lâu dài của mạng. Với sự phát triển không ngừng của công nghệ, chúng ta có lý do để tin rằng mạng Bitcoin sẽ trở nên mạnh mẽ và đáng tin cậy hơn.