Beli Kripto
Pasar
Spot
Futures OILBTC
Tabungan
Pusat Acara
Hub Hadiah
Lainnya
Fest. 0-Biaya
MiMC Hash: Apa Itu MiMC Hash?MiMC Hash adalah konstruksi hash kriptografis yang dirancang agar efisien di dalam sistem zero-knowledge proof dan lingkungan sirkuit aritmetika lainnya.MiMC adalah singkatan dari MiMiMC Hash: Apa Itu MiMC Hash?MiMC Hash adalah konstruksi hash kriptografis yang dirancang agar efisien di dalam sistem zero-knowledge proof dan lingkungan sirkuit aritmetika lainnya.MiMC adalah singkatan dari Mi

MiMC Hash

2026/10/14 17:45
#Advanced
Humanity
H$0.05655+4.62%
PX
PX$0.0132+5.60%
ZKsync
ZK$0.015576+3.77%
Partisia Blockchain
MPC$0.00962+9.94%
Data Network
DATA$0.2003-1.13%

Apa Itu MiMC Hash?

MiMC Hash adalah konstruksi hash kriptografis yang dirancang agar efisien di dalam sistem zero-knowledge proof dan lingkungan sirkuit aritmetika lainnya.

MiMC adalah singkatan dari Minimal Multiplicative Complexity.

Nama tersebut mencerminkan tujuan desain utamanya: menggunakan sangat sedikit operasi perkalian dibandingkan fungsi hash tradisional ketika direpresentasikan di dalam sirkuit.

Dalam kripto, MiMC Hash paling sering dibahas sebagai fungsi hash yang ramah ZK untuk SNARK, STARK, sistem MPC, dan aplikasi blockchain yang berfokus pada privasi.

Catatan makalah MiMC ASIACRYPT 2016 menjelaskan MiMC sebagai rancangan block cipher dan fungsi hash kriptografis dengan kompleksitas perkalian yang rendah.

Tidak seperti SHA-256 atau Keccak, MiMC tidak terutama dirancang untuk kecepatan hashing perangkat lunak biasa pada CPU.

MiMC dirancang untuk lingkungan tempat setiap constraint perkalian dapat meningkatkan biaya pembuatan proof.

Hal ini menjadikan MiMC penting bagi sistem blockchain yang menggunakan zero-knowledge proof untuk membuktikan suatu pernyataan tanpa mengungkap data pribadi.

Mengapa MiMC Hash Penting dalam Kripto

MiMC Hash penting karena banyak aplikasi kripto membutuhkan hash di dalam sirkuit zero-knowledge.

Sirkuit zero-knowledge mungkin perlu membuktikan bahwa pengguna mengetahui suatu rahasia, memiliki commitment, termasuk dalam Merkle tree, atau mematuhi aturan smart contract tanpa mengungkap input tersembunyi.

Fungsi hash tradisional dapat memerlukan biaya tinggi di dalam sirkuit karena operasi bitwise-nya tidak secara alami murah di banyak sistem proof finite field.

MiMC dirancang untuk bekerja secara alami di atas finite field, yaitu lingkungan matematika yang digunakan banyak sistem proof.

Halaman referensi MiMC menjelaskan bahwa MiMC adalah keluarga block cipher dan fungsi hash yang dirancang khusus untuk aplikasi SNARK.

Hal ini berguna karena sirkuit hash yang lebih murah dapat mengurangi waktu pembuatan proof, menurunkan biaya proving, dan membuat aplikasi privasi lebih praktis.

MiMC Hash turut membentuk kategori yang lebih luas dari fungsi hash ramah ZK.

Meskipun hash ramah ZK yang lebih baru kini dipilih, MiMC tetap penting karena telah lama digunakan, dipelajari secara mendalam, dan sering menjadi rujukan.

Cara Kerja MiMC Hash

MiMC Hash dibangun dari operasi aljabar sederhana di atas finite field.

Finite field adalah himpunan matematika tempat penjumlahan, pengurangan, perkalian, dan pembagian mengikuti aturan modular yang ketat.

Gagasan intinya adalah menerapkan fungsi pangkat sederhana secara berulang, disertai konstanta putaran dan nilai yang menyerupai kunci.

Halaman referensi MiMC menjelaskan bahwa komponen intinya adalah fungsi

f(x) = x^3
yang dihitung di dalam finite field.

Beberapa implementasi menggunakan eksponen lain seperti

x^5
atau
x^7
, bergantung pada field dan persyaratan keamanan.

Input ditransformasikan melalui banyak putaran sehingga output akhir tampak tidak dapat diprediksi tanpa mengetahui hubungan internal antara input dan output.

Ketika digunakan sebagai fungsi hash, MiMC sering ditempatkan di dalam konstruksi sponge.

Konstruksi sponge menyerap elemen field input ke dalam state internal, lalu menghasilkan elemen field output dari state tersebut.

Sirkuit MiMCSponge circomlib mengimplementasikan MiMC-2n/n sebagai hash menggunakan konstruksi sponge.

MiMC Hash dan Minimal Multiplicative Complexity

Minimal multiplicative complexity berarti desainnya berupaya mengurangi jumlah operasi perkalian yang diperlukan untuk merepresentasikan fungsi.

Hal ini penting karena banyak sistem zero-knowledge proof mengukur biaya sirkuit berdasarkan constraint yang menyerupai perkalian.

