Bu yazımızda Euler Finance’in başına gelen 200 milyon ABD Doları tutarındaki hack ve sonrasında yaşanan heyecanlı sahneleri konuşacağız.

Hızla gelişen DeFi dünyasında ‘sürat felakettir’ sözünü sıkça kullanmamıza neden olan ‘hack’ (Türkçesine ‘sistemin zaafından yararlanma’ diyebiliriz) olaylarından birini daha yaşadık geçtiğimiz ay içinde. Bu defa hikaye mutlu sonla bitse de, gerek olayın gelişimi gerekse de hack sonrası yaşananlar adeta bir polisiye filmi andırıyor. Gelin önce Euler Finance nedir ve nasıl ‘hack’ yedi onu anlayalım, sonrasında da peşi sıra gelişen olaylara bakalım.

Ne iş yapar Euler Finance?

Euler Finance, bir kredi verme platformu. Bu alandaki diğer protokollerden farkı her tür kriptoparanın kredi olarak verilmesini sağlayan yenilikçi ürünler sunması. (Hatırlayanlar olacaktır, DeFi’nin başlıca kredi verme platformları olarak Aave’yi ve MakerDAO’yu daha önce detaylıca incelemiştik)

En basitinden özetleyecek olursak, DeFi’de kredi alabilmek için, alacağınız krediden daha fazla teminatı protokol içine kilitlemeniz gerekiyor. Sonrasında aldığınız krediyi artık ihtiyaçlarınız için mi, yoksa spekülasyon için mi kullanırsınız, o size kalmış. Tek dikkat etmeniz gereken kural, teminatınızın aldığınız krediye oranının belli bir seviyenin altına düşmemesine dikkat etmek. Aksi takdirde sistem gözünüzün yaşına bakmaz, icra memuru da diyebileceğimiz bir akbaba (ingilizcesi ‘liquidator’) gelir teminatınızı güzel bir iskonto ile satın alır, borcunuzu öder ve aldığı iskontoyu da cebe atar.

Genel olarak nasıl bir risk var burada?

Kredi alma, geri ödeme, likide olma gibi süreçlerin gerçekleşmesi ise, malumunuz akıllı kontrat dediğimiz küçük programlar aracılığıyla oluyor. Yukarıda anlattığımız her bir adım için bir akıllı kontratın çalışması gerekiyor ve en ciddi sorunlardan biri işte burada başlıyor. Akıllı kontrat içindeki birkaç adımın yanlış yazılması, hem kontratın zaafiyet vermesine yol açıyor, hem de bu durum onunla iletişime geçen diğer kontratları da etkiliyor. Bu da, DeFi’nin en büyük açıklarından biri olan ‘kontrat riskini’ doğuruyor.

Protokoller ‘akıllı kontrat riskini’ çözmek için bu kontratları genellikle dış denetimden geçiriyorlar. Ne var ki, kontratların değişik ihtiyaçlardan dolayı yenilendiği durumda, yeni güncellemeleri gerek maliyet gerekse denetçilerin iş yükünden dolayı ihmal edilebiliyor. Ya da kimi zaman denetçiler bile yoğunluktan dolayı işlerini layıkıyla yerine getirmeyip kontrattaki hataları atlayabiliyorlar.

Olay nasıl patlamış?

İşte Euler Finance de, bu şekilde bir kombo problemler zinciri yaşamış. Problemin teknik detayına girmeden özeti şu şekilde: Euler üzerinde bundan sekiz ay önce Temmuz 2022’de uygulamaya alınan bir güncelleme sırasında yapılan bir değişiklik akıllı kontratta bir açık yaratıyor. Denetimi yapan firma açığı atlıyor ve işin ilginç tarafı tam sekiz ay boyunca kimse bunu farketmiyor.

Nihayet, Mart ayı başında bir hacker bu açığı buluyor ve sonuç: Sistemden tam 200 milyon ABD Doları kriptoparayı hesabına çekiyor! (Açık ve çalınan para ile ilgili teknik detayı dipnotta bulabilirsiniz1).

