什么是 Scrypt?
Scrypt 是一种基于密码的密钥派生函数 (PBKDF),最初被提议作为其他密钥派生函数(如 PBKDF2 和 bcrypt)的替代方案。它旨在更安全地抵御特定类型的攻击,尤其是那些利用专用硬件(如专用集成电路 (ASIC) 和图形处理单元 (GPU))的攻击。
Scrypt 的主要功能和设计目标是:
1. 内存硬度:Scrypt 需要大量内存才能运行,使其能够抵御来自自定义硬件实现(如 ASIC 或 GPU)的攻击,这些硬件的内存与计算能力相比有限。
2. 并行化阻力:Scrypt 被设计为固有顺序的,这意味着计算不能轻易并行化,这限制了使用多个处理单元或核心的潜在加速。
3. 密钥拉伸:与其他 PBKDF 一样,Scrypt 用于密钥拉伸,即从短密码或密码短语派生出长密钥,使其更能抵御暴力攻击。
Scrypt 用于各种加密货币,包括莱特币、狗狗币和 Verge,作为其工作量证明 (PoW) 共识算法的密钥派生函数。通过使用 Scrypt,这些加密货币旨在使其挖矿过程更容易被普通计算机访问,并抵制 ASIC 等专用硬件可能出现的挖矿能力集中化。
虽然 Scrypt 的设计更安全,可以抵御某些类型的攻击,但需要注意的是,其安全保障依赖于所使用的特定参数和足够的内存资源。随着计算能力和硬件能力的发展,可能需要重新评估 Scrypt 的有效性,并探索替代的内存硬密钥派生函数。