買幣
行情
現貨
合約BTC
理財
活動中心
福利中心
更多
0 費狂歡節
MiMC 雜湊: 什麼是 MiMC 雜湊?MiMC 雜湊是一種密碼學雜湊建構,旨在零知識證明系統及其他算術電路環境中高效率運作。MiMC 是 Minimal Multiplicative Complexity(最小乘法複雜度)的縮寫。此名稱反映了它的主要設計目標:與傳統雜湊函數相比,在電路中表示時盡可能減少乘法運算。在加密貨幣領域,MiMC 雜湊最常被視為適用於 SNARK、STARK、MPC 系統及注重隱私的區塊MiMC 雜湊: 什麼是 MiMC 雜湊?MiMC 雜湊是一種密碼學雜湊建構,旨在零知識證明系統及其他算術電路環境中高效率運作。MiMC 是 Minimal Multiplicative Complexity(最小乘法複雜度)的縮寫。此名稱反映了它的主要設計目標:與傳統雜湊函數相比,在電路中表示時盡可能減少乘法運算。在加密貨幣領域,MiMC 雜湊最常被視為適用於 SNARK、STARK、MPC 系統及注重隱私的區塊

MiMC 雜湊

2026/10/14 17:45
#Advanced
Humanity
H$0.05334-5.77%
SynFutures
F$0.003291+6.53%
PX
PX$0.0108-1.81%
Partisia Blockchain
MPC$0.00861-1.48%
ZKsync
ZK$0.012808-0.11%

什麼是 MiMC 雜湊?

MiMC 雜湊是一種密碼學雜湊建構,旨在零知識證明系統及其他算術電路環境中高效率運作。

MiMC 是 Minimal Multiplicative Complexity(最小乘法複雜度)的縮寫。

此名稱反映了它的主要設計目標:與傳統雜湊函數相比,在電路中表示時盡可能減少乘法運算。

在加密貨幣領域,MiMC 雜湊最常被視為適用於 SNARK、STARK、MPC 系統及注重隱私的區塊鏈應用程式的 ZK 友善雜湊函數。

ASIACRYPT 2016 MiMC 論文資料將 MiMC 描述為一種區塊加密及密碼學雜湊函數提案,特色是乘法複雜度低。

MiMC 並不像 SHA-256 或 Keccak 一樣,主要是為了提升一般軟體在 CPU 上的雜湊速度而設計。

它的設計目標是適用於每個乘法約束都可能增加證明生成成本的環境。

這讓 MiMC 對採用零知識證明、在不揭露私人資料的情況下證明陳述的區塊鏈系統而言十分重要。

MiMC 雜湊為何與加密貨幣息息相關

許多加密貨幣應用程式都需要在零知識電路中使用雜湊,因此 MiMC 雜湊十分重要。

零知識電路可能需要證明使用者知道某個祕密、擁有一項承諾、屬於某棵 Merkle 樹,或遵循某項智能合約規則,同時不揭露隱藏輸入。

傳統雜湊函數在這類電路中可能成本很高,因為在許多有限域證明系統中,位元運算並非原生的低成本運算。

MiMC 的設計適合在有限域中運作,而有限域是許多證明系統所採用的數學環境。

MiMC 參考頁面說明,MiMC 是專為 SNARK 應用設計的區塊加密及雜湊函數家族。

這很有用,因為成本較低的雜湊電路可縮短證明生成時間、降低證明成本,並讓隱私應用更具實用性。

MiMC 雜湊有助於推動 ZK 友善雜湊函數這個更廣泛類別的發展。

即使現在選用更新的 ZK 友善雜湊,MiMC 仍很重要,因為它在歷史上發展成熟、受到深入研究且常被引用。

MiMC 雜湊的運作方式

MiMC 雜湊由有限域上的簡單代數運算構成。

有限域是一個數學集合,其中的加法、減法、乘法及除法都遵循嚴格的模運算規則。

核心概念是透過輪常數及類似金鑰的數值,反覆套用簡單的冪次函數。