Sonrasında yaşananlar neler?

Tabii bu olay tüm DeFi dünyasında büyük bir şok etkisi yarattı. Hack, DeFi’de yaşanan en büyük saldırılar tablosunda kendisine altıncı sıradan yer buldu. Euler’in tokeni EUL yaklaşık %70 oranında değer kaybetti.

Euler Finance, yaptığı yenilikler ile bilinen ve ekosistemde sevilen bir topluluk. Protokol aynı zamanda pek çok diğer protokolun parasını emanet ettiği bir yer. Yani olay sadece Euler, ve bireysel yatırımcılarını değil, ekosistemdeki diğer büyük oyuncuları da etkiler hale geldi. Buradan sonrası ise polisiye hikayenin başladığı yer aslında.

harvest
Image by Gerd Altmann from Pixabay

Euler Finance ekibi, öncelikle hacker ile temasa geçtiler. Nasıl? Hımmm, düşünelim bakalım: Elimizde ne var? Açığı bulup parayı çeken adres. Başka ne var? Her tür işlemi gösteren, şeffaf bir blokzincir. Evet, bildiniz. Ekip, 13 Mart’ta hacker’a blokzincir üzerinden aşağıdaki mesajı [^1] gönderdi.

hacker_mesaj
Euler’in hackera yazdığı mesaj. En alttaki birinci dipnottaki adımları takip ederek mesajın orjinalini görebilirsiniz. Kaynak:Etherscan)

Çevirisi özetle: ‘Hadi gel anlaşalım’ olan bu mesaj sonrası hacker ile karşılıklı mesajlaşmalar başladı. Hacker ilk olarak ‘eğer herhangi bir kanuni yaptırım uygulanmaz ise paranın %90’ını geri vereceğini ve %10’unu ödül olarak tutacağını’ yazdı. Ne de olsa bu tip hack olaylarında, iyi niyetli hackerlara kanuni işlem yapılmamasının karşılığı olarak paranın %10’unu ödül (ingilizcesi ‘bounty’) olarak vermek adeta bir standart haline geldi. Bu mesaj paranın geri alınabileceği ile ilgili ümitleri yeşertse de Hacker’in 16 Mart tarihinde bir dizi işlem ile Tornado Cash’e 1000 ETH göndermesi, paranın geri gelmeyeceğinin göstergesi olarak algılandığı için moraller bozuldu. Bu arada hacker’in aynı gün kendisine mesaj atıp ‘tüm biriktirdiğim para 78 ETH idi, hayatım mahvoldu’ yazan birine 100 ETH göndermesi bir anda insanların hackerı mesaj yağmuruna tutmasına neden oldu. Bir gün sonra hacker hesabından geçtiğimiz yılın en büyük DeFi hack’i olan Axie Infinity’e ait Ronin köprü kazasının faili Kuzey Koreli grubun ‘mimli’ hesabına 100 ETH aktarılması ise kafaları iyice karıştırdı. Acaba hacker Kuzey Koreli korsan grubu mu idi?

Buradan sonrası karşılıklı mesajlaşmalar ve ‘parayı verecek, vermeyecek’ git gelleri içinde geçti. 25 Mart’ta Euler ekibine geri gönderilen 57 bin ETH (87 milyon ABD Doları) ile süreç bir anda çözülme yoluna girdi ve paralar yavaş yavaş gelmeye başladı. Nihayet 4 Nisan günü Euler ekibi yayınladığı bir blog yazısı ile geri alınabilecek bütün paranın alındığını söylediler. Hacker ilk başta kendisine söz olarak verilmiş çalınan miktarın %90’ı olan 20 milyon ABD Doları’nı da almadı (Bunun yerine elinde Tornado Cash’e gönderilen 1000 ETH kaldı - bir de Kuzey Koreli ekibe gönderilen 100 ETH var).

