什麼是 Scrypt?

Scrypt 是一種基於密碼的密鑰派生函數 (PBKDF),最初被提議作爲其他密鑰派生函數(如 PBKDF2 和 bcrypt)的替代方案。它旨在更安全地抵禦特定類型的攻擊,尤其是那些利用專用硬件(如專用集成電路 (ASIC) 和圖形處理單元 (GPU))的攻擊。

Scrypt 的主要功能和設計目標是:

1. 內存硬度:Scrypt 需要大量內存才能運行,使其能夠抵禦來自自定義硬件實現(如 ASIC 或 GPU)的攻擊,這些硬件的內存與計算能力相比有限。

2. 並行化阻力:Scrypt 被設計爲固有順序的,這意味着計算不能輕易並行化,這限制了使用多個處理單元或核心的潛在加速。

3. 密鑰拉伸:與其他 PBKDF 一樣,Scrypt 用於密鑰拉伸,即從短密碼或密碼短語派生出長密鑰,使其更能抵禦暴力攻擊。

Scrypt 用於各種加密貨幣,包括萊特幣、狗狗幣和 Verge,作爲其工作量證明 (PoW) 共識算法的密鑰派生函數。通過使用 Scrypt,這些加密貨幣旨在使其挖礦過程更容易被普通計算機訪問,並抵制 ASIC 等專用硬件可能出現的挖礦能力集中化。

雖然 Scrypt 的設計更安全,可以抵禦某些類型的攻擊,但需要注意的是,其安全保障依賴於所使用的特定參數和足夠的內存資源。隨着計算能力和硬件能力的發展,可能需要重新評估 Scrypt 的有效性,並探索替代的內存硬密鑰派生函數。