Phân tích lỗ hổng tấn công biến dạng thời gian Bitcoin: Nguyên lý, ảnh hưởng và giải pháp khắc phục

robot
Đang tạo bản tóm tắt

Bitcoin lỗ hổng bảo mật: Tấn công xoắn thời gian

Gần đây, nhà phát triển Bitcoin Antoine Poinsot đã đề xuất một đề xuất phân nhánh mềm có tên là "Làm sạch đồ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 tồn tại lâu dài trong giao thức Bitcoin, bao gồm cả vấn đề giao dịch trùng lặp mà chúng ta đã thảo luận gần đây, cũng như lỗ hổng "tấn công xoắn thời gian" nghiêm trọng hơn mà bài viết này sẽ tập trung thảo luận.

Bitcoin bảo mật lỗ hổng: Tấn công thời gian xoắn

Cơ chế bảo vệ 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 cần hiểu các quy tắc bảo vệ thao tác thời gian hiện tại:

  1. 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 11 khối trước đó.

  2. Quy tắc thời gian khối trong tương lai: Dấu thời gian khối không được vượt quá 2 giờ so với thời gian trung vị của các nút ngang hàng. Sự khác biệt tối đa cho phép giữa thời gian của nút và đồng hồ hệ thống cục bộ là 90 phút.

Quy tắc MPT ngăn chặn dấu thời gian khối quá xa so với quá khứ, trong khi quy tắc khối tương lai giới hạn dấu thời gian không được vượt quá vào tương lai. Cần lưu ý rằng 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 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 blockchain ban đầu. Cuộc tấn công biến dạng thời gian chính là việc lợi dụng khả năng giả mạo dấu thời gian cổ xưa.

Bitcoin bảo mật lỗ hổng: Tấn công xoắn thời gian

Lỗi "chỉ 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 tạo khối mục tiêu 10 phút, khoảng 2 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 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 chính xác nên 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 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 về sự khác biệt một, có thể là Satoshi Nakamoto đã nhầm lẫn giữa khối và khoảng cách giữa các 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 dự kiến. Trên thực tế, khoảng thời gian 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. Mặc dù lỗ hổng này có vẻ không đáng kể, nhưng kể từ khi Bitcoin được ra mắt, khoảng thời gian trung bình giữa các khối luôn là 9 phút 36 giây, rõ ràng ít hơn 10 phút. Điều này chủ yếu là do kể từ năm 2009, sức mạnh tính toán trung bình đã tăng lên. Điều này cũng giải thích tại sao sự kiện giảm một nửa gần đây đã diễn ra vào tháng 4 năm 2024, thay vì tháng 1 năm 2025. Chúng ta thực sự đã tiến bộ nhanh hơn. Về lâu dài, khi giá cả và sức mạnh tính toán ổn định, sai số 0,3 giây này có thể giúp chúng ta quay trở lại tiến độ đã định.

Bitcoin bảo mật lỗ hổng: Tấn công thời gian xoắn

Tấn công biến dạng thời gian

Cuộc tấn công bóp méo thời gian lần đầu tiên được phát hiện vào khoảng năm 2011, nó khai thác lỗi của Satoshi Nakamoto trong việc tính toán độ khó. 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 trong phạm vi cho phép của giao thức. Kẻ tấn công sẽ thiết lập 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 đó, nhằm làm chậm càng nhiều càng tốt tiến trình thời gian của chuỗi khối, đồng thời tuân thủ quy tắc MTP. Để tối đa hóa việc làm chậm tiến trình thời gian, thợ mỏ có thể giữ cùng một dấu thời gian trong sáu khối liên tiếp, sau đó trong khối thứ bảy tăng thời gian thêm một giây, và cứ như vậy lặp lại.