Çıkarılacak dersler

İşin magazinsel yanına baktığınızda hackerin profesyonel biri olduğunu söylemek oldukça zor. Muhtemelen Euler Discord kanalında insanların ‘mahvolduk’ mesajlarını da takip eden hackerın tanımadığı kişiye 100 ETH göndermesi (kişinin zararı 78 ETH iken) ve özellikle çözülme sürecinde son gönderdiği mesaj (ismini verip ‘ben Jacob, büyük hata yaptım, insanların parası ve hayatlarını mahvettim, beni affedin’ yazması) bu tesbiti doğrular nitelikte. Tabii bütün bunların asıl nedeninin suyu bulandırmak olduğu, ‘at izini, it izine karıştırmak’ için yapıldığı ve Kuzey Koreli hackerlara para gönderilmesinin arkasında da aynı nedenin yattığını söyleyenler de var.

Ne olursa olsun, özellikle DeFi’nin şeffaf dünyasında hackerların işlerinin giderek zorlaştığını söylemek mümkün. Özellikle zincir-üstü analizler sayesinde izinizi bıraktığınız anda enselenmeniz an meselesi. Burada da hacker muhtemelen yakalanacağını anladığı için %10 ödülü bile almadan elindeki 1000 ETH ile yetinmek zorunda kaldı. Görünen o ki, hack etmek kolay ama sonra çalınan parayı (hele ki bu kadar büyük bir miktar ise) saklamak daha zor. ‘Minareyi çalan, kılıfı hazırlar’ sözü DeFi’de çok geçerli değil gibi görünüyor. Böyle durumlarda hackerlar için en iyi öneri ‘hata mı buldun, al %10 ödülünü, kenara çekil’ demek belki de :)

Burada en büyük alkışı gerek zincir-üstü analizler gerekse zincir-dışı aksiyonlar2 ile hackeri köşeye sıkıştıran kripto camiası hak ediyor. Ekosistem, bu olayda kötü aktörlere karşı birleşip onları sistem dışına itebildiğini gayet güzel göstermiş durumda. Aynı övgüleri Euler Finance ekibi için söylemek zor. Ekip, kodlarındaki hata ve süreç içinde topluluk ile yeterli iletişim kuramadığı için ciddi eleştiriler alıyor. Topluluk onlardan hem süreç ile ilgili öz eleştiri hem de kaybolan 1000 ETH’nin nasıl yerine konulacağı konusunda açıklık bekliyor.

Sonuç

Her ne kadar büyüklük olarak 2021 yıllarındaki eski günlerini arıyor olsa da, çıkan yeni ürünler ile hızlı bir şekilde gelişmeye devam eden DeFi ekosistemi, hızın getirdiği yol kazalarını yaşamaya devam ediyor. Bu kazalardaki kayıplar, topluluğun kenetlenmesi sayesinde son dönemde daha az hissedilmekte. Bu böyle devam edecek mi? Tahmin etmek zor. Zira, her hacker Euler olayında olduğu gibi amatör olmayabilir. Üstelik kaygı verici olan, Euler’deki açığın sekiz ay boyunca fark edilmemiş olması. DeFi protokollerinin riski minimuma indirmesi için yemeleri gereken ‘kırk fırın ekmeğin’ büyük bir kısmı hâlâ önlerinde duruyor gibi görünüyor.


Not 1: Bu yazı ilk olarak 25 Nisan 2023’de BTCHaber’de yayınlandı

Not 2: Tüm yazılara Yazılar sekmesinden ulaşabilirsiniz

Genel not: Bu ve diğer yazılarımızın hiçbiri yatırım tavsiyesi değildir. Özellikle DeFi yani merkeziyetsiz finans sektörünün denetime tabi olmamasından dolayı klasik piyasalara göre çok daha riskli olabileceğini göz önünde bulundurun.