MiMC 參考頁面將核心元件描述為在有限域中計算的函數

f(x) = x^3
。

部分實作會依據有限域及安全需求,使用其他指數,例如

x^5
或
x^7
。

輸入會經過多輪轉換,讓最終輸出在不知道輸入與輸出之間的內部關係時,看起來難以預測。

MiMC 作為雜湊函數使用時,通常會放在海綿建構中。

海綿建構會將輸入有限域元素吸收到內部狀態,再從該狀態擠出輸出有限域元素。

circomlib 的 MiMCSponge 電路使用海綿建構,實作 MiMC-2n/n 雜湊。

MiMC 雜湊與最小乘法複雜度

最小乘法複雜度是指設計會盡量減少表示函數所需的乘法運算數量。

這很重要,因為許多零知識證明系統會以乘法類約束的數量衡量電路成本。

在一般程式設計環境中,位元運算雜湊函數可能速度快且實用。

在 ZK 電路中,位元運算可能成本高昂,因為電路必須證明每項運算都正確。

MiMC 使用簡單的代數冪映射,因此可用較少約束表示。

MiMC 論文資料說明,低乘法複雜度的設計目標,源自 MPC、全同態加密及零知識證明等應用;在這些應用中,線性運算的成本相對低廉。

簡單來說,MiMC 試圖縮小證明中成本較高的部分。

因此,MiMC 被稱為 ZK 友善,而不只是快速。

MiMC 雜湊與零知識證明

零知識證明讓一方能在不揭露背後私人資料的情況下,證明某項陳述為真。

當陳述涉及承諾、Merkle 路徑、空值器或隱藏帳戶資料時,可在零知識證明中使用 MiMC 雜湊。

2024 年的MiMC 加速研究論文 AMAZE將 MiMC 描述為成熟的 ZK 友善雜湊,具備適用於 ZKP 應用的簡單代數結構。

ZK 電路可使用 MiMC 證明祕密輸入的雜湊值符合公開承諾。

電路也可以使用 MiMC 證明某個葉節點屬於 Merkle 樹,同時不公開完整路徑。

由於 MiMC 適合算術運算,與主要為位元層級軟體效能設計的雜湊相比,它可能減少約束數量。

約束數量降低,可能讓證明生成更快且成本更低。

在證明時間及驗證成本會影響實際使用體驗的區塊鏈系統中,這尤其重要。

MiMC 雜湊與 SNARK

SNARK 是一類零知識證明系統,通常會以算術電路表示運算。

在許多 SNARK 情境中,乘法約束比加法及常數運算更昂貴。

ZK 友善雜湊函數研究文章說明,在以 R1CS 為基礎的 SNARK 環境中,成本取決於約束數量。

MiMC 的設計目標是降低約束數量。

因此,MiMC 適用於需要反覆計算雜湊的 SNARK 電路。

Merkle 樹證明、隱私轉帳系統、憑證系統及匿名成員資格系統都常需要反覆計算雜湊。

單次雜湊節省少量成本,若電路要計算數百或數千次雜湊,累積下來就可能大幅降低成本。

MiMC 適用於 SNARK 的原因,是它使用了證明系統能自然表示的數學運算。

MiMC 雜湊與 STARK

STARK 是另一類零知識證明系統,採用代數執行軌跡及多項式約束。

MiMC 也可能用於 STARK 情境,因為它具有簡單的代數輪結構。

MiMC 參考頁面隸屬於一個涵蓋 SNARK、STARK 及 MPC 友善對稱金鑰密碼學的網站。

在 STARK 類型的系統中,約束的次數及執行軌跡大小都可能大幅影響效能。

簡單的冪次輪函數可能比位元運算繁重的傳統雜湊函數更容易表示。

這不代表 MiMC 一定是最佳的 STARK 雜湊選擇。

這表示 MiMC 屬於以算術化為導向的密碼學原語家族。

開發者應根據證明系統、有限域、安全等級及實作成熟度選擇雜湊函數。

MiMC 雜湊與有限域

