Gần đây, một nhà phát triển Bitcoin đã đề xuất một đề xuất phân tách mềm mới 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. Một trong những lỗ hổng nghiêm trọng hơn được gọi là "tấn công xoắn thời gian", bài viết này sẽ thảo luận chi tiết về vấn đề này.
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 thời gian biến dạng, chúng ta hãy xem lại các quy tắc bảo vệ thao túng thời gian hiện tại:
Thời gian trung vị đã qua (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 cuối cùng.
Quy tắc thời gian khối trong tương lai: Dấu thời gian khối không được sớm hơn thời gian trung vị của các nút ngang hàng quá 2 giờ. 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.
Quy tắc MPT ngăn chặn dấu thời gian khối quá hồi tố, trong khi quy tắc khối tương lai ngăn chặn dấu thời gian quá sớm. Đáng chú ý là, không thể thực hiện cơ chế tương tự như quy tắc khối tương lai để ngăn chặn khối có dấu thời gian trong quá khứ, vì điều này có thể ảnh hưởng đến việc đồng bộ hóa chuỗi khối ban đầu. Cuộc tấn công biến dạng thời gian chính là lợi dụng dấu thời gian giả mạo, khiến nó quay trở lại rất xa trong quá khứ.
Vấn đề tính toán chu kỳ điều chỉnh độ khó
Chu kỳ điều chỉnh độ khó của Bitcoin bao gồm 2016 khối, tính toán với mục tiêu 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 tính toán 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, vì vậy thời gian mục tiêu lý thuyết 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 con 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 sự nhầm lẫn giữa khoảng thời gian giữa các khối.
Lỗi này khiến thời gian mục tiêu dài hơn 0,05% so với dự kiến. Do đó, khoảng thời gian mục tiêu thực tế của Bitcoin là 10 phút và 0,3 giây, thay vì 10 phút tròn. Mặc dù sai số này có vẻ không đáng kể, nhưng nó liên quan đến một vấn đề nghiêm trọng hơn.
Nguyên lý của tấn công biến dạng thời gian
Cuộc tấn công thời gian biến dạng lợi dụng lỗi này trong việc tính toán độ khó. Trong điều kiện lý tưởng, giả sử việc khai thác hoàn toàn tập trung, thợ mỏ có thể đặt bất kỳ dấu thời gian nào mà giao thức cho phép. Kẻ tấn công sẽ áp dụng chiến lược sau:
Đối với hầu hết các khối, đặt dấu thời gian tiến lên một giây so với khối trước.
Để đẩy nhanh thời gian một cách chậm nhất có thể, thợ mỏ có thể giữ cùng một dấu thời gian trong sáu khối liên tiếp, sau đó tăng thời gian thêm một giây trong khối tiếp theo.
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 của khối đầu tiên trong chu kỳ tiếp theo lại quay trở về quá khứ, sớm hơn một giây so với khối trước khối cuối cùng của chu kỳ trước.
Hành động này tuân theo quy tắc MTP, vì một ngoại lệ đơn lẻ sẽ không ảnh hưởng đến độ trung bình của 11 khối. Bằng cách này, blockchain sẽ dần dần bị chậm lại so với thời gian thực, độ khó sẽ không ngừng tăng. Tuy nhiên, từ chu kỳ điều chỉnh thứ hai trở đi, độ khó sẽ bắt đầu điều chỉnh xuống, cho phép thợ mỏ tạo ra các khối với tốc độ cực nhanh, tiềm năng tạo ra một lượng lớn Bitcoin.
Tính khả thi và thách thức 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 nó gặp phải một số thách thức:
Có thể cần kiểm soát hầu hết sức mạnh tính toán.
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 có thể hạn chế mức độ truy ngược của dấu thời gian ác ý.
Nếu thợ mỏ trung thực tạo ra khối đầu tiên trong bất kỳ cửa sổ điều chỉnh độ khó nào, cuộc tấn công trong chu kỳ đó sẽ không còn hiệu lực.
Quá trình tấn công là công khai và có thể để lại thời gian cho cộng đồng phát hành sửa chữa khẩn cấp.
Giải pháp tiềm năng
Có một vài phương pháp khả thi để sửa lỗi 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 khối trong các cửa sổ 2016 khác nhau.
Hủy quy tắc MTP, yêu cầu thời gian trong mỗi khối luôn phải di chuyển về phía trước.
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 số phút cụ thể trước khối cuối cùng của chu kỳ trước.
Hiện tại, đề xuất làm sạch đồng thuận lớn gợi ý sử dụng phương pháp thứ ba, đặt giới hạn thời gian là 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ể hạn chế hiệu quả khả năng thao túng độ khó xuống dưới.
Về việc nên sử dụng thời gian ân hạn bao lâu, trong ngành có nhiều quan điểm khác nhau. Giới hạn 10 phút và giới hạn 2 giờ đều có ưu nhược điểm riêng, cần được cân nhắc kỹ lưỡng. Dù cuối cùng chọn phương án nào, việc khắc phục lỗ hổng này sẽ cải thiện đáng kể độ an toàn và ổn định của mạng Bitcoin.
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
8
Đăng lại
Chia sẻ
Bình luận
0/400
MintMaster
· 08-12 04:11
Có người vẫn đang nhớ đến việc làm thế giới tiền điện tử à
Xem bản gốcTrả lời0
consensus_whisperer
· 08-11 04:51
Lỗi mới lại đến, cần phải sửa rồi.
Xem bản gốcTrả lời0
liquidation_surfer
· 08-09 19:16
Lại phải bỏ tiền ra để sửa lỗi rồi, trời ạ.
Xem bản gốcTrả lời0
MeaninglessApe
· 08-09 17:34
Lại lại lại xuất hiện lỗ hổng, không biết nói gì với fam.
Xem bản gốcTrả lời0
GhostAddressHunter
· 08-09 17:34
Đã tìm thấy lỗ hổng rồi, có ai không? Nói đen thì là đen thôi.
Xem bản gốcTrả lời0
GasWaster
· 08-09 17:31
Tấn công thì tấn công, dù sao tôi cũng không hiểu thì cũng xong.
Xem bản gốcTrả lời0
MEVHunter
· 08-09 17:11
heh, tìm thấy một lỗ hổng ngon nữa... thời gian chỉ là một biến khác để thao tác thật sự. đã theo dõi lỗ hổng này từ những ngày testnet
Bitcoin đối mặt với tấn công biến dạng thời gian lỗ hổng giao thức gây ra rủi ro an ninh
Bitcoin lỗ hổng bảo mật: Tấn công xoắn thời gian
Gần đây, một nhà phát triển Bitcoin đã đề xuất một đề xuất phân tách mềm mới 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. Một trong những lỗ hổng nghiêm trọng hơn được gọi là "tấn công xoắn thời gian", bài viết này sẽ thảo luận chi tiết về vấn đề này.
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 thời gian biến dạng, chúng ta hãy xem lại các quy tắc bảo vệ thao túng thời gian hiện tại:
Thời gian trung vị đã qua (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 cuối cùng.
Quy tắc thời gian khối trong tương lai: Dấu thời gian khối không được sớm hơn thời gian trung vị của các nút ngang hàng quá 2 giờ. 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.
Quy tắc MPT ngăn chặn dấu thời gian khối quá hồi tố, trong khi quy tắc khối tương lai ngăn chặn dấu thời gian quá sớm. Đáng chú ý là, không thể thực hiện cơ chế tương tự như quy tắc khối tương lai để ngăn chặn khối có dấu thời gian trong quá khứ, vì điều này có thể ảnh hưởng đến việc đồng bộ hóa chuỗi khối ban đầu. Cuộc tấn công biến dạng thời gian chính là lợi dụng dấu thời gian giả mạo, khiến nó quay trở lại rất xa trong quá khứ.
Vấn đề tính toán chu kỳ điều chỉnh độ khó
Chu kỳ điều chỉnh độ khó của Bitcoin bao gồm 2016 khối, tính toán với mục tiêu 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 tính toán 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, vì vậy thời gian mục tiêu lý thuyết 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 con 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 sự nhầm lẫn giữa khoảng thời gian giữa các khối.
Lỗi này khiến thời gian mục tiêu dài hơn 0,05% so với dự kiến. Do đó, khoảng thời gian mục tiêu thực tế của Bitcoin là 10 phút và 0,3 giây, thay vì 10 phút tròn. Mặc dù sai số này có vẻ không đáng kể, nhưng nó liên quan đến một vấn đề nghiêm trọng hơn.
Nguyên lý của tấn công biến dạng thời gian
Cuộc tấn công thời gian biến dạng lợi dụng lỗi này trong việc tính toán độ khó. Trong điều kiện lý tưởng, giả sử việc khai thác hoàn toàn tập trung, thợ mỏ có thể đặt bất kỳ dấu thời gian nào mà giao thức cho phép. Kẻ tấn công sẽ áp dụng chiến lược sau:
Hành động này tuân theo quy tắc MTP, vì một ngoại lệ đơn lẻ sẽ không ảnh hưởng đến độ trung bình của 11 khối. Bằng cách này, blockchain sẽ dần dần bị chậm lại so với thời gian thực, độ khó sẽ không ngừng tăng. Tuy nhiên, từ chu kỳ điều chỉnh thứ hai trở đi, độ khó sẽ bắt đầu điều chỉnh xuống, cho phép thợ mỏ tạo ra các khối với tốc độ cực nhanh, tiềm năng tạo ra một lượng lớn Bitcoin.
Tính khả thi và thách thức 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 nó gặp phải một số thách thức:
Giải pháp tiềm năng
Có một vài phương pháp khả thi để sửa lỗi này:
Hiện tại, đề xuất làm sạch đồng thuận lớn gợi ý sử dụng phương pháp thứ ba, đặt giới hạn thời gian là 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ể hạn chế hiệu quả khả năng thao túng độ khó xuống dưới.
Về việc nên sử dụng thời gian ân hạn bao lâu, trong ngành có nhiều quan điểm khác nhau. Giới hạn 10 phút và giới hạn 2 giờ đều có ưu nhược điểm riêng, cần được cân nhắc kỹ lưỡng. Dù cuối cùng chọn phương án nào, việc khắc phục lỗ hổng này sẽ cải thiện đáng kể độ an toàn và ổn định của mạng Bitcoin.