Cuộc tấn công này sẽ dẫn đến việc thời gian của blockchain ngày càng lạc hậu so với thời gian thực, trong khi độ khó sẽ liên tục tăng lên, 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, trong khối cuối cùng của mỗi chu kỳ điều chỉnh độ khó, thợ đào sẽ đặt dấu thời gian về thời gian thực trong thế giới. Sau đó, dấu thời gian của khối đầu tiên của chu kỳ điều chỉnh độ khó mới sẽ được đặt lại về quá khứ, chỉ sớm hơn một giây so với khối áp chót của chu kỳ trước đó. Hành động này vẫn tuân thủ quy tắc MTP, vì một ngoại lệ đơn lẻ sẽ không ảnh hưởng đến giá trị 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. Lúc này, thợ mỏ có thể tạo ra các khối với tốc độ rất nhanh, có thể tạo ra một lượng lớn Bitcoin trong thời gian ngắn, từ đó thu lợi bất chính.

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 thực tế gặp nhiều thách thức.

  1. Có thể cần kiểm soát phần lớn sức mạnh tính toán.
  2. Sự tồn tại của những thợ mỏ trung thực sẽ làm tăng độ khó của cuộc tấn công.
  3. Quy tắc MTP và dấu thời gian của thợ mỏ trung thực sẽ hạn chế mức độ hồi tố của dấu thời gian độc hại.
  4. 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 hiệu quả.
  5. Quá trình tấn công là công khai với mọi người, có thể cho cộng đồng đủ thời gian để phát hành sửa lỗi phân nhánh mềm khẩn cấp.

Giải pháp

Có một số phương pháp khả thi để khắc phục lỗ hổng này:

  1. 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 và hoàn toàn sửa lỗi thiếu một. Nhưng điều này có thể cần một fork cứng.

  2. Hủy bỏ quy tắc MTP, yêu cầu thời gian trong mỗi khối luôn tiến về phía trước. Nhưng điều này có thể dẫn đến thời gian bị kẹt ở tương lai xa và gây rắc rối cho các thợ mỏ sử dụng đồng hồ hệ thống.

  3. 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ể trước khối cuối cùng của chu kỳ trước. Trong đề xuất làm sạch đồng thuận lớn của Poinsot, thời gian này được đặt là 2 giờ.

Giới hạn 2 giờ này có những ưu điểm sau:

  • Giảm thiểu tối đa rủi ro của các khối không hợp lệ do sự cố.
  • Phù hợp với quy tắc dấu thời gian khối trong tương lai
  • So với quy tắc hiện tại, đây là một sự thay đổi bảo thủ hơn.
  • Biên độ điều chỉnh 0.6% là khá nhỏ.

Mặc dù điều này vẫn cho phép kẻ tấn công thao túng độ khó giảm khoảng 0,6% mỗi chu kỳ, nhưng đây chỉ là sự thay đổi một lần, không thể tích lũy. Tổng thể, giải pháp này đạt được sự cân bằng tốt giữa việc bảo vệ an ninh mạng và duy trì sự ổn định của hệ thống.

Bitcoin lỗ hổng bảo mật: Tấn công xoắn thời gian

Xem bản gốc
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.
  • Phần thưởng
  • 7
  • Chia sẻ
Bình luận
0/400
ColdWalletGuardianvip
· 5giờ trước
Sửa lỗi này tôi sẽ yên tâm.
Xem bản gốcTrả lời0
BridgeNomadvip
· 5giờ trước
đã bị đốt cháy bởi đủ các cuộc tấn công cầu để biết - vector tấn công này đang khiến tôi bị PTSD juno cầu thật sự
Xem bản gốcTrả lời0
fren.ethvip
· 5giờ trước
Không ai là kẻ ngốc, ai mà không muốn hưởng lợi miễn phí.
Xem bản gốcTrả lời0
NotAFinancialAdvicevip
· 5giờ trước
Đã sửa xong lỗ hổng, người khai thác không được chơi nữa nhé.
Xem bản gốcTrả lời0
retroactive_airdropvip
· 5giờ trước
Sửa một cái cô đơn
Xem bản gốcTrả lời0
GmGmNoGnvip
· 5giờ trước
Lại đang sửa bug, giải quyết một cái thì lại có cái khác.
Xem bản gốcTrả lời0
quiet_lurkervip
· 5giờ trước
Theo lý thuyết, người khai thác nên nổ nồi.
Xem bản gốcTrả lời0
  • Ghim
Giao dịch tiền điện tử mọi lúc mọi nơi
qrCode
Quét để tải xuống ứng dụng Gate
Cộng đồng
Tiếng Việt
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)