Dalam lingkungan pemrograman biasa, fungsi hash bitwise dapat bekerja cepat dan praktis.

Dalam sirkuit ZK, operasi bitwise dapat menjadi mahal karena sirkuit harus membuktikan bahwa setiap operasi dilakukan dengan benar.

MiMC menggunakan pemetaan pangkat aljabar sederhana yang dapat direpresentasikan dengan lebih sedikit constraint.

Catatan makalah MiMC menjelaskan bahwa kompleksitas perkalian yang rendah didorong oleh aplikasi MPC, enkripsi homomorfik penuh, dan zero-knowledge proof, yang relatif lebih efisien dalam komputasi linear.

Sederhananya, MiMC berupaya memperkecil bagian proof yang paling mahal.

Itulah sebabnya MiMC disebut ramah ZK, bukan sekadar cepat.

MiMC Hash dan Zero-Knowledge Proof

Zero-knowledge proof memungkinkan satu pihak membuktikan bahwa suatu pernyataan benar tanpa mengungkap data pribadi yang mendasarinya.

MiMC Hash dapat digunakan di dalam zero-knowledge proof ketika pernyataan tersebut melibatkan commitment, jalur Merkle, nullifier, atau data akun tersembunyi.

Makalah AMAZE tentang akselerasi MiMC tahun 2024 menjelaskan MiMC sebagai hash ramah ZK yang telah matang dengan struktur aljabar sederhana dan cocok untuk aplikasi ZKP.

Sirkuit ZK dapat menyertakan MiMC untuk membuktikan bahwa input rahasia menghasilkan hash berupa commitment publik.

MiMC juga dapat digunakan untuk membuktikan bahwa sebuah leaf termasuk dalam Merkle tree tanpa mengungkap seluruh jalurnya kepada publik.

Karena kompatibel dengan operasi aritmetika, MiMC dapat mengurangi jumlah constraint dibandingkan hash yang terutama dirancang untuk performa perangkat lunak tingkat bit.

Jumlah constraint yang lebih rendah dapat membuat pembuatan proof lebih cepat dan murah.

Hal ini sangat penting dalam sistem blockchain karena waktu proving dan biaya verifikasi dapat memengaruhi pengalaman pengguna secara nyata.

MiMC Hash dan SNARK

SNARK adalah sistem zero-knowledge proof yang sering merepresentasikan komputasi sebagai sirkuit aritmetika.

Dalam banyak konfigurasi SNARK, constraint perkalian lebih mahal dibandingkan penjumlahan dan operasi konstanta.

Artikel riset tentang fungsi hash ramah ZK menjelaskan bahwa biaya dalam konfigurasi SNARK berbasis R1CS ditentukan oleh jumlah constraint.

MiMC dirancang untuk menjaga jumlah constraint tetap rendah.

Hal ini menjadikan MiMC menarik untuk sirkuit SNARK yang memerlukan hashing berulang kali.

Hashing berulang umum digunakan dalam proof Merkle tree, sistem transfer privat, sistem kredensial, dan sistem keanggotaan anonim.

Penghematan kecil untuk setiap hash dapat menjadi penghematan besar jika sirkuit melakukan hashing ratusan atau ribuan kali.

Nilai MiMC untuk SNARK berasal dari penggunaan matematika yang dapat direpresentasikan secara alami oleh sistem proof.

MiMC Hash dan STARK

STARK adalah keluarga sistem zero-knowledge proof lainnya yang menggunakan jejak eksekusi aljabar dan constraint polinomial.

MiMC juga dapat dibahas dalam konteks STARK karena struktur putaran aljabarnya sederhana.

Halaman referensi MiMC berada di situs yang lebih luas tentang kriptografi kunci simetris yang ramah SNARK, STARK, dan MPC.

Dalam sistem bergaya STARK, derajat constraint dan ukuran jejak eksekusi dapat sangat memengaruhi performa.

Fungsi putaran berbasis pangkat sederhana dapat lebih mudah direpresentasikan daripada fungsi hash tradisional yang banyak menggunakan operasi bit.

Ini bukan berarti MiMC selalu menjadi pilihan hash STARK terbaik.

Artinya, MiMC termasuk dalam keluarga primitif kriptografis yang dirancang untuk aritmetisasi.

Developer sebaiknya memilih hash yang sesuai dengan sistem proof, field, tingkat keamanan, dan kematangan implementasi.

MiMC Hash dan Finite Field

MiMC Hash bekerja di atas finite field, bukan bilangan bulat biasa yang tidak terbatas.

Finite field memberi sirkuit ruang matematika tetap, tempat nilai berputar kembali berdasarkan ukuran field prima atau biner.

Halaman referensi MiMC menyebutkan bahwa komputasi MiMC berlangsung di

GF(q)
, dengan
q = p
atau
q = 2^n
.

Hal ini penting karena banyak sistem proof blockchain menggunakan field prima yang berkaitan dengan kurva eliptik.

Implementasi MiMC harus memilih parameter field dengan cermat.

Eksponen yang digunakan dalam fungsi putaran juga harus sesuai dengan field agar pemetaan tersebut memiliki karakteristik kriptografis yang diinginkan.

Desain MiMC yang aman di satu field tidak boleh begitu saja disalin ke field lain.