Dipnotlar: [^1]: Mesajı siz de görebilirsiniz. Şu işlem adresine girin. Aşağı doğru ilerleyin ‘gaz fiyatının’ (‘gas price’) hemen altında ‘daha fazla detay’ (‘more details’) diye bir yer göreceksiniz. ‘+’ işaretine basarak orayı açın. ‘Veri girişi’(‘input data’) kısmına gelin. Karmakarışık rakamlar yazdığını göreceksiniz. Alttaki ‘datayı izleme şekli’ (‘View input as’) menüsünden ‘UTF-8’i seçin (not: yazıyı görebilmek için etherscan’e ücretsiz kayıt olmanız gerekiyor).

i) Saldırgan, iki farklı hesap açıyor. Birine kredi alan, öbürüne akbaba hesabı diyelim. ii) Sonra gidip aave’den 30 milyon DAI flash loan alıyor ve bu parayı krediyi alacak hesaba yatırıyor. iii) Kredi alan hesap 20 milyon dolar DAI’yi mevduat olarak yatırıyor. iv) Bu sayede 195 milyon eDAI (Euler’in DAI karşılığı parası) yaratıp kendisini 200 milyon DAI borçlandırıyor (20 milyon mevduatı da teminat olarak gösteriyor). v) Sonra elinde kalan 10 milyon DAI ile 200 milyon DAI’lik borcunu 190 milyona indiriyor. vi) Ardınan yukarıdaki işlemleri bir kez daha tekrarlıyor. vii) En son kredi veren hesabından Euler rezerv hesabına 100 milyon DAI bağış yapıyor. viii) Sonuç olarak kredi hesabının elinde 310 milyon eDAI ve 390 milyon borç ile baş başa kalıyor - yani açığa düşüyor. ix) Burada akbaba hesap devreye giriyor. Kredi alan hesabın 310 milyon eDAI’sinin %25 oranında iskonto (ve bir miktar masraf ile birlikte) 259 milyon DAI borcunu üstüne alıyor. x) Akbaba hesap, 259 milyon DAI borcu elindeki eDAI’ler ile ödüyor. Geriye kalan paranın tamamını çekebilir ama havuzda 38.9 milyon DAI var. Bu DAI’nin tamamını çekiyor ve gidip aave’ye olan 30 milyon DAI borcunu ödüyor. Böylece aradaki fark (38.9-30) olan 8.9 milyon DAI yanına kar kalıyor. xi) Saldırgan aynı işlemi diğer kredi havuzları için de uyguluyor. Böylece 141 milyon ABD Doları wstETH, 34 milyon ABD Doları USDC, 26 milyon ABD Doları wbtc, 15 milyon ABD Doları wETH, ve 7 milyon ABD Doları stETH olmak üzere bugünün parasıyla toplam 232 milyon ABD Dolarını ‘iç’ ediyor.

  1. Euler denetçilerinden birinin yazdığı rapora göre detaylar şu şekilde: Öncelikle, sorunun temeli, Euler’in hesabına para gönderildiğinde, sistemin bunu gönderenin mali durumuna bakmadan kabul etmesi. Ne gibi bir problem yaratıyor bu? Gönderen para gönderdiği için teminatı kredinin altında kalırsa likide olmak durumunda kalıyor. Akbabalar gönderenin teminatını likide ederken %20 iskonto alıyorlar. İşte saldırgan kredi aldığı hesaptan büyük miktarlarda parayı teminat gösterip, hesabı iflas durumuna sürüklüyor. Diğer yandan akbaba gibi davranıp teminatı ucuzdan çözerek parayı cebe atıyor. Burada kaybeden kim? Protokol. Adımlar şu şekilde 

  2. Örneğin, a16z’den geçtiğimiz yıl ayrılıp kendi fonu olan Haun Ventures‘ı kuran Kathryn Haun‘un eski bir adalet bakanlığı avukatı olduğunu ve ekibinin hackerı enselemek konusunda ciddi bir çaba gösterdiğini belirtelim.