ฟังก์ชัน“ Memory-Hard” กับ“ Memory-Bound”?

Sep 17 2020

หนึ่งในแนวทางเพื่อป้องกันการโจมตี Sybil หรือ DoS คือ PoW ที่เชื่อมต่อกับ CPU อย่างไรก็ตามเนื่องจากอิทธิพลของกฎของมัวร์จึงมีการแนะนำแนวทางที่ใช้ความจำ

ตามความเป็นจริงมีสองคำที่แตกต่างกัน: (1) ฟังก์ชันหน่วยความจำยากและ (2) ฟังก์ชันผูกหน่วยความจำ ;

หมายความว่าเรามีเทคนิคการจำสองแบบที่แตกต่างกันหรือไม่?

และถ้าใช่ความแตกต่างระหว่างสองคำนี้คืออะไร?

คำตอบ

4 kelalaka Sep 17 2020 at 20:33

คำจำกัดความของ Wikipedia นั้นชัดเจน

  • ฟังก์ชั่นหน่วยความจำที่ถูกผูกไว้ ;

    ขอบเขตของหน่วยความจำหมายถึงสถานการณ์ที่เวลาในการแก้ไขปัญหาการคำนวณที่กำหนดโดยหลักแล้วจะพิจารณาจากจำนวนหน่วยความจำที่จำเป็นในการเก็บข้อมูล

    สิ่งนี้เสนอให้ใช้กับสแปมโดยใช้ CPU ตัวแรกจากนั้นเชื่อมต่อกับหน่วยความจำ อัลกอริทึมนี้ต้องการเข้าถึงหน่วยความจำในลักษณะที่ไม่สามารถคาดเดาได้เพื่อให้แคชไม่มีประสิทธิภาพ ซึ่งเป็นการกีดกันผู้ส่งสแปม

  • ฟังก์ชั่นหน่วยความจำยาก

    ในการเข้ารหัสนั้น memory hard function (MHF) เป็นฟังก์ชันที่ต้องใช้หน่วยความจำจำนวนมากในการประเมิน มันแตกต่างจากฟังก์ชั่นที่ถูกผูกไว้กับหน่วยความจำซึ่งจะต้องเสียค่าใช้จ่ายโดยการชะลอการคำนวณผ่านเวลาแฝงของหน่วยความจำ MHF พบว่าการใช้งานเป็นรูปแบบหนึ่งของการพิสูจน์การทำงาน

    นี่เป็นการต่อต้านการแฮชแบบขนานขนาดใหญ่เป็นต้นตัวอย่างเช่นผู้ขุด bitcoin สร้างฟาร์มสำหรับการคำนวณ SHA2d เนื่องจาก SHA2 ไม่ใช่หน่วยความจำที่ยาก

    มีสองสายพันธุ์

    • ขึ้นอยู่กับข้อมูล
    • ข้อมูลอิสระ

    ตัวอย่างเช่นArgon2มีทั้งโหมดและรวมกัน Argon2i สำหรับข้อมูลที่เป็นอิสระและ Argon2d สำหรับข้อมูลที่ขึ้นกับ ในโหมดรวม Argon2id