Pilihan field, eksponen, jumlah putaran, dan konstanta merupakan bagian dari desain keamanan.

MiMC Hash dan Konstanta Putaran

Konstanta putaran adalah nilai tetap yang ditambahkan selama putaran permutasi atau cipher MiMC.

Konstanta ini membantu mencegah putaran menjadi terlalu simetris atau mudah diprediksi.

Konstanta yang baik sebaiknya dihasilkan secara transparan agar developer dan auditor dapat memercayai bahwa konstanta tersebut tidak dipilih dengan niat jahat.

Banyak implementasi menghasilkan konstanta dari string seed publik menggunakan fungsi hash standar.

Artikel riset tentang fungsi hash ramah ZK mencatat bahwa implementasi sering menghasilkan konstanta putaran MiMC dari string seperti

MiMC0
dan
MiMC1
.

Developer sebaiknya mendokumentasikan secara tepat cara konstanta tersebut dihasilkan.

Auditor sebaiknya memverifikasi bahwa implementasi menggunakan konstanta yang dimaksud dalam urutan yang benar.

Konstanta yang tidak didokumentasikan membuat implementasi kriptografis lebih sulit dipercaya.

MiMC Hash dan Konstruksi Sponge

Konstruksi sponge adalah cara umum untuk membangun fungsi hash dari sebuah permutasi.

Konstruksi ini memiliki tahap absorb dan tahap squeeze.

Dalam tahap absorb, nilai input dicampurkan ke sebagian state internal.

Dalam tahap squeeze, nilai output dihasilkan dari state yang telah ditransformasikan.

Artikel riset tentang hash ramah ZK menjelaskan bahwa MiMC Hash menggunakan kerangka sponge. Blok pesan diserap ke sebagian state, lalu ditransformasikan menggunakan permutasi MiMC.

Desain sponge berguna karena dapat mendukung input dengan panjang variabel dan panjang output yang fleksibel.

Dalam sirkuit kripto, konstruksi ini dapat membantu melakukan hashing pada beberapa elemen field menjadi satu commitment atau digest.

Namun, parameter sponge seperti rate, capacity, ukuran field, dan jumlah putaran harus dipilih dengan cermat.

MiMC Hash vs SHA-256

MiMC Hash dan SHA-256 sama-sama merupakan fungsi hash kriptografis, tetapi keduanya dioptimalkan untuk lingkungan yang berbeda.

SHA-256 banyak digunakan dalam perangkat lunak, perangkat keras, dan sistem proof-of-work tradisional.

MiMC Hash dioptimalkan untuk sirkuit aritmetika dan sistem proof finite field.

Sirkuit SHA-256 mungkin memerlukan banyak constraint karena SHA-256 menggunakan operasi bitwise, rotasi, dan logika Boolean.

Sirkuit MiMC dapat jauh lebih murah di banyak lingkungan SNARK karena operasinya sesuai dengan aritmetika field.

Ini bukan berarti MiMC harus menggantikan SHA-256 di semua penggunaan.

Artinya, MiMC dapat lebih cocok ketika hash perlu dibuktikan di dalam sirkuit ZK.

Untuk hashing file off-chain biasa atau kompatibilitas dengan standar yang banyak digunakan, fungsi hash tradisional mungkin tetap lebih tepat.

MiMC Hash vs Keccak

Keccak banyak digunakan sebagai primitif hash umum dalam sistem smart contract bergaya Ethereum.

MiMC biasanya dipilih ketika developer membutuhkan hashing yang efisien di dalam sirkuit zero-knowledge.

Kompatibilitas Keccak dapat berguna ketika perlu menyesuaikan dengan logika alamat, tanda tangan, atau kontrak yang sudah ada.

Efisiensi MiMC dapat bermanfaat ketika membuktikan hubungan data tersembunyi di dalam sirkuit aritmetika.

Developer dapat menggunakan Keccak di luar sirkuit dan MiMC di dalam sirkuit jika desain membutuhkan kompatibilitas sekaligus proving yang efisien.

Pembagian ini harus dirancang dengan cermat karena fungsi hash yang berbeda menghasilkan commitment dan asumsi kepercayaan yang berbeda.

Pengguna sebaiknya tidak berasumsi bahwa digest MiMC dan digest Keccak dapat saling menggantikan.

Pilihan yang tepat bergantung pada tempat hash dihitung dan hal yang perlu diverifikasi.

MiMC Hash vs Poseidon

MiMC dan Poseidon sama-sama merupakan fungsi hash ramah ZK.

MiMC lebih lama dan penting secara historis.

Poseidon adalah hash berorientasi aritmetisasi yang lebih baru dan sering dipilih dalam sistem ZK modern karena dapat lebih efisien untuk input dan sistem proof tertentu.

Artikel riset tentang fungsi hash ramah ZK menyebut MiMC sebagai fungsi hash ramah ZK pertama dan menjelaskan bahwa fungsi hash ramah ZK yang lebih baru diusulkan setelahnya.

Ini tidak berarti MiMC sudah usang dalam semua kasus.

Artinya, developer sebaiknya membandingkan analisis keamanan, biaya sirkuit, dukungan library, riwayat audit, kompatibilitas field, dan ekspektasi ekosistem.

Protokol yang sudah ada mungkin tetap menggunakan MiMC demi kompatibilitas dengan commitment dan Merkle root yang telah diterapkan.