MiMC 雜湊運作於有限域,而非一般無限整數。

有限域為電路提供固定的數學範圍,數值會依質數或二元有限域的大小循環。

MiMC 參考頁面指出,MiMC 運算發生於

GF(q)
,其中
q = p
或
q = 2^n
。

這很重要,因為許多區塊鏈證明系統使用與橢圓曲線相關的質數域。

實作 MiMC 時,必須謹慎選擇有限域參數。

輪函數使用的指數也必須適合該有限域,才能達到預期的密碼學特性。

若某個 MiMC 設計在一種有限域中安全,不應未經審查就直接套用至另一種有限域。

有限域選擇、指數選擇、輪數及常數都屬於安全設計的一部分。

MiMC 雜湊與輪常數

輪常數是在 MiMC 置換或加密的各輪中加入的固定數值。

輪常數有助於避免各輪結構過度對稱或容易預測。

應以透明方式產生適當的常數,讓開發者及稽核人員能相信這些常數並非惡意挑選。

許多實作會以標準雜湊函數,根據公開種子字串產生常數。

ZK 友善雜湊函數研究文章指出,實作通常會使用

MiMC0
及
MiMC1
等字串產生 MiMC 輪常數。

開發者應完整記錄常數的產生方式。

稽核人員應確認實作使用了預期常數,且順序正確。

未記錄的常數會降低密碼學實作的可信度。

MiMC 雜湊與海綿建構

海綿建構是利用置換函數建立雜湊函數的常見方法。

海綿建構包含吸收階段及擠出階段。

在吸收階段,輸入值會混入部分內部狀態。

在擠出階段,系統會從轉換後的狀態產生輸出值。

ZK 友善雜湊研究文章說明,MiMC 雜湊以海綿架構為基礎,將訊息區塊吸收到部分狀態中,再透過 MiMC 置換進行轉換。

海綿設計很有用,因為它能支援可變長度輸入及彈性輸出長度。

在加密貨幣電路中,這有助於將多個有限域元素雜湊成一個承諾或摘要。

不過,速率、容量、有限域大小及輪數等海綿參數都必須謹慎選擇。

MiMC 雜湊與 SHA-256 的差異

MiMC 雜湊與 SHA-256 都是密碼學雜湊函數,但兩者針對不同環境最佳化。

SHA-256 廣泛用於傳統軟體、硬體及工作量證明系統。

MiMC 雜湊則針對算術電路及有限域證明系統最佳化。

由於 SHA-256 使用位元運算、旋轉及布林邏輯,因此其電路可能需要大量約束。

在許多 SNARK 環境中,MiMC 電路可能成本低得多,因為其運算符合有限域算術。

這不代表 MiMC 應取代所有情境中的 SHA-256。

這表示當雜湊必須在 ZK 電路中得到證明時,MiMC 可能更合適。

對一般鏈下檔案雜湊或廣泛標準化的相容需求而言,傳統雜湊函數仍可能更合適。

MiMC 雜湊與 Keccak 的差異

Keccak 廣泛用於 Ethereum 類型的智能合約系統,是一種通用雜湊原語。

開發者通常會在需要於零知識電路中高效率雜湊時,選用 MiMC。

若要配合既有地址、簽章或合約邏輯,Keccak 的相容性可能很有用。

若要在算術電路中證明隱藏資料之間的關係,MiMC 的效率可能很有用。

如果設計同時需要相容性及高效率證明,開發者可能會在電路外使用 Keccak,在電路內使用 MiMC。

這種分工必須謹慎設計,因為不同的雜湊函數會產生不同的承諾及信任假設。

使用者不應假設 MiMC 摘要與 Keccak 摘要可以互換。

正確的選擇取決於雜湊的運算位置及需要驗證的內容。

MiMC 雜湊與 Poseidon 的差異

MiMC 與 Poseidon 都是 ZK 友善雜湊函數。

MiMC 歷史較久,並具有重要的歷史地位。

