Điểm:1

Đây có phải là thuật toán Proof of Work đơn giản dựa trên SHA256 dễ bị tấn công kéo dài không?

lá cờ us

Nội dung của mỗi khối được băm thành 32 byte bằng cách sử dụng $\operatorname{SHA-256}$ (gọi chuỗi này $a$). Để khối được chấp nhận, phải có một nonce 256 bit (gọi chuỗi này $b$) với điều kiện sao cho $\operatorname{SHA-256}(a\mathbin\|b)$ ($a$ nối với $b$) có $N$ hoặc nhiều bit 0 đứng đầu, trong đó $N$ là một tham số khó khăn.

Đây có phải là thuật toán Proof of Work đơn giản dựa trên $\operatorname{SHA-256}$ dễ bị tấn công kéo dài?

Điểm:1
lá cờ in
  1. Cuộc tấn công mở rộng chiều dài thay đổi kết quả băm do đó, với xác suất cao, các tham số độ khó không còn giá trị. Từ đây $$ h = \operatorname{SHA-256}(a\mathbin\|b\mathbin\|pad1)$$ vào cái này*. $$ h'= \operatorname{SHA-256}(a\mathbin\|b\mathbin\| \text{pad1}\mathbin\|\text{appended_data} \mathbin\| \text{pad2})$$ Chúng tôi không mong đợi chúng bằng nhau, sự bình đẳng là sự kiện không đáng kể.

    Tất nhiên, kẻ tấn công có thể tìm kiếm tiện ích mở rộng (appended_data) có tham số độ khó tương tự.Tuy nhiên, họ không có nhiều thời gian vì một trong các khách hàng đã tìm thấy nonce hợp lệ cho tham số độ khó và nó đã được lan truyền trên mạng.

  2. Người xác minh sẽ nhận được $a$$b$ và kết quả băm $h'$ (kích thước giới hạn là chìa khóa ở đây). Khi họ tính toán giá trị băm, họ sẽ tính toán $h = \operatorname{SHA-256}(a\mathbin\|b)$ và họ sẽ thấy rằng $h \neq h'$ và đẳng thức là biến cố không đáng kể.

    Ngay cả khi chúng có cùng giá trị băm hoặc tham số độ khó hợp lệ, một máy khách được triển khai đúng cách sẽ thấy cuộc tấn công.

Do đó, với việc triển khai đúng cách, một cuộc tấn công kéo dài thời gian không phải là vấn đề. Tuy nhiên, đừng dựa vào việc triển khai vì chúng có thể không chính xác, hãy sử dụng SHA-256 kép như Bitcoin đã làm. Ngoài ra, hãy sử dụng các hàm băm kháng mở rộng độ dài như SHA-512/256, BLAKE2/3, SHA3-256.

Hãy nhớ rằng POW được thiết kế để yêu cầu nhiều công việc, vì vậy việc chọn đôi SHA-256 không phải là một ý tưởng tồi khi thiết kế Bitcoin bắt đầu.


*các miếng đệm
$pad1$ là phần đệm của SHA-256 nơi nắm tay 1 được nối thêm càng nhỏ càng tốt 0s sao cho khi mã hóa độ dài được thêm vào, thông báo là bội số của 512. Kẻ tấn công mở rộng độ dài phải sử dụng phần đệm này và sau đó thêm thông báo mở rộng, sau đó sẽ cần phần đệm bổ sung như $pad2$, quá.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.