Protokol baru dapat memilih fungsi hash ramah ZK lainnya setelah melakukan benchmark dan peninjauan audit.

MiMC Hash dalam Merkle Tree

MiMC Hash sering digunakan dalam Merkle tree di sistem zero-knowledge.

Merkle tree menggabungkan banyak nilai menjadi satu root dengan melakukan hashing pada pasangan node secara berulang.

Pengguna dapat membuktikan bahwa sebuah leaf termasuk dalam tree dengan menunjukkan jalur Merkle.

Dalam sirkuit ZK, pengguna dapat membuktikan bahwa jalur tersebut valid tanpa mengungkap data pribadi yang tidak diperlukan.

Jika sirkuit menggunakan hash biasa yang banyak melibatkan operasi bit di setiap tingkat tree, proof dapat menjadi mahal.

Penggunaan MiMC dapat mengurangi biaya constraint untuk setiap langkah hash.

Itulah sebabnya MiMC muncul dalam desain proof privasi, identitas, voting, dan keanggotaan.

Keamanan Merkle tree tetap bergantung pada hashing yang benar, konstruksi tree yang benar, dan constraint sirkuit yang benar.

MiMC Hash dalam Commitment

Commitment memungkinkan pengguna mengunci suatu nilai tanpa langsung mengungkapkannya.

MiMC Hash dapat digunakan untuk membuat commitment dari nilai rahasia dan nilai acak.

Sebagai contoh, protokol dapat melakukan hashing pada nilai catatan rahasia, kunci pemilik, dan salt acak menjadi commitment publik.

Pengguna kemudian dapat membuktikan pengetahuan atas data tersembunyi tersebut di dalam sirkuit ZK.

Commitment publik tidak mengungkap input rahasia jika hash dan protokol dirancang dengan benar.

Pola ini umum digunakan dalam sistem kripto yang menjaga privasi.

MiMC membantu karena hash commitment dapat diperiksa secara efisien di dalam sirkuit.

Skema commitment tetap harus menyertakan unsur acak yang cukup untuk mencegah serangan tebakan terhadap nilai rahasia yang kecil.

MiMC Hash dalam Nullifier

Nullifier adalah nilai yang digunakan untuk mencegah double spending atau klaim ganda tanpa mengungkap rahasia aslinya.

MiMC Hash dapat membantu menghasilkan nullifier dari private key, catatan, atau nilai identitas rahasia.

Protokol dapat memublikasikan nullifier ketika suatu tindakan privat digunakan.

Pengguna lain dapat memeriksa bahwa nullifier yang sama belum pernah muncul sebelumnya.

Zero-knowledge proof dapat menunjukkan bahwa nullifier dihasilkan dengan benar tanpa mengungkap rahasia yang mendasarinya.

Hal ini penting untuk transfer privat, klaim privat, dan tindakan keanggotaan anonim.

Jika hashing nullifier tidak benar, pengguna dapat melakukan double spending atau kehilangan privasi.

MiMC dapat membuat pemeriksaan nullifier lebih efisien, tetapi keseluruhan logika protokol tetap perlu diaudit dengan cermat.

MiMC Hash dalam Smart Contract

Smart contract dapat memverifikasi proof yang melibatkan commitment atau Merkle root MiMC Hash.

Kontrak mungkin tidak menghitung ulang setiap nilai tersembunyi, tetapi dapat memverifikasi proof yang dihasilkan oleh sirkuit yang menyertakan operasi MiMC.

Beberapa kontrak juga dapat mengimplementasikan MiMC secara langsung jika hashing on-chain diperlukan.

MiMC on-chain dapat berguna ketika kontrak membutuhkan hash ramah ZK yang menggunakan aritmetika field.

Namun, mengimplementasikan kriptografi di smart contract berisiko karena kesalahan kecil dapat merusak keamanan.

Jika memungkinkan, developer sebaiknya menggunakan library yang telah ditinjau dan implementasi yang telah diaudit.

Developer juga perlu memastikan bahwa fungsi on-chain sama persis dengan fungsi di dalam sirkuit.

Ketidaksesuaian antara MiMC di sirkuit dan MiMC di kontrak dapat membuat proof gagal atau menimbulkan celah keamanan.

MiMC Hash dan Circom

Circom adalah bahasa yang digunakan untuk menulis sirkuit aritmetika bagi zero-knowledge proof.

Repositori circomlib berisi template sirkuit yang dapat digunakan kembali untuk primitif kriptografis dan komponen sirkuit lainnya.

circomlib menyertakan implementasi sirkuit MiMCSponge.

Hal ini penting karena banyak developer ZK menggunakan library sirkuit alih-alih menulis setiap primitif dari awal.

Penggunaan library dapat mengurangi waktu pengembangan, tetapi tidak menghilangkan kebutuhan untuk melakukan audit.

Developer harus memastikan versi library, parameter, constraint, dan field sesuai dengan desain protokol.

Mereka juga sebaiknya tidak menyalin cuplikan kode usang dari tutorial lama tanpa memeriksa perilaku library terkini.

Dalam pengembangan ZK, fungsi library hanya aman jika digunakan dengan benar di dalam keseluruhan sirkuit.

MiMC Hash dan Sirkuit dengan Constraint yang Tidak Memadai