Poseidon 是較新的算術化導向雜湊,在某些輸入及證明系統中效率可能更高,因此常用於現代 ZK 系統。

ZK 友善雜湊函數研究文章將 MiMC 描述為第一個 ZK 友善雜湊函數,並指出之後出現了更新的 ZK 友善雜湊函數。

這不代表 MiMC 在所有情況下都已過時。

這表示開發者應比較安全性分析、電路成本、函式庫支援、稽核紀錄、有限域相容性及生態系統預期。

現有協議可能會繼續使用 MiMC,以維持與已部署承諾及 Merkle 根的相容性。

新協議則可能在完成效能測試及稽核審查後,選用其他 ZK 友善雜湊函數。

Merkle 樹中的 MiMC 雜湊

MiMC 雜湊常用於零知識系統中的 Merkle 樹。

Merkle 樹透過反覆雜湊節點配對,將大量數值壓縮成一個根值。

使用者可以透過提供 Merkle 路徑,證明某個葉節點屬於該樹。

在 ZK 電路中,使用者可以證明該路徑有效,同時不揭露不必要的私人資料。

如果電路在每一層都使用位元運算繁重的一般雜湊函數,證明成本可能很高。

使用 MiMC 可降低每個雜湊步驟的約束成本。

因此,MiMC 會出現在隱私、身分識別、投票及成員資格證明設計中。

Merkle 樹的安全性仍取決於雜湊函數正確、樹狀結構正確,以及電路約束正確。

承諾中的 MiMC 雜湊

承諾可讓使用者先鎖定某個值,而不立即揭露該值。

MiMC 雜湊可用來從祕密數值及隨機數產生承諾。

例如,協議可能會將祕密票據數值、持有者金鑰及隨機鹽值雜湊成公開承諾。

之後,使用者可在 ZK 電路中證明自己知道其中的隱藏資料。

如果雜湊函數及協議設計正確,公開承諾就不會揭露祕密輸入。

這種模式常見於保護隱私的加密貨幣系統。

MiMC 有助於在電路中高效率驗證承諾雜湊。

承諾方案仍須包含足夠的隨機性,以避免他人猜測範圍較小的祕密值。

空值器中的 MiMC 雜湊

空值器是一種用來防止重複支付或重複領取,同時不揭露原始祕密的數值。

MiMC 雜湊可用於根據祕密金鑰、票據或身分值推導空值器。

執行私人操作時,協議可以公開空值器。

其他使用者可檢查相同的空值器是否曾經出現。

零知識證明可證明空值器是正確推導的,同時不揭露底層祕密。

這對私人轉帳、私人領取及匿名成員操作十分重要。

若空值器雜湊處理錯誤,使用者可能重複支付或失去隱私。

MiMC 可讓空值器驗證更有效率,但仍須仔細稽核完整的協議邏輯。

智能合約中的 MiMC 雜湊

智能合約可能會驗證涉及 MiMC 雜湊承諾或 Merkle 根的證明。

合約可能不會重新計算每個隱藏值,但可以驗證使用 MiMC 運算電路所產生的證明。

如有鏈上雜湊需求,部分合約也可能直接實作 MiMC。

當合約需要採用有限域算術的 ZK 友善雜湊函數時,鏈上 MiMC 可能很有用。

不過,在智能合約中實作密碼學具有風險,因為細微錯誤就可能破壞安全性。

如有可能,開發者應優先使用經審查的函式庫及經稽核的實作。

也應確認鏈上函數與電路函數完全一致。

電路中的 MiMC 與合約中的 MiMC 若不一致,可能導致證明失敗或產生安全漏洞。

MiMC 雜湊與 Circom

Circom 是一種用於編寫零知識證明算術電路的語言。

circomlib 儲存庫包含可重複使用的密碼學原語及其他電路元件範本。

circomlib 包含 MiMCSponge 電路實作。

這很重要,因為許多 ZK 開發者會使用電路函式庫,而不是從頭撰寫每個原語。

使用函式庫可縮短開發時間,但不能取代稽核。

