Chức năng “Memory-Hard” so với “Memory-Bound”?

Sep 17 2020

Một trong những cách tiếp cận để ngăn chặn các cuộc tấn công Sybil hoặc DoS là PoW ràng buộc CPU. Tuy nhiên, do ảnh hưởng của định luật Moore, các phương pháp tiếp cận dựa trên trí nhớ được đề xuất.

Trên thực tế, có hai thuật ngữ khác nhau: (1) chức năng cứng bộ nhớ và (2) chức năng giới hạn bộ nhớ ;

Nó có nghĩa là chúng ta có hai kỹ thuật dựa trên bộ nhớ khác nhau?

Và nếu có, sự khác biệt giữa hai thuật ngữ này là gì?

Trả lời

4 kelalaka Sep 17 2020 at 20:33

Các định nghĩa của Wikipedia rất rõ ràng;

  • hàm ràng buộc bộ nhớ ;

    Giới hạn bộ nhớ đề cập đến một tình huống trong đó thời gian để hoàn thành một vấn đề tính toán nhất định được quyết định chủ yếu bởi dung lượng bộ nhớ cần thiết để lưu trữ dữ liệu.

    Điều này được đề xuất để sử dụng chống lại thư rác, đầu tiên là giới hạn CPU sau đó giới hạn bộ nhớ. Thuật toán này yêu cầu truy cập bộ nhớ theo cách không thể đoán trước để bộ nhớ đệm không hiệu quả. Điều này không khuyến khích những người gửi thư rác.

  • các chức năng khó nhớ

    Trong mật mã, một hàm cứng trong bộ nhớ (MHF) là một hàm tốn dung lượng bộ nhớ đáng kể để đánh giá. Nó khác với các hàm ràng buộc bộ nhớ, hàm này phải trả giá bằng cách làm chậm quá trình tính toán thông qua độ trễ bộ nhớ. MHFs nhận thấy việc sử dụng chúng như một hình thức chứng minh công việc.

    Điều này chống lại sự song song hóa khổng lồ của băm, v.v. Ví dụ, các thợ đào bitcoin tạo ra các trang trại để tính toán SHA2d vì SHA2 không phải là bộ nhớ cứng.

    Có hai biến thể

    • Dữ liệu phụ thuộc
    • Dữ liệu độc lập

    Ví dụ Argon2 có cả hai chế độ và thậm chí kết hợp. Argon2i cho dữ liệu độc lập và Argon2d cho dữ liệu phụ thuộc. Trong chế độ kết hợp Argon2id.