Sirkuit dengan constraint yang tidak memadai adalah sirkuit ZK yang tidak sepenuhnya menegakkan komputasi yang diklaimnya untuk dibuktikan.

Ini merupakan salah satu risiko paling serius ketika menggunakan MiMC atau hash apa pun di dalam sirkuit.

Tutorial audit ZK tentang bug constraint MiMC Hash menjelaskan kasus ketika sirkuit hash MiMC kehilangan constraint karena operator assignment digunakan alih-alih operator constraint.

Masalahnya bukan bahwa desain matematis MiMC secara otomatis rusak.

Masalahnya adalah sirkuit tidak membatasi output agar sesuai dengan komputasi hash yang dimaksud.

Pelajaran ini penting bagi setiap protokol ZK.

Fungsi hash yang kuat tidak dapat melindungi protokol jika sirkuit tidak benar-benar menegakkan penggunaan fungsi hash tersebut.

Developer ZK sebaiknya menguji constraint, melakukan audit, dan menggunakan pemeriksaan formal atau berbasis properti jika memungkinkan.

Properti Keamanan MiMC Hash

MiMC Hash dirancang untuk memberikan properti keamanan hash kriptografis seperti ketahanan terhadap collision dan preimage sesuai parameter yang dipilih.

Ketahanan terhadap collision berarti sulit menemukan dua input berbeda yang menghasilkan output hash yang sama.

Ketahanan terhadap preimage berarti sulit memulihkan input dari output hash.

Ketahanan terhadap second-preimage berarti sulit menemukan input berbeda yang menghasilkan output hash sama dengan input yang diketahui.

Properti ini bergantung pada varian MiMC, field, eksponen, jumlah putaran, konstanta, dan mode konstruksi yang tepat.

Halaman referensi MiMC menyebutkan bahwa hingga analisis yang dicantumkan, belum ditemukan serangan terhadap MiMC-n/n atau MiMC-p/p dengan putaran penuh, sekaligus mencatat masalah pada beberapa varian Feistel block cipher.

Developer sebaiknya tidak mengurangi jumlah putaran demi menghemat constraint kecuali memiliki justifikasi kriptografis yang kuat.

Mengubah parameter tanpa tinjauan ahli dapat melemahkan keamanan.

MiMC Hash dan Jumlah Putaran

Jumlah putaran adalah banyaknya penerapan fungsi putaran MiMC.

Jumlah putaran yang lebih banyak biasanya meningkatkan ketahanan terhadap kriptanalisis, tetapi juga menambah biaya sirkuit.

Jumlah putaran yang lebih sedikit dapat meningkatkan performa, tetapi mungkin mengurangi keamanan.

Pemilihan parameter MiMC biasanya didasarkan pada ukuran field, eksponen, analisis keamanan, dan jenis konstruksi.

Implementasi MiMCSponge circomlib memuat komentar yang menunjukkan kalkulasi jumlah putaran untuk field prima dan pilihan eksponen tertentu.

Ini bukan berarti setiap implementasi MiMC harus menggunakan jumlah putaran yang sama tanpa pertimbangan.

Jumlah putaran harus sesuai dengan field, eksponen, konstruksi, dan target keamanan yang tepat.

Protokol sebaiknya mendokumentasikan parameter MiMC agar auditor dan pengguna dapat memverifikasinya.

MiMC Hash dan Eksponen

Eksponen adalah pangkat yang digunakan dalam fungsi putaran nonlinear, seperti

x^3
,
x^5
, atau
x^7
.

Desain MiMC asli sering dijelaskan menggunakan

x^3
.

Beberapa field memerlukan eksponen yang berbeda agar pemetaan pangkat berfungsi dengan benar di field tersebut.

Artikel riset tentang hash ramah ZK mencatat bahwa S-box

x^3
terkadang diganti dengan
x^5
atau
x^7
untuk pilihan field tertentu.

Hal ini umum dalam sirkuit yang dibangun di atas field kurva ramah pairing yang populer.

Developer sebaiknya tidak menganggap semua varian MiMC sama.

Mengubah eksponen akan mengubah fungsi kriptografis dan analisis keamanan yang diperlukan.

Kompatibilitas implementasi bergantung pada penggunaan eksponen dan konstanta yang sama di semua tempat.

MiMC Hash dan Pemisahan Domain

Pemisahan domain berarti memastikan fungsi hash yang sama tidak digunakan kembali dengan cara yang membingungkan untuk tujuan protokol yang berbeda.

Protokol mungkin menggunakan MiMC untuk commitment, nullifier, node Merkle, dan nilai challenge.

Jika semua penggunaan tersebut memakai format input yang sama tanpa pemisahan, collision yang tak terduga atau kebingungan protokol dapat terjadi.

Pemisahan domain dapat menggunakan prefiks tetap, tag, konstanta berbeda, kunci berbeda, atau format input terstruktur.

Metode yang tepat harus sesuai dengan sistem proof dan representasi field.

Pemisahan domain yang baik memudahkan audit protokol.

Pemisahan domain juga mengurangi kemungkinan nilai yang valid dalam satu konteks digunakan kembali secara berbahaya dalam konteks lain.

MiMC adalah sebuah primitif, dan protokol yang aman memerlukan desain input yang cermat di sekelilingnya.

MiMC Hash dan Encoding Elemen Field

MiMC Hash biasanya menerima elemen field, bukan langsung teks sembarang.