開發者必須確保函式庫版本、參數、約束及有限域均符合協議設計。

也應避免未確認目前函式庫行為,就直接複製舊教學中的過時程式碼片段。

在 ZK 開發中,只有在完整電路中正確使用函式庫函數,才能確保安全。

MiMC 雜湊與約束不足的電路

約束不足的電路是指未能完整限制所聲稱要證明運算的 ZK 電路。

這是使用 MiMC 或任何電路內雜湊函數時,最嚴重的風險之一。

ZK 稽核教學中關於 MiMC 雜湊約束錯誤的案例指出,某個 MiMC 雜湊電路使用了賦值運算子而非約束運算子,因此遺漏一項約束。

問題不在於 MiMC 的數學設計本身必然有漏洞。

問題在於該電路未能限制輸出必須符合預期的雜湊計算。

這是所有 ZK 協議都應重視的教訓。

如果電路並未實際限制使用某項雜湊函數,再強的雜湊函數也無法保護協議。

ZK 開發者應測試約束、進行稽核,並在可行時採用形式化檢查或基於屬性的檢查。

MiMC 雜湊的安全特性

MiMC 雜湊的設計目標,是在所選參數下提供抗碰撞性及抗原像性等密碼學雜湊安全特性。

抗碰撞性是指難以找到兩個不同輸入,使其產生相同的雜湊輸出。

抗原像性是指難以從雜湊輸出還原出輸入。

第二原像抗性是指已知某個輸入時,難以找到另一個不同輸入,使其產生相同的雜湊輸出。

這些特性取決於確切的 MiMC 變體、有限域、指數、輪數、常數及建構模式。

MiMC 參考頁面指出,依其列出的分析,截至當時尚未發現對完整輪數 MiMC-n/n 或 MiMC-p/p 的攻擊,但也提到部分 Feistel 區塊加密變體存在問題。

除非具備充分的密碼學依據,否則開發者不應為了節省約束而減少輪數。

未經專家審查就更改參數,可能削弱安全性。

MiMC 雜湊與輪數

輪數是 MiMC 輪函數套用的次數。

增加輪數通常可提高對密碼分析的抵抗力,但也會增加電路成本。

減少輪數可能提升效能,但也可能降低安全性。

MiMC 參數通常依據有限域大小、指數、安全性分析及建構類型選擇。

circomlib 的 MiMCSponge 實作包含註解,說明特定質數域及指數選擇下的輪數計算方式。

這不代表所有 MiMC 實作都應不加判斷地使用相同輪數。

輪數必須符合確切的有限域、指數、建構方式及安全目標。

協議應記錄 MiMC 參數,讓稽核人員及使用者能夠查證。

MiMC 雜湊與指數

指數是非線性輪函數使用的冪次,例如

x^3
、
x^5
或
x^7
。

原始 MiMC 設計通常以

x^3
說明。

某些有限域可能需要使用不同指數,因為冪次映射必須在該有限域中正常運作。

ZK 友善雜湊研究文章指出,在某些有限域選擇中,有時會以

x^5
或
x^7
取代
x^3
S-box。

這在採用常見配對友善曲線有限域的電路中很常見。

開發者不應將所有 MiMC 變體視為相同。

變更指數會改變密碼學函數,也會改變所需的安全性分析。

實作相容性取決於所有位置使用相同的指數及常數。

MiMC 雜湊與域分離

域分離是指避免在協議中將同一雜湊函數以容易混淆的方式用於不同用途。

協議可能將 MiMC 用於承諾、空值器、Merkle 節點及挑戰值。

如果所有用途都共用相同輸入格式而未加以區隔,就可能產生非預期碰撞或協議混淆。

域分離可透過固定前綴、標籤、不同常數、不同金鑰或結構化輸入格式實現。

確切方法應符合證明系統及有限域表示方式。

良好的域分離有助於簡化協議稽核。

它也能降低在某個情境有效的數值被危險地重用於另一情境的可能性。

MiMC 是一種原語,安全的協議仍須謹慎設計該原語周邊的輸入。

