Block withholding: kiểu tấn công không share nào để lộ
Một thợ đào gửi share thật và giấu đi share lẽ ra đã là một khối. Tìm hiểu nó tốn bao nhiêu, ai trả, vì sao có người làm vậy và nó bị phát hiện thế nào.
Tấn công giữ khối là gì?
Đó là một thợ đào gửi mọi share thông thường nhưng giấu đi share lẽ ra đã là một khối. Pool trả tiền cho các share. Khối thì không bao giờ đến.
Mỗi share bạn gửi cho pool là một lời giải thật nhưng chưa đạt mục tiêu khối. Mục tiêu khối là ngưỡng khó hơn mà một hash phải vượt qua để tạo thành khối. Thỉnh thoảng một lời giải cũng vượt qua ngưỡng đó, và share đó là cả một khối.
Share như vậy trông giống mọi share khác cho đến khi pool kiểm tra nó.
Kẻ tấn công làm việc trung thực và gửi mọi share thông thường. Nó lặng lẽ vứt bỏ share lẽ ra đã là một khối. Pool đếm các share và trả tiền cho chúng. Khối mà pool lẽ ra nhận được không bao giờ đến.
Vì sao một share không thể để lộ nó?
Không có gì về kẻ tấn công trông sai ở bất kỳ share riêng lẻ nào. Phần cứng là thật, hashrate cũng vậy. Các share hợp lệ và đến với nhịp đúng. Pool có thể xem xét một share mà không thấy gì cả.
Thứ bị thiếu là một sự vắng mặt, và sự vắng mặt chỉ lộ ra theo thời gian. Một thợ đào nắm một phần hashrate của pool lẽ ra phải tìm được khoảng phần đó trong số khối của pool.
Trong một giờ, điều đó không nói lên gì. Việc tìm khối là ngẫu nhiên, và những quãng im ắng là bình thường. Qua một khoảng đủ dài, nó nói lên rất nhiều.
Nó tốn bao nhiêu, và ai trả?
Pool mất phần thưởng khối lẽ ra nó có. Nhưng khoản mất đó không thật sự rơi vào pool. Đây là phần đáng hiểu trên bất kỳ pool nào.
- Với cơ chế tỷ lệ, vòng tiếp tục cho đến khi người khác tìm được khối. Mọi người trong vòng đã làm việc trên một vòng dài hơn mức lẽ ra. Vì vậy mọi người kiếm ít hơn một chút trên mỗi đơn vị công việc. Chi phí được dàn trải cho các thợ đào trung thực.
- Với cơ chế trả theo share, nó tệ hơn cho nhà vận hành. Pool đã trả cho mọi share bằng tiền túi của mình, và trông vào việc các khối sẽ đến. Một cuộc tấn công kéo dài là khoản rút trực tiếp từ nhà vận hành. Trong lịch sử, đây là trường hợp người ta lo ngại nhất.
Vì sao lại có người làm việc này?
Kẻ tấn công cũng vứt bỏ phần thưởng khối. Thoạt nhìn, đó là tự hại mình. Nó chỉ có lý nếu kẻ tấn công được lợi ở một chỗ mà pool không thấy.
Động cơ thường gặp là cạnh tranh. Một người điều hành pool riêng có thể thuê hoặc hướng hashrate vào một đối thủ và kìm kết quả của nó. Khi đó pool của họ trông may mắn hơn khi so sánh. Các share mà kẻ tấn công vẫn thu được trả tiền cho việc phá hoại.
Trong một biến thể tinh vi hơn, kẻ tấn công giữ khối lại thay vì vứt bỏ. Nó tiếp tục đào riêng trên khối đó, rồi gửi đi sau vào lúc có lợi cho nó. Cách này khó thực hiện hơn. Nó cần một phần lớn hashrate mới đáng thử.
Nó bị phát hiện thế nào?
Việc phát hiện dựa trên thống kê, vì không có tín hiệu nào khác. So sánh số khối mà một người đóng góp đã tìm được với số khối mà số share của họ cho thấy lẽ ra phải tìm được. Làm vậy qua một khoảng đủ dài để may rủi tự cân bằng.
Khoảng thời gian là phần khó.
- Nếu đặt nó ngắn, vận đen thông thường trông giống một cuộc tấn công. Thợ đào trung thực sẽ bị buộc tội liên tục.
- Nếu đặt nó dài, một kẻ tấn công thật hoạt động được một lúc trước khi các con số lên tiếng.
Không có mẹo khéo léo nào để tránh sự đánh đổi này. Nó đến từ tính ngẫu nhiên, không phải từ phần mềm.
Vì vậy một hệ thống phát hiện nghiêm túc đưa câu hỏi cho con người thay vì tự hành động. Một lệnh cấm tự động dựa trên thống kê một ngày nào đó sẽ cấm một người chỉ đơn giản là kém may mắn. Đẩy một thợ đào hợp lệ ra ngoài còn tệ hơn chính cuộc tấn công.
Điều này có ý nghĩa gì với một thợ đào trung thực?
Gần như không gì cả, và điều đó đáng được nói thẳng.
Share của bạn được đếm và trả như nhau trong cả hai trường hợp. Kém may mắn không phải là vi phạm và không thể là vi phạm. Trong bất kỳ khoảng ngắn nào, phần lớn thợ đào đều kém may mắn.
Một chuỗi vòng mà bạn đóng góp nhiều còn pool không tìm được gì là dao động bình thường. Con số may mắn (luck) trên trang thống kê của pool cho bạn thấy mức đó bình thường đến đâu.
Cuộc tấn công này là một lý do khiến pool quan tâm ai hướng hashrate vào mình. Nó cũng là lý do một pool công bố khối và độ may mắn của mình một cách trung thực thì dễ tin hơn. Mọi thứ bạn cần để kiểm tra pool đều có trên trang khối.