Hal ini menimbulkan persoalan encoding.

Developer harus menentukan cara mengubah byte, alamat, jumlah, identifier, dan public key menjadi elemen field.

Encoding yang buruk dapat menimbulkan ambiguitas, pemotongan, overflow, atau kebingungan lintas protokol.

Contohnya, dua array byte berbeda tidak boleh secara tidak sengaja dipetakan ke urutan elemen field yang sama, kecuali hal itu memang diizinkan oleh desain protokol.

Panjang input perlu dikodekan atau dibuat tidak ambigu dengan cara lain jika diperlukan.

Semua implementasi harus menyepakati endianness, padding, reduksi modulus, dan batas field.

Banyak bug MiMC berasal dari kesalahan integrasi, bukan dari gagasan hash intinya.

MiMC Hash dan Performa

MiMC Hash efisien dalam sirkuit aritmetika karena meminimalkan operasi mahal yang menyerupai perkalian.

Hal ini dapat mengurangi waktu pembuatan proof dan ukuran sirkuit.

Makalah AMAZE tahun 2024 menyatakan bahwa fungsi hash kriptografis standar seperti SHA-2 dapat menjadi tidak efisien dalam domain ZKP, dan fungsi hash ramah ZK dirancang dengan mempertimbangkan efisiensi ZKP.

Makalah yang sama menyajikan implementasi MiMC yang dioptimalkan untuk perangkat keras pada aplikasi ZK dan melaporkan peningkatan performa dibandingkan implementasi CPU standar dalam pengujian mereka.

Hal ini menunjukkan bahwa MiMC tetap relevan dalam riset performa dan akselerasi perangkat keras ZK saat ini.

Namun, performa harus diukur dalam sistem yang benar-benar akan digunakan.

Hash yang efisien di satu sistem proof belum tentu optimal di sistem lainnya.

Benchmark sebaiknya mencakup waktu prover, biaya verifikasi, jumlah constraint, memori, kematangan implementasi, dan riwayat audit.

MiMC Hash dan Persyaratan Audit

MiMC Hash perlu diaudit ketika digunakan dalam sistem kripto produksi.

Auditor sebaiknya meninjau parameter matematis, constraint sirkuit, encoding input, pemisahan domain, bahasa implementasi, dan logika verifikasi smart contract.

Auditor perlu memastikan bahwa output sirkuit dibatasi agar sesuai dengan komputasi MiMC yang dimaksud.

Auditor sebaiknya membandingkan vektor uji antara kode off-chain, kode sirkuit, dan kode on-chain.

Auditor perlu memeriksa apakah konstanta dihasilkan dan disimpan dengan benar.

Auditor perlu meninjau apakah jumlah putaran sesuai dengan field dan eksponen.

Auditor sebaiknya menguji kasus tepi seperti input nol, elemen field maksimum, input berulang, dan data dengan panjang variabel.

Primitif kriptografis hanya aman jika keseluruhan implementasinya aman.

MiMC Hash dan Vektor Uji

Vektor uji adalah contoh input-output yang diketahui dan digunakan untuk memverifikasi bahwa implementasi berfungsi dengan benar.

Implementasi MiMC sebaiknya memublikasikan atau menyertakan vektor uji untuk varian yang digunakan secara tepat.

Vektor uji membantu developer membandingkan implementasi sirkuit, JavaScript, Rust, Solidity, atau backend prover.

Jika dua implementasi menghasilkan output berbeda untuk input yang sama, setidaknya salah satunya menggunakan parameter berbeda atau memiliki bug.

Vektor uji sebaiknya mencakup input biasa, input nol, nilai batas, dan contoh sponge multi-input.

Vektor uji juga perlu menyebutkan field, eksponen, jumlah putaran, konstanta, urutan input, urutan output, dan encoding.

Tanpa vektor uji, kesalahan integrasi lebih sulit ditemukan.

Dalam sistem ZK, vektor uji merupakan bagian dari praktik rekayasa dasar yang baik.

MiMC Hash dan Keamanan Wallet Kripto

Sebagian besar pengguna kripto tidak berinteraksi langsung dengan MiMC Hash.

Mereka mungkin menggunakan aplikasi yang mengandalkan MiMC di dalam sirkuit ZK tersembunyi.

Wallet mungkin hanya menampilkan proses pembuatan proof, tindakan klaim, atau tindakan transaksi privat.

Pengguna tidak perlu memberikan seed phrase atau private key untuk mempelajari MiMC atau menggunakan aplikasi ZK.

Panduan penipuan kripto FTC memperingatkan bahwa penipu menggunakan peluang palsu dan permintaan pembayaran kripto untuk mencuri dana.

Pengguna sebaiknya berhati-hati terhadap generator proof palsu, alat privasi palsu, dan halaman dukungan wallet palsu.

Aplikasi ZK yang sah tidak seharusnya meminta pengguna mengungkap frasa pemulihan wallet.

MiMC Hash adalah alat kriptografis, bukan alasan untuk memercayakan informasi rahasia wallet kepada perangkat lunak yang tidak dikenal.

MiMC Hash dan Konteks Pajak

MiMC Hash sendiri tidak menimbulkan peristiwa pajak.

MiMC adalah primitif kriptografis yang digunakan di dalam perangkat lunak dan protokol.