MiMC 雜湊與有限域元素編碼

MiMC 雜湊通常處理的是有限域元素,而非直接處理任意文字字串。

因此會涉及編碼問題。

開發者必須決定如何將位元組、地址、金額、識別碼及公鑰轉換成有限域元素。

不良編碼可能造成歧義、截斷、溢位或跨協議混淆。

例如,除非協議設計允許,否則兩個不同的位元組陣列不應意外映射至相同的有限域元素序列。

必要時,應編碼輸入長度,或以其他方式確保輸入沒有歧義。

所有實作都應對位元組順序、填補方式、模數化簡及有限域邊界採用一致規則。

許多 MiMC 錯誤來自整合不當,而非雜湊函數核心概念本身。

MiMC 雜湊與效能

MiMC 雜湊能在算術電路中有效率運作,因為它會盡量減少成本高昂的乘法類運算。

這可能縮短證明生成時間並縮小電路規模。

2024 年的 AMAZE 論文指出,SHA-2 等標準密碼學雜湊函數在 ZKP 領域可能效率不佳,而 ZK 友善雜湊函數則是以 ZKP 效率為目標打造。

同一篇論文提出針對 ZK 應用進行硬體最佳化的 MiMC 實作,並回報其在測試環境中優於標準 CPU 實作的效能。

這顯示 MiMC 在目前的 ZK 硬體及效能研究中仍具相關性。

不過,效能應在實際目標系統中測量。

某個證明系統中效率很高的雜湊函數,在另一個系統中未必是最佳選擇。

效能測試應涵蓋證明者耗時、驗證者成本、約束數量、記憶體、實作成熟度及稽核紀錄。

MiMC 雜湊與稽核需求

MiMC 雜湊用於正式上線的加密貨幣系統時,應接受稽核。

稽核人員應檢查數學參數、電路約束、輸入編碼、域分離、實作語言及智能合約驗證邏輯。

稽核人員應確認電路輸出受到約束,且符合預期的 MiMC 計算。

應比較鏈下程式碼、電路程式碼及鏈上程式碼的測試向量。

應檢查常數是否正確產生並儲存。

應確認輪數是否符合有限域及指數。

應測試零輸入、最大有限域元素、重複輸入及可變長度資料等邊界情況。

只有完整實作安全,密碼學原語才算安全。

MiMC 雜湊與測試向量

測試向量是已知的輸入與輸出範例,可用來確認實作行為是否正確。

MiMC 實作應針對實際使用的確切變體發布或附上測試向量。

測試向量有助於開發者比較電路、JavaScript、Rust、Solidity 或後端證明者的實作。

如果兩種實作對相同輸入產生不同輸出,代表至少有一種實作使用了不同參數或存在錯誤。

測試向量應包含一般輸入、零輸入、邊界值及多輸入海綿範例。

測試向量也應說明有限域、指數、輪數、常數、輸入順序、輸出順序及編碼方式。

若沒有測試向量,就更難發現整合錯誤。

對 ZK 系統而言,測試向量是基本的工程實務之一。

MiMC 雜湊與加密貨幣錢包安全

大多數加密貨幣使用者不會直接使用 MiMC 雜湊。

他們可能會使用在隱藏 ZK 電路中依賴 MiMC 的應用程式。

錢包可能只會顯示證明生成步驟、領取操作或私人交易操作。

無論是了解 MiMC 或使用 ZK 應用程式,使用者都不應提供助記詞或私鑰。

FTC 加密貨幣詐騙指南提醒,詐騙者會透過虛假機會及要求以加密貨幣付款來竊取資金。

使用者應提防假證明產生器、假隱私工具及假錢包客服頁面。

正規的 ZK 應用程式不應要求使用者揭露錢包恢復助記詞。

MiMC 雜湊是一種密碼學工具,並不代表應該將錢包機密資訊交給不明軟體。

MiMC 雜湊與稅務情境

MiMC 雜湊本身不會產生課稅事件。

它是軟體及協議中使用的密碼學原語。

