Coin Autopsy Journal

Technical Analysis of the Orchard Soundness Vulnerability in Zcash

Abstract

Pada 29 Mei 2026, security researcher Taylor Hornby melaporkan sebuah critical soundness vulnerability pada Orchard Action Circuit milik Zcash. Kerentanan tersebut mempengaruhi implementasi sirkuit Zero-Knowledge Proof (ZKP) yang digunakan untuk memvalidasi state transition pada Orchard shielded pool. Menurut disclosure resmi, eksploitasi yang berhasil dapat menyebabkan penerimaan transaksi yang secara semantik tidak valid oleh aturan konsensus jaringan.

Berbeda dengan sebagian besar kerentanan blockchain yang muncul pada lapisan aplikasi atau implementasi node, bug ini berada pada lapisan constraint system yang mendefinisikan keamanan kriptografis Orchard.


Background

Orchard merupakan shielded pool generasi terbaru Zcash yang dibangun menggunakan Halo 2 proving system.

Secara konseptual proses validasi transaksi Orchard dapat direpresentasikan sebagai:

Witness โ†“ Circuit Constraints โ†“ Proof Generation โ†“ Proof Verification โ†“ Consensus Acceptance

Keamanan sistem bergantung pada asumsi bahwa seluruh constraint dalam circuit secara lengkap merepresentasikan aturan validitas transaksi.

Dalam terminologi formal:

Valid Witness โ‡’ Accept

Invalid Witness โ‡’ Reject

Properti kedua dikenal sebagai soundness.


Official Scope of the Vulnerability

Menurut disclosure resmi Zcash Foundation:

ยซ"The issue was a soundness bug in the implementation of the Orchard zero-knowledge proof circuit in the halo2_gadgets crate."ยป

Affected components:

halo2_gadgets < v0.5.0 orchard < v0.14.0 zcash_primitives < v0.28.0 zcashd v5.0.0 โ€“ v6.12.3 zebrad < v4.5.1

Bug tersebut tidak berada pada layer networking, wallet, ataupun consensus engine secara langsung.

Lokasi kerentanan berada pada implementasi circuit yang digunakan untuk menghasilkan dan memverifikasi Orchard proofs.


Nature of the Failure

Berdasarkan informasi yang telah dipublikasikan, eksploitasi memungkinkan verifier menerima state transition yang tidak semestinya valid. Zcash Foundation secara eksplisit menyebut bahwa kerentanan dapat mengakibatkan:

Invalid State Transition

diterima oleh konsensus jaringan.

Secara formal, kondisi yang diharapkan adalah:

โˆ€ witness:

Invalid(witness) โ‡’ Reject

Namun keberadaan bug menyebabkan kemungkinan:

โˆƒ witness:

Invalid(witness) โ‡’ Accept

Dalam literatur zk-system, kondisi tersebut merupakan definisi klasik dari soundness violation.


Why Soundness Bugs Are Unusual

Mayoritas vulnerability pada software tradisional berasal dari:

Memory Corruption Integer Overflow Race Condition Input Validation Failure

Sebaliknya pada sistem ZKP, kelas kerentanan yang paling berbahaya biasanya berupa:

Missing Constraint Weak Constraint Constraint Mismatch Unsatisfied Algebraic Invariant

Sebagai ilustrasi:

Constraint yang diharapkan:

A ร— B = C

Namun circuit secara tidak sengaja hanya memverifikasi:

A valid B valid

tanpa memastikan relasi:

A ร— B = C

Akibatnya prover memperoleh degree of freedom tambahan untuk menghasilkan witness yang tidak merepresentasikan state sebenarnya.

Fenomena ini dikenal luas sebagai:

Under-Constrained Circuit

dan merupakan salah satu sumber utama soundness failure pada ekosistem zk-system modern.


Why Traditional Auditing Often Misses These Bugs

Karakteristik utama soundness bug adalah:

Code executes correctly. Circuit is mathematically wrong.

Dengan kata lain:

fn verify() { return true; }

dapat berjalan sesuai desain implementasi.

Masalahnya bukan pada program.

Masalahnya adalah bahwa circuit yang direpresentasikan program tidak lagi identik dengan model keamanan yang dimaksud.

Karena itu bug jenis ini sering lolos dari:

dan biasanya baru ditemukan melalui:


AI-Assisted Discovery

Menurut laporan insiden, Taylor Hornby menggunakan Claude Opus 4.8 sebagai bagian dari tooling audit yang digunakan selama investigasi.

Hal yang menarik bukanlah bahwa AI menemukan bug.

Yang lebih penting adalah jenis bug yang ditemukan.

Secara historis, soundness bugs termasuk kategori kerentanan yang sangat sulit dideteksi karena memerlukan analisis terhadap:

Constraint Graph Witness Flow Circuit Semantics Algebraic Relations

Beberapa paper terbaru pada area zk-security menunjukkan bahwa banyak bug kritis berasal dari circuit yang under-constrained meskipun telah melalui audit profesional. Penelitian seperti zkFuzz dan Arguzz menunjukkan bahwa constraint-level vulnerabilities masih ditemukan secara rutin pada sistem yang sudah diaudit.

Kasus Orchard menjadi salah satu contoh nyata bahwa AI-assisted auditing mulai memasuki domain yang sebelumnya hampir sepenuhnya bergantung pada cryptography researchers.


Impact Assessment

Disclosure resmi menyatakan:

No evidence of exploitation. No unauthorized value creation detected.

Selain itu Zcash menyatakan mekanisme Turnstile tetap menjaga integritas total supply jaringan.

Namun terdapat perbedaan penting antara:

No evidence of exploitation

dan

Proof of non-exploitation

Karena Orchard merupakan privacy-preserving pool, observabilitas terhadap aktivitas internal jauh lebih rendah dibanding sistem transparan.

Akibatnya, aspek auditability menjadi salah satu fokus diskusi pasca-insiden.


Conclusion

Secara teknis, insiden Orchard bukan merupakan kegagalan implementasi node, wallet, ataupun konsensus.

Insiden ini merupakan kegagalan pada lapisan yang lebih fundamental:

Constraint System Correctness

Kerentanan tersebut menunjukkan bahwa keamanan zk-system tidak hanya bergantung pada keamanan kriptografi primitif yang digunakan, tetapi juga pada kelengkapan representasi matematis yang diwujudkan dalam circuit.

Dari perspektif penelitian keamanan, temuan ini lebih tepat dipandang sebagai kasus constraint-system soundness failure daripada sekadar bug software konvensional.

Kontribusi paling menarik dari insiden ini bukanlah bahwa AI menemukan bug, melainkan bahwa AI-assisted auditing mulai menunjukkan kemampuan untuk membantu analisis terhadap properti formal yang selama ini dianggap sebagai domain eksklusif cryptography researchers.