Namun, transaksi yang dilakukan melalui aplikasi ZK yang menggunakan MiMC dapat melibatkan aset digital.

Halaman resmi aset digital IRS menyatakan bahwa transaksi aset digital mungkin perlu dilaporkan dan pendapatan aset digital dapat dikenai pajak.

Pengguna sebaiknya menyimpan catatan transfer, swap, klaim, reward, biaya, timestamp, alamat wallet, dan hash transaksi saat menggunakan aplikasi kripto.

Alat yang berfokus pada privasi dapat membuat pencatatan pribadi lebih sulit jika pengguna tidak menyimpan catatan mereka sendiri.

Pengguna sebaiknya tidak berasumsi bahwa transaksi zero-knowledge menghapus kewajiban pelaporan.

Siapa pun yang memiliki aktivitas kripto bernilai signifikan sebaiknya berkonsultasi dengan profesional pajak yang berkualifikasi.

Manfaat MiMC Hash

MiMC Hash dapat mengurangi biaya hashing di dalam banyak sirkuit zero-knowledge.

MiMC menggunakan aritmetika finite field sederhana yang sesuai dengan constraint bergaya SNARK.

MiMC memiliki tujuan desain yang jelas, yaitu meminimalkan kompleksitas perkalian.

MiMC dapat mendukung Merkle tree, commitment, nullifier, dan proof keanggotaan privat.

MiMC telah dipelajari sejak publikasinya di ASIACRYPT 2016.

MiMC memiliki implementasi praktis dalam library sirkuit ZK.

MiMC tetap relevan dalam riset akselerasi ZK saat ini.

Manfaat utamanya adalah hashing kriptografis yang efisien ketika hash harus dibuktikan di dalam sirkuit aritmetika.

Risiko dan Batasan MiMC Hash

MiMC Hash bukan pengganti universal untuk setiap fungsi hash.

MiMC kurang terstandardisasi di lingkungan perangkat lunak umum dibandingkan hash tradisional yang banyak digunakan.

MiMC memerlukan pemilihan parameter field, eksponen, jumlah putaran, konstanta, dan konstruksi secara cermat.

MiMC dapat menjadi tidak aman jika developer menyalin implementasi tanpa memahami field yang dituju.

MiMC juga dapat menjadi tidak aman jika sirkuit memiliki constraint yang tidak memadai.

MiMC dapat menjadi tidak aman jika implementasi off-chain dan on-chain tidak benar-benar sama.

MiMC mungkin kurang efisien daripada fungsi hash ramah ZK yang lebih baru di beberapa sistem proof modern.

Batasan terbesarnya adalah keamanan MiMC bergantung pada penggunaan yang benar, bukan hanya pada nama “MiMC”.

Cara Mengevaluasi MiMC Hash dalam Proyek Kripto

Mulailah dengan memeriksa varian MiMC yang digunakan proyek tersebut.

Tinjau finite field, eksponen, jumlah putaran, konstanta, rate, capacity, dan panjang output.

Pastikan apakah implementasinya berasal dari library yang telah ditinjau atau kode khusus.

Periksa ketersediaan vektor uji publik yang sesuai dengan implementasi sirkuit dan smart contract.

Pastikan proyek telah diaudit oleh peninjau yang memahami sirkuit zero-knowledge.

Tinjau apakah MiMC digunakan untuk commitment, Merkle tree, nullifier, tanda tangan, challenge acak, atau tujuan lainnya.

Periksa apakah input dikodekan dengan pemisahan domain dan konversi elemen field yang tidak ambigu.

Proyek yang tidak dapat menjelaskan parameter MiMC dengan jelas sebaiknya disikapi dengan hati-hati.

Kesalahan Umum dalam Penggunaan MiMC Hash

Salah satu kesalahan umum adalah menganggap semua implementasi MiMC kompatibel.

Kesalahan lainnya adalah mengubah field atau eksponen tanpa tinjauan keamanan.

Kesalahan ketiga adalah mengurangi jumlah putaran demi menghemat constraint.

Kesalahan keempat adalah menggunakan konstanta putaran yang tidak terdokumentasi.

Kesalahan kelima adalah tidak menerapkan pemisahan domain untuk penggunaan protokol yang berbeda.

Kesalahan keenam adalah membuat kode sirkuit dan kode smart contract tidak cocok.

Kesalahan ketujuh adalah menggunakan assignment ketika yang diperlukan adalah constraint sirkuit.

Kesalahan kedelapan adalah menganggap MiMC sebagai pengganti fungsi hash terstandardisasi untuk penggunaan umum di luar konteks ZK.

Praktik Terbaik bagi Developer

Gunakan MiMC hanya jika sesuai dengan kebutuhan sistem proof dan protokol.

Jika memungkinkan, gunakan implementasi yang telah ditinjau.

Dokumentasikan field, eksponen, konstanta, jumlah putaran, parameter sponge, dan aturan encoding.

Publikasikan vektor uji untuk setiap implementasi yang didukung.

Pastikan setiap output sirkuit dibatasi dengan benar.

Terapkan pemisahan domain untuk berbagai peran protokol.

Audit desain kriptografis dan detail implementasinya.

Lakukan benchmark MiMC dengan fungsi hash ramah ZK lainnya sebelum memilihnya untuk protokol baru.

Ringkasan SEO dan AEO MiMC Hash