不過,透過採用 MiMC 的 ZK 應用程式進行交易,可能涉及數位資產。

官方的IRS 數位資產頁面指出,數位資產交易可能需要申報,數位資產收入也可能須課稅。

使用加密貨幣應用程式時,使用者應保存轉帳、兌換、領取、獎勵、費用、時間戳記、錢包地址及交易雜湊值等紀錄。

如果使用者沒有自行保存紀錄,注重隱私的工具可能會讓個人記帳更困難。

使用者不應假設零知識交易能免除申報義務。

有一定規模加密貨幣活動的人士應諮詢合格的稅務專業人士。

MiMC 雜湊的優點

MiMC 雜湊可降低許多零知識電路中的雜湊成本。

它採用簡單的有限域算術,適合用於 SNARK 類型的約束。

它具有明確的設計目標,專注於降低乘法複雜度。

它可用於 Merkle 樹、承諾、空值器及私人成員資格證明。

自 ASIACRYPT 2016 發表以來,它一直受到研究。

它已在 ZK 電路函式庫中獲得實際實作。

它在目前的 ZK 加速研究中仍具相關性。

MiMC 的主要優點,是能在雜湊必須於算術電路中得到證明時,提供高效率的密碼學雜湊。

MiMC 雜湊的風險與限制

MiMC 雜湊並非適用於所有情境的通用替代雜湊函數。

在一般軟體環境中,它的標準化程度不如廣泛使用的傳統雜湊函數。

它需要仔細選擇有限域、指數、輪數、常數及建構方式等參數。

如果開發者不理解目標有限域就複製實作,可能會造成安全風險。

如果電路約束不足,也可能不安全。

如果鏈下及鏈上實作不完全一致,也可能不安全。

在某些現代證明系統中,它的效率可能不如更新的 ZK 友善雜湊函數。

最大的限制在於,MiMC 的安全性取決於是否正確使用,而不只是是否採用「MiMC」這個名稱。

如何評估加密貨幣專案中的 MiMC 雜湊

首先確認專案使用的是哪一種 MiMC 變體。

檢視有限域、指數、輪數、常數、速率、容量及輸出長度。

確認實作來自經審查的函式庫,還是自行撰寫的程式碼。

尋找與電路及智能合約實作相符的公開測試向量。

確認專案是否由熟悉零知識電路的審查者進行稽核。

檢視 MiMC 用於承諾、Merkle 樹、空值器、簽章、隨機挑戰值或其他用途。

確認輸入是否採用域分離,並以沒有歧義的方式轉換成有限域元素。

如果專案無法清楚說明 MiMC 參數,應謹慎看待。

使用 MiMC 雜湊常見的錯誤

常見錯誤之一,是假設所有 MiMC 實作都相容。

另一個錯誤是未經安全審查就更改有限域或指數。

第三個錯誤是為了節省約束而減少輪數。

第四個錯誤是使用未記錄的輪常數。

第五個錯誤是忘記在協議的不同用途之間進行域分離。

第六個錯誤是電路程式碼與智能合約程式碼不一致。

第七個錯誤是需要電路約束時,卻只使用賦值運算。

第八個錯誤是在 ZK 情境以外,將 MiMC 視為標準雜湊函數的通用替代品。

開發者的最佳做法

只有在符合證明系統及協議需求時,才使用 MiMC。

盡可能使用經審查的實作。

記錄有限域、指數、常數、輪數、海綿參數及編碼規則。

為每種支援的實作發布測試向量。

確認每個電路輸出都受到適當約束。

針對不同協議用途採用域分離。

同時稽核密碼學設計及實作細節。

在新協議中選用 MiMC 前,先與其他 ZK 友善雜湊函數比較效能。

MiMC 雜湊的 SEO 與 AEO 摘要

MiMC 雜湊是一種為降低乘法複雜度而設計的 ZK 友善密碼學雜湊函數家族。

它最初是為了在 MPC、全同態加密及零知識證明等環境中,實現高效率加密及雜湊而提出。

