Tấn công Eclipse là một cuộc tấn công cơ bản tương đối đơn giản mà kẻ tấn công có thể sử dụng để can thiệp vào các nút trên mạng. Đúng như tên gọi, cuộc tấn công này có thể ngăn nút bị tấn công trong mạng ngang hàng lấy được thông tin hiệu quả, do đó gây gián đoạn mạng hoặc chuẩn bị cho các cuộc tấn công phức tạp hơn.
Nhìn bề ngoài, Cuộc tấn công Eclipse tương tự như Cuộc tấn công Sybil. Mặc dù chúng có chung một số điểm tương đồng (kẻ tấn công làm gián đoạn mạng bằng cách tấn công các nút), mục tiêu tấn công cuối cùng của chúng là khác nhau. Các cuộc tấn công Eclipse nhắm vào một nút duy nhất (vì các lý do được giải thích bên dưới), trong khi các cuộc tấn công Sybil nhắm vào toàn bộ mạng và nhằm mục đích giả mạo danh tiếng của các giao thức mạng.
Khái niệm này được thảo luận chi tiết trong bài báo năm 2015 "Các cuộc tấn công Eclipse vào mạng ngang hàng Bitcoin" từ các nhà nghiên cứu của Đại học Boston và Đại học Do Thái đã báo cáo kết quả thí nghiệm của họ tiến hành các cuộc tấn công nhật thực, cũng như các biện pháp phòng ngừa để chống lại chúng.
Máy khai thác bitcoin Thiết bị chuyên dụng được yêu cầu để tạo và xác minh các khối mới, nhưng các nút không khai thác (hoặc đầy đủ) yêu cầu rất ít sức mạnh tính toán để hoạt động. Bằng cách này, bất kỳ ai cũng có thể vận hành một nút trên thiết bị giá rẻ, điều này cũng góp phần vào tính phân cấp của Bitcoin. Chương trình phần mềm duy trì cơ sở dữ liệu giao dịch được đồng bộ hóa với các đồng nghiệp để luôn đồng bộ với mạng.
Yếu tố hạn chế đối với số lượng lớn kết nối nút là băng thông. Do đó, mặc dù có số lượng lớn thiết bị có thể chạy chương trình nhưng vẫn có giới hạn về số lượng kết nối được đặt trong mạng Bitcoin (tối đa 125 kết nối) và các thiết bị thông thường không thể kết nối trực tiếp với các thiết bị khác.
Trong một cuộc tấn công nhật thực, kẻ tấn công đảm bảo rằng tất cả các kết nối đến mục tiêu được thiết lập trên các nút do kẻ tấn công kiểm soát. Kẻ tấn công trước tiên sẽ gửi một đợt lũ từ địa chỉ IP của chính chúng đến địa chỉ đích và nạn nhân có thể kết nối với địa chỉ IP của kẻ tấn công khi chương trình khởi động lại. Bạn có thể buộc khởi động lại (tức là thực hiện một cuộc tấn công DDoS vào mục tiêu) hoặc chỉ đợi chương trình tự động khởi động lại.
Nếu điều này xảy ra, những nạn nhân không nghi ngờ sẽ rơi vào tay các nút độc hại và kẻ tấn công cung cấp cho họ dữ liệu sai lệch mà họ không thể lấy được từ mạng thực.
Nếu kẻ tấn công tiêu thụ tài nguyên của nút mạng có thể tách chúng ra khỏi mạng, khi đó chúng có động cơ để thực hiện các cuộc tấn công như vậy. Nếu một nút bị cô lập, kẻ tấn công có thể thực hiện nhiều cuộc tấn công liên tiếp.
Nếu một nút độc lập chấp nhận giao dịch chưa được xác nhận, nguy cơ "chi tiêu gấp đôi" sẽ xảy ra. Nếu giao dịch xảy ra có thể đã được phát trước khi vào khối (gửi tới blockchain), thì người gửi có thể dễ dàng thực hiện giao dịch mới ở nơi khác và chi tiêu số tiền tương tự như giao dịch trước đó. Nếu phí giao dịch mới tạo ra cao hơn, thợ đào sẽ ưu tiên giao dịch và coi đó là giao dịch đầu tiên, khiến giao dịch đầu tiên không hợp lệ.
Một số thương nhân và cá nhân chấp nhận các giao dịch không cần xác nhận này. Hãy xem trường hợp của Bob, một doanh nhân bán ô tô cao cấp. Anh ta không biết rằng Alice đã phát động một cuộc tấn công nhật thực vào nút của anh ta và anh ta không có bất kỳ nghi ngờ nào sau khi thấy đơn đặt hàng một chiếc xe thể thao sang trọng của cô. Alice tạo giao dịch và Bob phát nó lên mạng. Sau khi thấy tin nhắn thanh toán sắp được xác nhận, anh cảm thấy rất hài lòng và đưa chìa khóa xe cho Alice, người đã phóng xe phóng đi với tốc độ chóng mặt.
Trên thực tế, giao dịch không được phát lên mạng. Bob chỉ chuyển giao dịch đến nút độc hại của Alice và nút độc hại do Alice kiểm soát sẽ không chuyển giao dịch đó sang nút thực. nút. Do đó, giao dịch sẽ được coi là không hợp lệ. Tại thời điểm này, Alice thanh toán số tiền tương tự trên mạng (thực), cho chính cô ấy hoặc cho người khác. Ngay cả khi giao dịch ban đầu với Bob cuối cùng được nhìn thấy trên mạng thực, giao dịch đó không thể được xác minh vì số tiền trong tài khoản của Alice đã được sử dụng hết.
"Chi tiêu kép" yêu cầu N xác nhận cũng tương tự như "Chi tiêu kép" không yêu cầu xác nhận nhưng bao gồm nhiều công việc chuẩn bị hơn. Nhiều người bán thích đợi một số lượng xác nhận nhất định trước khi khoản thanh toán được đánh dấu là hợp lệ. Để giải quyết vấn đề, kẻ tấn công sẽ phải khiến cả nút khai thác và nút thương mại phải hứng chịu một cuộc tấn công nhật thực. Nếu kẻ tấn công thiết lập đơn hàng với một người bán, họ sẽ thông báo giao dịch cho những người khai thác (bị ảnh hưởng bởi cuộc tấn công nhật thực). Người bán có thể thấy các giao dịch được xác nhận trong mạng blockchain, nhưng vì mạng nơi đặt người khai thác và người bán bị cô lập nên hầu hết các nút thực không thể chứng kiến blockchain.
Kẻ tấn công gửi thông tin mạng blockchain sai cho người bán. Sau khi người bán thấy rằng giao dịch đã được xác nhận, anh ta sẽ giao hàng. Khi các nút bị tấn công nhật thực này tham gia lại mạng thực, mạng blockchain thực sẽ coi các nút này không hợp lệ và cô lập các nút này (điều này tương tự như cuộc tấn công 51%).
Các nút bị tấn công bởi nhật thực sẽ tiếp tục chạy và không bị ảnh hưởng bởi việc bị cô lập khỏi mạng. Người khai thác sẽ tiếp tục xác minh các khối theo quy tắc do giao thức chỉ định, nhưng các khối được thêm vào sẽ bị loại bỏ trong quá trình đi qua các nút mạng thực.
Về mặt lý thuyết, một cuộc tấn công nhật thực quy mô lớn nhằm vào phần lớn thợ mỏ có thể được sử dụng để tạo điều kiện thuận lợi cho cuộc tấn công 51%. Như hiện tại, chi phí để ngay cả kẻ tấn công có tài nguyên nhất để chiếm lấy phần lớn sức mạnh tính toán của Bitcoin (khoảng 80TH/s) là quá cao và kẻ tấn công ít nhất phải cố gắng với tốc độ hơn 40TH/s.
Chúng tôi giả định rằng sức mạnh tính toán này được phân phối cho 10 người tham gia (mỗi người tham gia có khoảng 8TH/s). Kẻ tấn công có thể loại bỏ những người tham gia này khỏi mạng Cô lập, làm giảm đáng kể các yêu cầu cho các cuộc tấn công 51%. Nếu 5 trong số các nút bị tấn công nhật thực, kẻ tấn công có thể giảm sức mạnh tính toán đi 40TH/s để tìm khối tiếp theo và kẻ tấn công giờ chỉ cần tăng sức mạnh tính toán lên 20TH/s để đạt được mục tiêu tấn công nút . điều khiển.
Các hoạt động phá hoại khác có thể đạt được bằng cách thực hiện các cuộc tấn công nhật thực vào các mục tiêu bao gồm thao túng các nút để tiến hành các hoạt động khai thác bất hợp pháp hoặc lợi dụng sự cạnh tranh sức mạnh tính toán giữa các thợ mỏ để có được khối tiếp theo.
Nếu bạn có đủ địa chỉ IP, An Kẻ tấn công sau đó có thể thực hiện một cuộc tấn công nhật thực vào bất kỳ nút nào. Cách trực tiếp nhất để ngăn điều này xảy ra là chặn các nút truy cập trái phép và chỉ thiết lập các kết nối gửi đi đến các nút cụ thể (chẳng hạn như các IP đã được các nút khác trong mạng ngang hàng đưa vào danh sách trắng). Tuy nhiên, như tài liệu nghiên cứu đã chỉ ra, đây không phải là giải pháp có thể được triển khai trên quy mô lớn và nếu tất cả người tham gia thực hiện các biện pháp này, các nút mới sẽ không thể tham gia mạng.
Tác giả đã đề xuất một số điều chỉnh đối với chương trình Bitcoin và một số điều chỉnh trong số đó đã được tích hợp vào chương trình Bitcoin sau khi sách trắng được phát hành. Bằng cách thực hiện những thay đổi nhỏ đối với mã, chẳng hạn như chọn ngẫu nhiên các kết nối mới và tăng cường lưu trữ địa chỉ, các biện pháp này khiến các cuộc tấn công nhật thực ngày càng tốn kém.
Cuộc tấn công nhật thực được thực hiện trên mạng ngang hàng. Là một triển khai tấn công độc lập, chúng có thể gây khó chịu. Mục đích thực sự của việc tiến hành một cuộc tấn công nhật thực thực ra là để thực hiện các cuộc tấn công khác có thể có tác động lớn hơn hoặc để mang lại cho kẻ tấn công một lợi thế trong việc khai thác.
Nói chung, các cuộc tấn công nhật thực không có tác động nghiêm trọng và bất chấp các biện pháp phòng ngừa được triển khai trong mạng blockchain, mối đe dọa vẫn tồn tại. Các cuộc tấn công Eclipse, giống như hầu hết các cuộc tấn công mà Bitcoin và hầu hết các loại tiền điện tử khác phải đối mặt, cách phòng thủ tốt nhất là làm cho những kẻ tấn công độc hại không thể kiếm được lợi nhuận.