MiMC Hash adalah keluarga fungsi hash kriptografis yang ramah ZK dan dirancang untuk meminimalkan kompleksitas perkalian.

MiMC diperkenalkan untuk enkripsi dan hashing yang efisien di lingkungan seperti MPC, enkripsi homomorfik penuh, dan zero-knowledge proof.

MiMC bekerja di atas finite field dan umumnya menggunakan fungsi pangkat sederhana seperti

x^3
,
x^5
, atau
x^7
, bergantung pada field dan variannya.

MiMC Hash sering dibangun dengan konstruksi sponge yang menyerap elemen field input dan menghasilkan elemen field output.

Dalam kripto, MiMC digunakan untuk Merkle tree, commitment, nullifier, proof keanggotaan, dan protokol yang menjaga privasi dengan dukungan ZK.

MiMC berbeda dari SHA-256 dan Keccak karena dioptimalkan untuk sirkuit aritmetika, bukan hashing perangkat lunak biasa pada tingkat bit.

Risiko utama MiMC mencakup parameter yang salah, sirkuit dengan constraint yang tidak memadai, konstanta yang buruk, encoding yang lemah, tidak adanya pemisahan domain, dan ketidaksesuaian implementasi.

MiMC Hash paling aman digunakan dengan mengandalkan parameter yang diaudit, library yang telah ditinjau, vektor uji publik, dan constraint sirkuit yang lengkap.

FAQ

Apa itu MiMC Hash?

MiMC Hash adalah konstruksi hash kriptografis yang dirancang agar efisien dalam sirkuit zero-knowledge proof dan lingkungan aritmetika lainnya.

Apa kepanjangan MiMC?

MiMC adalah singkatan dari Minimal Multiplicative Complexity.

Mengapa MiMC Hash disebut ramah ZK?

MiMC Hash disebut ramah ZK karena menggunakan operasi aritmetika yang dapat direpresentasikan secara efisien di dalam banyak sirkuit zero-knowledge proof.

Apakah MiMC Hash sama dengan SHA-256?

Tidak. MiMC Hash dirancang untuk sirkuit finite field, sedangkan SHA-256 adalah fungsi hash tradisional yang berorientasi pada bit dan banyak digunakan dalam perangkat lunak biasa serta sistem proof-of-work.

Di mana MiMC Hash digunakan dalam kripto?

MiMC Hash digunakan dalam sirkuit ZK untuk Merkle tree, commitment, nullifier, proof keanggotaan, dan logika aplikasi yang menjaga privasi.

Apakah MiMC Hash bekerja di atas finite field?

Ya. MiMC Hash dirancang untuk beroperasi di atas finite field seperti field prima yang digunakan banyak sistem proof.

Apakah MiMC Hash selalu aman?

Tidak. Keamanan MiMC bergantung pada varian, field, eksponen, jumlah putaran, konstanta, konstruksi, dan ketepatan implementasi yang digunakan.

Apakah MiMC Hash dapat digunakan dalam smart contract?

Ya. MiMC dapat diimplementasikan atau diverifikasi dalam sistem smart contract, tetapi implementasi on-chain harus sama persis dengan implementasi sirkuit.

Apa risiko utama penggunaan MiMC Hash dalam sirkuit?

Salah satu risiko utamanya adalah sirkuit dengan constraint yang tidak memadai, sehingga proof tidak benar-benar menegakkan komputasi MiMC Hash yang dimaksud.

Apakah proyek ZK baru harus selalu menggunakan MiMC Hash?

Tidak. Proyek ZK baru sebaiknya membandingkan MiMC dengan fungsi hash ramah ZK lainnya dan memilih berdasarkan keamanan, performa, kompatibilitas field, dukungan library, dan kebutuhan audit.

Kesimpulan

MiMC Hash merupakan primitif kriptografis penting dalam sejarah dan praktik sistem kripto zero-knowledge.

MiMC dirancang untuk mengurangi biaya hashing di dalam sirkuit aritmetika dengan meminimalkan operasi yang melibatkan banyak perkalian.

Hal ini membuat MiMC berguna untuk SNARK, desain terkait STARK, sistem MPC, commitment, Merkle tree, nullifier, dan proof keanggotaan privat.

Keunggulan MiMC berasal dari aljabar finite field yang sederhana dan fokusnya pada efisiensi ZK.

Risikonya berasal dari pentingnya setiap parameter dan detail implementasi.

Implementasi MiMC harus memilih field, eksponen, jumlah putaran, konstanta, parameter sponge, encoding input, dan pemisahan domain yang tepat.

Sirkuit ZK yang menggunakan MiMC juga harus membatasi komputasinya dengan benar.

Bagi pengguna, MiMC biasanya tidak terlihat karena berjalan di dalam sistem proof aplikasi.

Bagi developer, MiMC adalah alat yang andal tetapi membutuhkan rekayasa dan peninjauan audit yang cermat.

MiMC Hash paling tepat dipahami sebagai fungsi hash khusus yang ramah ZK dan membantu protokol kripto membuktikan komputasi privat secara efisien, tetapi hanya jika parameter dan constraint sirkuitnya diimplementasikan dengan presisi.
Menarik Kembali / Peluang?
Menarik Kembali / Peluang?Menarik Kembali / Peluang?
Simak arus masuk ETF BTC $2,4 miliar pada likuidasi