MiMC 在有限域上運作,並依據有限域及變體使用

x^3
、
x^5
或
x^7
等簡單冪次函數。

MiMC 雜湊通常採用海綿建構,吸收輸入有限域元素,再擠出輸出有限域元素。

在加密貨幣領域,MiMC 用於 ZK 友善 Merkle 樹、承諾、空值器、成員資格證明及保護隱私的協議。

MiMC 與 SHA-256 及 Keccak 不同,因為它針對算術電路最佳化,而非一般位元層級軟體雜湊。

MiMC 的主要風險包括參數錯誤、電路約束不足、常數不當、編碼不良、缺少域分離及實作不一致。

使用 MiMC 雜湊時,最謹慎的做法是採用經稽核的參數、經審查的函式庫、公開測試向量及完整的電路約束。

常見問題

什麼是 MiMC 雜湊?

MiMC 雜湊是一種密碼學雜湊建構,旨在零知識證明電路及其他算術環境中高效率運作。

MiMC 代表什麼?

MiMC 是 Minimal Multiplicative Complexity(最小乘法複雜度)的縮寫。

為什麼 MiMC 雜湊被稱為 ZK 友善?

MiMC 雜湊採用能在許多零知識證明電路中高效率表示的算術運算,因此被稱為 ZK 友善。

MiMC 雜湊和 SHA-256 相同嗎?

不同。MiMC 雜湊是為有限域電路設計的,而 SHA-256 是傳統的位元運算雜湊函數,廣泛用於一般軟體及工作量證明系統。

MiMC 雜湊在加密貨幣領域用於哪些地方?

MiMC 雜湊用於 ZK 電路中的 Merkle 樹、承諾、空值器、成員資格證明及保護隱私的應用程式邏輯。

MiMC 雜湊能在有限域上運作嗎?

可以。MiMC 雜湊的設計目標是在有限域上運作,例如許多證明系統採用的質數域。

MiMC 雜湊永遠安全嗎?

不一定。MiMC 的安全性取決於確切的變體、有限域、指數、輪數、常數、建構方式及實作正確性。

MiMC 雜湊可以用於智能合約嗎?

可以。MiMC 可在智能合約系統中實作或驗證,但鏈上實作必須與電路實作完全一致。

在電路中使用 MiMC 雜湊的主要風險是什麼?

主要風險之一是電路約束不足,導致證明實際上並未限制預期的 MiMC 雜湊計算。

新的 ZK 專案都應使用 MiMC 雜湊嗎?

不應如此。新的 ZK 專案應將 MiMC 與其他 ZK 友善雜湊函數比較,並根據安全性、效能、有限域相容性、函式庫支援及稽核需求選擇。

結論

MiMC 雜湊是零知識加密貨幣系統發展歷史及實務中的重要密碼學原語。

它透過減少乘法密集型運算,降低算術電路中的雜湊成本。

因此,它可用於 SNARK、STARK 相關設計、MPC 系統、承諾、Merkle 樹、空值器及私人成員資格證明。

MiMC 的優勢來自簡單的有限域代數及對 ZK 效率的重視。

它的風險在於每個參數及實作細節都很重要。

MiMC 實作必須正確選擇有限域、指數、輪數、常數、海綿參數、輸入編碼及域分離方式。

採用 MiMC 的 ZK 電路也必須正確限制運算過程。

對使用者而言,MiMC 通常隱藏在應用程式的證明系統中,不易察覺。

對開發者而言,MiMC 是一項強大的工具,但必須謹慎工程實作並接受稽核審查。

理解 MiMC 雜湊的最佳方式,是將它視為一種專用的 ZK 友善雜湊函數,可協助加密貨幣協議高效率證明私人運算,但前提是精確實作其參數及電路約束。
ETF單週失血6.79億,花旗看多BTC至11.3萬!
ETF單週失血6.79億,花旗看多BTC至11.3萬!ETF單週失血6.79億,花旗看多BTC至11.3萬!
機構在賭什麼?