Geçen hafta (2026/06/01 - 2026/06/07) boyunca, blok zinciri ekosistemlerinde birden fazla saldırı olayı gözlemlendi. Bu haftanın raporu, Zcash'in Orchard gizlilik havuzundaki kritik bir sağlamlık açığının kamuoyuyla paylaşılmasına odaklanmaktadır; bu açık, ZEC'nin tespit edilemez biçimde sahte olarak üretilmesine olanak tanıyabilirdi. Zincir üzerinde herhangi bir istismarın gerçekleştiği doğrulanmamış olsa da bu açıklama, acil bir ağ yükseltmesini tetikledi ve ZEC değerinin %40'tan fazlasını yitirdi.
| Tarih | Olay | Tür | Tahmini Kayıp |
|---|---|---|---|
| 2026/06/04 | Zcash Orchard | ZK Sağlamlık Hatası | İstismar doğrulanmadı |
Web3 için En İyi Güvenlik Denetçisi
Lansmandan önce tasarım, kod ve iş mantığını doğrulayın
Haftanın Öne Çıkanı: Zcash Orchard Sağlamlık Hatası
Bu olay, üretim ortamında bulunan en ciddi ZK açıklarından biri olduğu için haftanın öne çıkanı olarak seçilmiştir. Eksik bir devre kısıtlaması, birden fazla denetime rağmen dört yılı aşkın süre boyunca fark edilmeden kaldı ve sonunda yapay zeka destekli bir güvenlik incelemesiyle keşfedildi. Bu açık sınıfı (ZK devrelerinde yetersiz kısıtlanmış ilişkiler), ZK devreleri üzerine inşa edilmiş her protokolde mevcut olabilir.
4 Haziran 2026'da Zcash, Orchard gizlilik havuzu devresinde kritik bir sağlamlık hatası bulunduğunu kamuoyuyla paylaştı [1]. Sıfır bilgi ispat devresindeki eksik bir kısıtlama, çift harcamayı önleyen kriptografik bağlamayı bozarak aynı gizli notanın birden fazla kez ve fark edilmeden harcanmasına olanak tanıyabiliyordu. Bu açık, Orchard'ın Mayıs 2022'deki etkinleştirilmesinden bu yana mevcuttu ve 29 Mayıs 2026'da güvenlik araştırmacısı Taylor Hornby tarafından yapay zeka destekli bir denetim aracılığıyla keşfedildi. Acil bir ağ yükseltmesi (NU6.2), 3 Haziran 2026'da devreyi yamadı. Herhangi bir istismar kanıtına rastlanmadı.
Arka Plan
Zcash, yerel tokeni ZEC olan, gizlilik odaklı bir Katman-1 blok zinciridir. Tüm işlem ayrıntılarının kamuya açık olduğu Bitcoin'den farklı olarak Zcash, sıfır bilgi ispatları aracılığıyla gizli işlemleri destekler; gönderen adresleri, alıcı adresleri ve işlem tutarlarını gizler. Zcash'in birbirinden farklı gizlilik protokolü nesillerine karşılık gelen birden fazla gizlilik havuzu mevcuttur. Orchard en yeni nesil olup Mayıs 2022'de NU5 ağ yükseltmesiyle etkinleştirildi ve işlemleri doğrulamak için halo2 sıfır bilgi ispat sistemini [2] kullanır. Bir kullanıcı gizli bir işlem gerçekleştirdiğinde kanıtlayıcı rolünü üstlenir: Orchard devresini kullanarak işlemin geçerli olduğunu — notaya sahip olduğunu, boş edicinin doğru türetildiğini ve miktarların dengelendiğini — herhangi bir özel ayrıntıyı açıklamadan kanıtlayan bir sıfır bilgi ispatı oluşturur. Ağ düğümleri doğrulayıcı rolünü üstlenerek temel verileri görmeksizin ispatı denetler. Orchard devresi, her geçerli ispatın karşılaması gereken kısıtlamaları tanımlar. Açık bu devre uygulamasında yer almakta olup Zcash'teki dört temel kavramı kapsamaktadır: anahtarlar, adresler, notalar ve boş ediciler.
Anahtarlar. Zcash'in anahtar hiyerarşisi çoğu blok zincirinden daha karmaşıktır. Tek bir harcama anahtarı (cüzdan sırrı) birkaç alt anahtar türetir: ask (harcama yetkilendirme gizli anahtarı), nk (boş edici türetme anahtarı) ve rivk (bir rasgeleleyici). Bunlardan sistem, ak (yetkilendirme açık anahtarı) ve ivkyi (gelen görüntüleme anahtarı, ivk = Commit(ak, nk, rivk) yoluyla) hesaplar. ivk anahtarı, gelen fonları tanımlamak ve almak için kullanılır.
Adresler. Bir Orchard adresi oluşturmak için kullanıcı, çeşitlendirilmiş bir taban noktası g_d = DiversifyHash(d) belirleyen bir çeşitlendirici d (11 baytlık bir değer) seçer. Adres (d, pk_d) çiftidir; burada çeşitlendirilmiş iletim anahtarı pk_d, eliptik eğri skaler çarpımı olarak hesaplanır: pk_d = [ivk] g_d. Bu, adresin kullanıcının görüntüleme anahtarıyla kriptografik olarak bağlandığı anlamına gelir.
Notalar. Nota, alınan fonları temsil eden bir varlık kaydıdır. Gizlilik amacıyla zincir üzerinde saklanan, Notanın kendisi değil, bir Nota taahhüdüdür cm (pk_d, değer ve diğer verileri içeren Nota içeriğine yönelik kriptografik bir taahhüt). Nota, alıcının adresine kilitlidir.
Boş Ediciler. Bir Nota harcanırken harcayıcı, Nota verilerinden ve boş edici anahtarından nk türetilen bir boş edici nf açıklar: nf = Extract_P([(F_nk(ρ) + ψ) mod p]G + cm). Kritik güvenlik özelliği, her Notanın tam olarak bir boş edici üretmesi gerektiğidir. Bir boş edici zincir üzerinde göründüğünde ilgili Nota kalıcı olarak harcanmış kabul edilir. Aynı Nota farklı boş ediciler üretebilseydi, kimse fark etmeden birden fazla kez harcanabilirdi.
Bağlama zinciri. Bu kavramlar bir kriptografik bağlama zinciriyle birbirine bağlanmıştır:

Kırmızıyla vurgulanan düğümler (pk_d, nk), açığın bağlama zincirini kırdığı noktalardır: devre pk_d = [ivk] g_d bağıntısını zorunlu kılmalıdır; bu bağıntı, harcayıcıyı doğru ivkya, dolayısıyla söz konusu Nota için doğru nkya bağlar. Bu bağlama kırılırsa harcayıcı sahte bir ivk üretebilir ve böylece her harcama için farklı bir nk kullanabilir. Farklı nk değerleri, aynı nota için farklı boş ediciler üretir ve çift harcamayı mümkün kılar.
Devrenin bu bağlamayı nasıl zorunlu kıldığı. pk_d = [ivk] g_d bağıntısı, çift-ve-topla algoritması kullanılarak uygulanan bir eliptik eğri skaler çarpımıdır (Q = [k]P). Sıfır bilgi devresinde doğrulayıcı algoritmayı doğrudan çalıştırmaz; bunun yerine devre, her ara adımı kısıtlar. Doğru bir skaler çarpım devresi, diğer şeylerin yanı sıra dahili döngü taban noktasının amaçlanan girdi taban noktasına eşit olduğunu (P_loop = P_input) zorunlu kılmalıdır. Bu kısıtlama olmadan devre, geçerli bir skaler çarpımın gerçekleştiğini kanıtlayabilir; ancak yanlış bir taban noktasıyla, bu da tüm bağlama zincirini anlamsız kılar.
Açık Analizi
Açık içeren ECC aracı, pk_d = [ivk] g_d bağıntısını zorunlu kılan skaler çarpımda kullanıldı; burada Q = pk_d, k = ivk ve P = g_ddir. Açıklı kod, halo2 deposunun değişken tabanlı skaler çarpım uygulamasında yer almaktadır (incomplete.rs L309-L310):
// incomplete.rs (tam kaynak yukarıda bağlantılı)
298 for (row, k) in bits.iter().enumerate() {
299 // z_{i} = 2 * z_{i+1} + k_i
...
305 z = region.assign_advice(|| "z", self.z, row + offset, || z_val)?;
306 zs.push(Z(z.clone()));
307
308 // `x_p`, `y_p` atayın
309 region.assign_advice(|| "x_p", self.double_and_add.x_p, row + offset, || x_p)?; // HATA
310 region.assign_advice(|| "y_p", self.y_p, row + offset, || y_p)?; // HATA
311
312 // Bit ayarlıysa `y` kullanın; ayarlı değilse `-y` kullanın
313 let y_p = y_p
314 .zip(k.as_ref())
315 .map(|(y_p, k)| if !k { -y_p } else { y_p });
316
317 // lambda1'i hesaplayın ve atayın
318 let lambda1 = y_a.zip(y_p).zip(x_a.value()).zip(x_p)
.map(|(((y_a, y_p), x_a), x_p)| (y_a - y_p) * (x_a - x_p).invert());
...
}
Sıfır bilgi devresinde kanıtlayıcı her hücre değerini doldurur; devrenin kendisi hücreler arasında değerleri kopyalayamaz veya aktaramaz — yalnızca doğrulayıcının denetlediği kısıtlamaları tanımlayabilir. HATA olarak işaretlenen iki satır, taban nokta koordinatları x_p ve y_pyi (tanık değerleri olarak bilinen özel devre girdileri) devrenin tavsiye sütunlarına (kanıtlayıcının özel girdi bölgesi) yazmak için assign_advice() kullanır. Bu işlev, değeri dış taban noktasına bağlayan bir kısıtlama oluşturmadan doldurur. Ayrı bir kısıtlama, taban değerlerin tüm döngü yinelemelerinde eşit olmasını sağlar — kanıtlayıcı her yinelemede farklı bir taban nokta kullanamazken tek bir keyfi taban noktayı tüm yinelemeler boyunca ikame edebilir ve devredeki hiçbir kısıtlama bunu reddetmez; çünkü hiçbir kısıtlama, döngünün taban değerlerini dışarıdan geçirilen gerçek g_dye sabitleemez.
Doğru işlev, değeri hem dolduran hem de gerçek g_d taban noktasıyla eşleştiğini zorunlu kılan bir eşitlik kısıtlaması (kopyalama kısıtlaması) ekleyen copy_advice() işlevidir. g_d, her adresin çeşitlendiricisinden türetildiğinden adrese göre farklılık gösterir; bu nedenle devre onu sabit kodlayamaz — döngünün taban noktasını yukarı akışta hesaplanan g_dye eşit olacak biçimde kısıtlamalıdır.
Sonuç olarak devre, pk_d = [ivk] g_dyi gerçekte zorunlu kılmıyordu. Kötü niyetli bir kanıtlayıcı döngü içinde keyfi bir taban nokta sağlayabilir (doğru g_d yerine) ve devre ispatı yine de kabul ederdi: dahili hesaplama cebirsel olarak tutarlı kalmaya devam etti, ancak artık protokol tarafından belirlenen çeşitlendirilmiş taban noktaya sabitlenmemişti. Bu ekstra serbestlik derecesi, kanıtlayıcının her seferinde farklı bir nk seçmesine, karşılık gelen ivk = Commit(ak, nk, rivk)yi hesaplamasına ve sahte ivknin geçmesini sağlamak için kısıtlanmamış skaler çarpımı kullanmasına olanak tanıdı. Boş edici nkya bağlı olduğundan her harcama farklı bir boş edici üretir:
aynı N notası + nk_1 → nf_1
aynı N notası + nk_2 → nf_2
burada: nf_1 ≠ nf_2
Mutabakat yalnızca bir boş edicinin daha önce zincir üzerinde görünüp görünmediğini denetler. Her harcama benzersiz, meşru görünümlü bir boş edici ürettiğinden çift harcama ağ tarafından görünmez olur.
Düzeltme [3], döngünün ilk yinelemesine (row == 0) bir copy_advice() çağrısı ekleyerek döngünün taban noktasını dışarıdan geçirilen gerçek basee sabitleyen bir kopyalama kısıtlaması oluşturur. Kalan yinelemeler assign_advice() kullanmaya devam eder; ancak mevcut yinelemeler arası tutarlılık kısıtlaması, sabitleyiciyi tümüne yayar.
Etki ve Yanıt
İstismar senaryosu. Kötü niyetli bir kanıtlayıcı, her seferinde farklı bir boş edici üreterek aynı Orchard notasını birden fazla kez harcamak için bu açıktan yararlanabilirdi. Sıfır bilgi ispatı, özel devre girdilerini gizlediğinden sahte boş ediciler meşru olanlardan ayırt edilemez. Saldırı, zincir üzerinde kesin kriptografik bir iz bırakmaz; bu da istismarın gerçekleşip gerçekleşmediğini kesin biçimde belirlemeyi imkânsız kılar.
Bu açık, Orchard'ın Mayıs 2022'deki etkinleştirilmesinden (NU5 yükseltmesi) bu yana mevcuttu ve toplam maruz kalma süresi dört yılı aştı. Zcash'in turnike muhasebesi, Orchard havuzundan şeffaf veya Sapling havuzlarına çıkabilecek sahte değer miktarını sınırlayarak genel arz üzerindeki gerçekleşmiş etkiyi sınırlandırır. Bununla birlikte, sahte notalar gizlilik havuzunun içinde fark edilmeden var olabilir ve havuzun gizlilik özellikleri, açığın hiç istismar edilip edilmediğini kriptografik olarak kanıtlamayı imkânsız kılar.
Not: Turnike, yalnızca bir havuzun toplam çıkışları toplam girişlerini aştığında devreye girer. Bir saldırgan, bu sınırı aşmadan sahte değeri zaman içinde küçük miktarlarda çekebilirdi. Tutarsızlık, ancak meşru kullanıcılar toplu olarak havuzun gerçekte tuttuğundan daha fazla çekmeye çalıştığında ortaya çıkardı.
Keşif ve yanıt. Açık, 29 Mayıs 2026'da güvenlik araştırmacısı Taylor Hornby (Shielded Labs adına sözleşmeli) tarafından, bir önceki gün piyasaya sürülen Anthropic'in Opus 4.8 modeli kullanılarak yapay zeka destekli bir denetim çerçevesiyle keşfedildi. Aynı devrenin eski modellerle yapılan önceki denetimleri bu hatayı bulamamıştı. Hornby, sorunu aynı gün ZODL'ye bildirdi. 2 Haziran'da (UTC) gerçekleştirilen acil bir yumuşak çatal, Orchard işlemlerini geçici olarak devre dışı bıraktı ve 3 Haziran'daki (UTC, blok 3.364.600) NU6.2 ağ yükseltmesi, düzeltilmiş bir devre sunarak Orchard işlevselliğini yeniden sağladı [1]. 4 Haziran'daki kamuoyu açıklamasının ardından ZEC değerinin %40'tan fazlasını yitirdi ve tasfiyeler 100 milyon doları aştı [4].
Sonuç
Zcash Orchard açığı, skaler çarpım devresinde eksik bir eşitlik kısıtlamasından kaynaklandı; bu durum kanıtlayıcının taban nokta bağlamasını atlatmasına ve çift harcama için boş edicileri taklit etmesine olanak tanıdı. Genellikle kod incelemesi veya testlerle fark edilebilen geleneksel akıllı sözleşme hatalarının aksine, bir ZK devresindeki sağlamlık hatası, devrenin gerçekte neyi kanıtladığı ile neyi kanıtlaması gerektiği arasındaki boşluğu anlamayı gerektirir — bu incelik, uzman kriptograflar tarafından yürütülen dört yılı aşkın profesyonel denetimden kaçmayı başardı.
halo2 kütüphanesi ZKP ekosisteminde yaygın biçimde kullanılmakta olup bu kriptografik yapı taşları üzerine inşa edilen diğer projelerde de benzer yetersiz kısıtlanmış ilişkiler bulunabilir. Sıfır bilgi ispatı kullanan protokoller, keşfedilmemiş sağlamlık hatalarının potansiyel etkisini sınırlamak için denge bütünlüğü denetimleri (turnike muhasebesi gibi) uygulamalıdır: Zcash'in turnike mekanizması olmaksızın, gizlilik havuzunun içinde oluşturulan sahte değer daha geniş arza serbestçe akabilirdi. Shielded Labs, Orchard devresini matematiksel olarak resmi olarak doğrulama planlarını açıkladı.
Bu keşif, döngüde insan olan bir iş akışının tipik örneğidir: deneyimli bir güvenlik araştırmacısı denetim çerçevesini oluşturdu ve soruşturmayı yönlendirdi; yapay zeka ise bireysel devre kısıtlamalarını denetlemenin kapsamını üstlendi. Hiçbir bileşen tek başına yeterli değildi: eski modellerle gerçekleştirilen önceki yalnızca yapay zeka kullanan çalışmalar hatayı gözden kaçırdı ve yıllarca süren uzman insan incelemesi de aynı şekilde başarısız oldu. Hornby'nin kendisi bir Zcash güvenlik uzmanıdır — yapay zekanın içinde çalışacağı doğru denetim kapsamını tasarlamak için alan uzmanlığı gerekliydi. BlockSec tarafından yayımlanan son araştırmaların da gösterdiği üzere [5], yapay zeka modelleri güvenlik analizinde hızlı ilerleme kaydetmektedir; ancak yapay zekayı doğru hedeflere yönlendirmek ve bulguları doğrulamak için uzman rehberliği hâlâ gerekmektedir. Uzmanlar ile yapay zeka arasındaki etkileşimli iş birliği — yalnızca yapay zekaya güvenmek yerine — en etkili çalışma modelidir.
Kaynaklar
- Orchard sahtekârlık açığı ve sonraki adımlar, Zcash Topluluk Forumu, 4 Haziran 2026. Bağlantı
- halo2: Bir sıfır bilgi ispat sistemi, GitHub. Bağlantı
- Düzeltme: kopyalama kısıtlaması aracılığıyla skaler çarpım taban noktasını sabitleyin, halo2 GitHub. Bağlantı
- Zcash gizlilik havuzu hatasını yamalamasına rağmen ZEC neden %40 düştü, CoinTelegraph, 5 Haziran 2026. Bağlantı
- EVMBench'i Yeniden Değerlendirme: Yapay Zeka Ajanları Akıllı Sözleşme Güvenliğine Hazır mı?, arXiv, 2026. Bağlantı
BlockSec Hakkında
BlockSec, tam yığın blok zinciri güvenliği ve kripto uyumluluk sağlayıcısıdır. Müşterilerin kod denetimi gerçekleştirmesine (akıllı sözleşmeler, blok zinciri ve cüzdanlar dahil), saldırıları gerçek zamanlı olarak engellemeye, olayları analiz etmeye, yasadışı fonları izlemeye ve protokollerle platformların tam yaşam döngüsü boyunca AML/CFT yükümlülüklerini yerine getirmelerine yardımcı ürün ve hizmetler geliştiriyoruz.
BlockSec, prestijli konferanslarda birden fazla blok zinciri güvenliği makalesi yayımlamış, DeFi uygulamalarının birkaç sıfır gün saldırısını raporlamış, 20 milyon dolardan fazlasını kurtarmak için birden fazla hacki engellemiş ve milyarlarca kripto parayı güvence altına almıştır.
-
Resmi web sitesi: https://blocksec.com/
-
Resmi Twitter hesabı: https://twitter.com/BlockSecTeam



