DAO saldırısı: Ethereum Classic'in hikayesi
2016'daki DAO saldırısının hikayesi ve topluluğun tepkisinin ayrı bir zincir olarak Ethereum Classic'in yaratılmasına nasıl yol açtığı.
Date published: 15 Aralık 2021
Kripto tarihindeki en büyük dijital soygunlardan biri olan 2016'daki DAO saldırısının hikayesini ve Ethereum topluluğunun Blokzincir'i çatallama yönündeki tartışmalı kararının Ethereum Classic'in yaratılmasına nasıl yol açtığını anlatan, Junion tarafından hazırlanmış bir açıklayıcı video.
Bu döküm, Junion tarafından yayımlanan orijinal video dökümünün (opens in a new tab) erişilebilir bir kopyasıdır. Okunabilirliği artırmak için üzerinde ufak düzenlemeler yapılmıştır.
Keşif (0:00)
Tarih 13 Haziran 2016 Pazartesi. Cornell'de bir bilgisayar bilimi profesörü, kripto alanındaki en iddialı projelerden biri olan DAO'nun kodunu inceliyor. Aylardır, tüm projeyi tehlikeye atabilecek bazı kusurlar olduğuna inandığı için projenin beklemeye alınmasını savunuyordu. Ancak bugün ciddi bir güvenlik açığı buluyor: 666. satırda bir hata.
Bu hatanın, bir bilgisayar korsanının potansiyel olarak ATM benzeri sınırsız para çekme işlemi yapmasına olanak tanıyabileceğinden korkuyor. Saldırganın Hesabında sadece 10 doları olsa bile, tüm para bitene kadar bunu defalarca çekebilecekti. DAO'ya çeyrek milyar dolar yatırım yapılmıştı ve her bir kuruş risk altındaydı.
DAO'nun arkasındaki şirket olan Slock.it, potansiyel açığı kabul ediyor ancak herhangi bir saldırının uygulanamaz olacağını, bu nedenle tüm fonların hala güvende olduğunu ilan ediyor. İki satır kodu değiştirerek GitHub'a bir işleme (commit) yapıyorlar — bu, DAO Framework sürüm 1.1'in bir parçası olarak dahil edilecek bir düzeltme.
Ancak tam ekip zafer ilan ederken, bir bilgisayar korsanı gizlice onların izinden gidiyor ve tam olarak bu hatadan yararlanan bir açık geliştiriyordu. Şimdi günlerden Cuma, dört gün geçmiş ve DAO az önce 55 milyon dolarlık bir meblağ için hacklenmişti.
Tıpkı 81 milyon dolarlık SWIFT saldırısının merkezi bankacılık endüstrisindeki boşlukları duyurması ve WannaCry fidye yazılımı saldırısının bilgisayar işletim sistemlerindeki kritik güvenlik açıklarını ortaya çıkarması gibi, DAO saldırısı da kodun her şeyi dikte ettiği bir dünyada Akıllı sözleşme güvenliğinin erken dönemdeki kırılganlığını gözler önüne serdi. Blokzincir'in kontrolünü yeniden ele geçirmeye çalışırken Ethereum topluluğunu perişan halde bıraktı.
Bu, gelmiş geçmiş en büyük dijital soygunlardan birinin ve hiç yaşanmamış gibi tarihi yeniden yazmaya yönelik cesur girişimin hikayesidir.
DAO neydi? (2:00)
Karşınızda DAO — merkeziyetsiz otonom organizasyonun (decentralized autonomous organization) kısaltması. Fikir, kitle fonlamasından ilham almıştı. Farklı projeler için birden fazla fon yerine, hepsini yönetecek tek bir fon olacaktı ve bunu yapmanın bir DAO'dan daha iyi bir yolu yoktu.
Lansmanda yatırımcılar, yatırılan her Ether için 100 DAO Token'ı alacaktı. Bu Token'lar onlara Protokol üzerinde yönetişim sağladı ve DAO'daki paylarını temsil etti. Token sahipleri teklifler sunabilirdi — örneğin, XYZ şirketinde %10'luk bir hisse karşılığında bir milyon dolar yatırım yapmayı teklif edebilirdiniz.
Bir teklif ilk doğrulamayı geçtikten sonra, diğer tüm yatırımcılar tarafından Oylanacaktı. Bu süre zarfında Token sahipleri, yatırımın pozitif beklenen değer sağladığına inanıyorlarsa evet Oyu, negatif beklenen değer sağladığına inanıyorlarsa hayır Oyu verebilirlerdi. Ayrıca fikirlerini belirtmek ve diğerlerini okumak için forumu kullanabilirlerdi.
Oylama süresi dolduğunda ve tüm Token'ların %20'lik nisabına ulaşıldığında, DAO belirtilen Ether'i otomatik olarak teklifi temsil eden Akıllı sözleşmeye aktarırdı. Bu tekliflerden elde edilen herhangi bir Ether daha sonra hazineye iade edilirdi. Tıpkı kâr elde etmek için tasarlanmış büyük bir merkeziyetsiz serbest fon (hedge fund) gibiydi. Buradaki fikir, kalabalığın bilgeliğinin en iyi yatırım fırsatlarını yaratmaya yardımcı olacağıydı.
Ancak yine de azınlığın çoğunluk tarafından ezilmesini önlemenin bir yolu olmalıydı. Eğer bir azınlık grubu, Oylamada üstün gelemedikleri bir teklife şiddetle karşı çıkıyorsa, hayır Oyu vermek yerine bir bölme (split) işlevini çağırabilir ve Ether'lerini ana DAO'dan bir alt DAO'ya taşıyarak esasen DAO'yu ikiye bölebilirdi. Bu bölme işlevi daha sonra çok önemli olacaktır.
Kitle fonlaması (4:01)
DAO, o zamanlar 150 milyon dolar değerinde olan 12,7 milyon Ether toplayarak gelmiş geçmiş en büyük kitle fonlaması projesi oldu. Projenin büyük bir heyecana ve yatırımcı FOMO'suna maruz kaldığı Ethereum'un erken döneminde gerçekleşti.
Bundan önce, Ethereum projeleri temel olarak rastgele kavram kanıtlarıydı, ancak bu, büyük potansiyele sahip tam olarak çalışan bir projeydi. Dünya çapındaki milyonlarca madenci tarafından güvence altına alınmış, her türlü saldırıya karşı tamamen güvenliydi ve merkeziyetsizdi — tüm proje Ethereum üzerindeki bir dizi Akıllı sözleşmeden oluşuyordu.
Bu, dünyanın en güvenli bilgisayarında barındırılan değişmez bir koddu ve bir DAO'nun temel özelliklerini sağlıyordu: tamamen merkeziyetsiz ve otonom bir organizasyon. Sözleşmeler 30 Nisan'da dağıtıldıktan sonra, hiçbir tekil varlık — Slock.it bile — Protokol üzerinde değişiklik yapamaz veya varlığını durduramazdı. Kodu çeşitli Ethereum geliştiricileri tarafından sayısız kez denetlenmişti ve herkesin incelemesine açıktı.
Saldırı (5:02)
"Yalnız, çok yalnız" — 59 numaralı DAO Teklifinin adı. Bu sadece normal bir bölme teklifi, ancak aslında saldırının başladığı yer burası. Bilgisayar korsanı teklifi sunduktan sonra, herkesin katılmakta özgür olduğu standart yedi günlük bir tartışma süresi vardır. Ancak bu bölünmeye kimse katılmaz.
Birinin tek başına bir bölünme çağırması, bir alt DAO oluşturması ve ardından tüm Ether'i kendi Cüzdanına geri gönderen bir teklif oluşturması standart bir prosedürdür. Bu, bir kullanıcının DAO Token'ları ile desteklenen parasını geri almasını sağlar. Artık yedi gün geçmiştir ve bilgisayar korsanının bölünme işlevini çağırmasına izin verilmiştir. Kimse hiçbir şeyden şüphelenmez.
Ancak bölünme işlevi çağrıldığında, topluluk endişe verici bir şey fark eder. Ether, saatte sekiz milyon dolar hızında DAO'dan boşaltılmaktadır. Topluluk ne olduğunu anlamak için çabalar. Görünüşe göre saldırgan bölünme işlevini özyineli (recursive) olarak çağırıyor — defalarca, yüzlerce kez.
Dört gün önce gerçekleşen o hata düzeltmesini hatırlıyor musunuz? Dağıtıldıktan sonra bir Akıllı sözleşmenin kodunu düzenlemenin bir yolu olmaması ne yazık, bu nedenle bu düzeltme yalnızca yapım aşamasında olan tamamen farklı bir DAO olan The DAO 1.1'in bir parçası olarak GitHub'da mevcuttu. Bu küçük düzeltme her şeyi önleyebilirdi — tek yaptığı, bakiyenin gerçek ödemeden önce güncellenmesi için iki satır kodu değiştirmekti.
Ancak bu düzeltme olmadan, Sözleşme bakiyelerini güncellemeden önce herkes Ether çekmek için işlevi defalarca çağırabilirdi. Size parayı verene kadar bakiyenizi değiştirmeyen bir ATM gibi. "On dolar çekebilir miyim? Bekle, ondan önce on dolar çekebilir miyim? Bekle, ondan önce..."
Robin Hood grubu (6:55)
DAO Token sahipleri, yatırımlarının ana DAO'dan karanlık DAO olarak da bilinen alt DAO'ya yavaş yavaş boşaltılmasını izlediler. Ayrıca, haberlerin ardından Ethereum'un fiyatı 20 dolardan 15 dolara ani bir düşüş yaşadı. Bir şeyler yapılması gerekiyordu ve tek yol, bilgisayar korsanından önce geri kalanını boşaltmaktı. Ve böylece boşaltma yarışı başladı.
Dünyanın diğer ucunda, Rio de Janeiro'nun Copacabana semtindeki dairesinde Alex Van de Sande, telefonunun Skype mesajlarıyla dolup taşmasıyla uyanır. Karısına döner ve "Sana şu devasa, hacklenemez para yığınından bahsettiğimi hatırlıyor musun? Hacklenmiş." der.
Alex, isimleri açıklanmayan diğer bazı geliştiricilerle temasa geçti ve Robin Hood lakabını taktıkları bir grup kurdular — kalan fonları boşaltıp hak sahiplerine iade edecek beyaz şapkalı bilgisayar korsanları. Ancak, yedi günlük bir Oylama süresi gerektireceğinden yeni bir bölünme teklif edecek zamanları yoktu.
Bunun yerine, gözlerini birkaç saat içinde sona ermek üzere olan 71 numaralı Teklife diktiler. Bu bölünmeye katılacaklar ve kalan tüm fonları bu alt DAO'ya aktarmak için aynı saldırı yöntemini kullanacaklardı. Saldırının başlamasının üzerinden altı saat geçmişti ve hırsız DAO'nun Ether'inin %30'unu çalmayı başarmıştı. Ancak bilinmeyen bir nedenden dolayı saldırı çalışmayı durdurdu. İşlemler başarısız oldu ve her şey sona erdi.
Bu arada Alex, fonların kalan %70'ini güvence altına almak için beyaz şapkalı saldırısını başlatmaya hazırlanıyordu. Ancak aniden internet bağlantısını kaybetti. Sadece 30 dakikası kalmışken, Brezilyalı internet servis sağlayıcısı NET'i telaşla aradı, ancak yalnızca robotik bir sesten şu yanıtı aldı: "Mahallenizde bir internet sorunu olduğunu görüyoruz." Bölünme teklifi sona erdi ve Robin Hood saldırısını gerçekleştirmek için fırsat penceresini kıl payı kaçırmıştı.
Ertesi sabah Alex, başka bir bölünme teklifine sızmak için grubu yeniden toplamaya çalıştı, ancak diğerleri meşguldü. "Tarihteki en kötü bilgisayar korsanları gibi hissettik. Kötü internet ve ailevi yükümlülükler yüzünden engellendik."
Boşaltma yarışı (9:10)
İlk saldırıdan dört gün sonra DAO tekrar saldırı altındaydı. Yavaş yavaş boşalıyordu — tur başına birkaç Ether — ancak şimdiden birkaç bin dolar biriktirmişti. Suları test eden bir saldırgandan gelmiş gibi görünüyordu. Bu noktada Robin Hood'un bir şeyler yapması gerekiyordu.
78 numaralı Bölünmeye sızmayı seçtiler çünkü teklifin küratörünü tespit etmişlerdi ve yakında sona eriyordu. DAO Token'larını bağışlamaktan mutluluk duyan bazı balinalarla temasa geçtiler ve ekibin altı milyon Token'ı güvence altına almasını sağladılar. Robin Sözleşmesi ne kadar çok Token'a sahip olursa, Ether'i o kadar hızlı çekebilirdi. Saldırgan hızını artırdı ve diğer saldırganlar da katıldı. Ancak bağışlar sayesinde Robin Hood onları geride bırakmayı başardı. Bu, 7,2 milyon Ether'i — DAO'nun %55'ini — güvence altına almalarını sağladı.
Çatallanma (10:08)
Ana DAO artık boşaltılmıştı ve tüm fonlar, ikisi beyaz şapkalı DAO ve karanlık DAO olmak üzere birkaç alt DAO'ya dağıtılmıştı. Ancak tüm para zaman kilitliydi. 27 günlük bekleme süresi bitene kadar bir alt DAO altında hiçbir teklif öne sürülemezdi. Ve ondan sonra bile, harici bir Adrese fon göndermek, bir teklif sunmayı ve iki hafta beklemeyi gerektiriyordu. Esasen, bilgisayar korsanının Ethereum'un toplam arzının %5'ine denk gelen miktarı nakde çevirebilmesine hala 41 gün vardı.
Ancak bilgisayar korsanı Ethereum'una asla dokunamayacaktı. Bundan sonra olanlar, Blokzincir tarihindeki en cesur ve en tartışmalı olaylardan biridir. Topluluk, bilgisayar korsanının kazanmasına izin vermeyeceklerine karar verdi. Saldırıya dahil olan her işlemin geri alınması ve herkesin parasını geri alması için tarihi yeniden yazmak istediler. Ethereum'u çatallamayı seçtiler.
Bir Blokzincir, çıkarılan her Blok ile büyümeye devam eden bir işlemler listesi gibidir. Her işlem Blokzincir'e sonsuza dek kazınır. Ancak madencilerin %50'sinden fazlası gizlice anlaşırsa, Blokzincir'i yanlış bir şekilde değiştirebilir ve tarihi istedikleri gibi yeniden yazabilirler. Genellikle buna %51 saldırısı denir. Ancak bu çatallanmada kötü niyetli hiçbir şey yoktu — topluluk sadece kendilerinden çalınan parayı geri alıyordu.
Kod kanundur (11:48)
Yine de herkes önerilen çatallanmaya katılmıyordu. Kodun kanun olduğunu savundular. Bu görüşe göre saldırgan, bir bilgisayar korsanından ziyade bir Sözleşmenin şartlarını dikkatlice okuyan akıllı bir avukattı. Bu nedenle, aslında hiçbir fon çalınmamıştı ve karanlık DAO'daki Ether üzerinde hak sahibi olmalıydılar.
Ethereum'un kendisinin aslında hiçbir zaman hacklenmediğini belirtmek önemlidir — sadece kötü yazılmış bir Akıllı sözleşme istismar edilmişti. İkisi farklı şeyler. Ayrıca, Blokzincir'de olan şeylerin değişmez olduğuna ve durum ne olursa olsun asla kurcalanmaması gerektiğine inanıyorlardı.
İlk saldırıdan bir gün sonra saldırgan, DAO'nun Slack grup sohbetinde özel anahtarı ile imzalanmış açık bir mektup gönderdi:
"DAO ve Ethereum topluluğuna: DAO'nun kodunu dikkatlice inceledim ve haklı olarak 3 milyon Ether talep ettim ve bu ödül için DAO'ya teşekkür etmek istiyorum. Bu kasıtlı özelliğin kullanımını 'hırsızlık' olarak nitelendirenler beni hayal kırıklığına uğrattı. Akıllı sözleşme şartlarına göre açıkça kodlanmış bu özellikten yararlanıyorum. Yumuşak veya sert çatallanma, meşru ve haklı Ether'ime el konulması anlamına gelecektir. Böyle bir çatallanma, yalnızca Ethereum'a değil, aynı zamanda Akıllı sözleşmeler ve Blokzincir teknolojisi alanına olan tüm güveni kalıcı ve geri dönülmez bir şekilde mahvedecektir. Hiç şüpheniz olmasın: yumuşak veya sert herhangi bir çatallanma, Ethereum'a daha fazla zarar verecek ve itibarını ve çekiciliğini yok edecektir."
Daha fazla inceleme üzerine insanlar imzanın geçersiz olduğunu fark ettiler, bu nedenle bu mektup yalnızca saldırgan olduğunu iddia eden biri tarafından yazılmıştı.
Öte yandan destekçiler, "kod kanundur" ifadesinin çok sert bir ifade olduğunu ve sosyal mutabakat yoluyla son sözü insanların söylemesi gerektiğini savundular. Etik olarak yanlış ve büyük olasılıkla yasa dışı olduğu için bilgisayar korsanının bu açıktan kâr etmesine izin verilmemelidir. Ancak en önemlisi, DAO başarısız olamayacak kadar büyüktü. Toplam Ether arzının yaklaşık %15'ini elinde tutuyordu.
Ethereum Classic (14:34)
2008 mali krizini yansıtan bir olayda, Ethereum geliştiricileri DAO'yu kurtardı. Ethereum'un yaratıcısı ve baş geliştiricisi Vitalik Buterin, bir çatallanma için baskı yapma konusunda tavizsizdi. Daha sonra bir röportajda şunları söyledi: "Bazı Bitcoin kullanıcıları sert çatallanmayı bir bakıma en temel değerlerini ihlal etmek olarak görüyor. Kişisel olarak bu temel değerlerin bu kadar uç noktalara itilmesinin aptalca olduğunu düşünüyorum."
Bu görüşler Ethereum topluluğunun çoğunluğuna hakimdi. Bir Ether'in bir Oya eşit olduğu tartışmalı bir topluluk Oylaması, çatallanma için %87 destek gösterdi. Böylece 1.920.000 numaralı Blokta, dünyanın dört bir yanındaki bilgisayar düğümleri yazılımlarını güncelledi ve çatallanmayı kabul etti. DAO ve alt DAO'lardaki tüm Ether, bir iade Sözleşmesine taşındı.
Ancak bununla bitmiyor. Orijinal Ethereum Blokzincir'i — DAO saldırısının olduğu zincir — devam etti. Hatta büyüyordu. Çatallanmaya karşı çıkan madenciler Blok çıkarmaya devam etti ve işlemler hala yapılıyordu. Ertesi gün Poloniex coin'i listeledi ve tanesi 2 dolardan işlem görmeye başladı. Bu Zincir, orijinal, değiştirilmemiş Blokzincir olan Ethereum Classic olarak bilinmeye başlandı.
Çatallanmadan önce Ether tuttuysanız, artık bir Ethereum'unuz ve bir Ethereum Classic'iniz olacaktı. DAO'da bir Ether tuttuysanız, iade Sözleşmesinden bir Ethereum çekebilecektiniz. Ve eğer DAO'yu yeni hacklemiş olsaydınız, Ethereum Classic'te iyi bir servet — yaklaşık yedi milyon dolar — kazanmış olurdunuz.
DAO'nun mirası (16:14)
Başlangıçta Ethereum Classic, kurtarma paketine katılmayan güçlü bir Blokzincir köktendincileri topluluğuyla bir alternatif olarak ivme kazandı. Ancak o zamandan beri Ethereum Classic ilgi görmeyi başaramadı ve yalnızca çok az faydası olan bir fikir olarak varlığını sürdürüyor. Ethereum binlerce Protokole ev sahipliği yaparken, Ethereum Classic'te yalnızca birkaç temel Protokol bulunuyor. Çatallanmanın kazandığı açık.
İki ay sonra Robin Hood, fiyatı düşürmek amacıyla 2,9 milyon Ethereum Classic'ini Poloniex'e aktardı ve hepsini Ethereum karşılığında sattı. %14'ü başarıyla dönüştürüldü, ancak %86'sı Poloniex tarafından donduruldu ve gruba geri verildi. Robin Hood, DAO saldırısından etkilenen kullanıcılar için Ethereum Classic ağında bir iade Sözleşmesi kurdu.
Bilgisayar korsanına gelince, bugün 150 milyon dolar değerinde olan 3,6 milyon Ethereum Classic ile çekip gittiler. Ancak çatallanma olmasaydı, o 3,6 milyon Ethereum bugün yedi milyar doların üzerinde bir değere sahip olacaktı.
DAO'nun kalıcı etkisi (17:26)
Karışıklığı önlemek için DAO'nun artık genellikle Genesis DAO olarak anıldığını belirtmek önemlidir, çünkü bu ilk DAO'ydu ancak kesinlikle sonuncusu değildi. İlk aksiliklere rağmen, DAO'lar giderek daha popüler hale geldi. MakerDAO, sabitcoin DAI'yi yönetir ve UNI Token'ı ile Uniswap gibi merkeziyetsiz finans (DeFi) Protokolleri genellikle bir yönetişim DAO'suna sahiptir. Bu DAO'ların tümü, daha da çok yönlü ve başarılı organizasyonlar yaratmak için önceki projelerin deneyimlerinden yararlanılarak oluşturulmuştur.
Ancak Genesis DAO, zirvesinde 250 milyon doları veya Ethereum'un toplam arzının %15'ini kontrol eden, bir deney — pahalı bir deney — olarak yaratılan türünün ilk örneğiydi. Baş geliştirici Christoph Jentzsch, yalnızca beş milyon dolar toplamasını beklemişti ve daha sonra buna bir üst sınır koymadığı için pişman olduğunu söyledi. Böylesine büyük bir deney için çok erkendi ve kesinlikle başarısız olamayacak kadar büyüktü.
Bir Akıllı sözleşme oluşturmak, kendi kendini süren bir araba geliştirmek gibidir — kazaları önlemek için kapsamlı testler gerektiren büyük bir sorumluluktur. Bu yeni önlemlere rağmen, DeFi Protokolleri hala 50 milyon doların üzerinde hackleniyor, hatta bazıları profesyonel denetim firmaları tarafından denetlendikten sonra bile. Ancak DAO saldırısından bu yana başka kurtarma paketi olmadı. Ethereum topluluğu artık daha güçlü ve yeni nesil dijital uygulamalar inşa ederek daha da büyük ve daha iddialı projelere geçmeye hazır.