Geçtiğimiz birkaç hafta içinde, EOS blok zinciri protokolü kullanıcıları, ağ erişimiyle ilgili periyodik sorunlar yaşıyorlardı. Yeni makale Sahte akıllı sözleşme geliştiricisi ve güvenlik mühendisi tarafından yazılan Dexaran, sorunun görünen kökenini açıkladı: bilgisayar korsanlarının sadece birkaç dolar değerinde EOS ile ağı “tıkamasına” – veya onu düşük verimli bir moda geçirmesine – izin veren pahalı olmayan bir teknik.
Görünüşe göre, bu istismar, bir bilgisayar korsanının Eylül ayının başlarında bir EOS kumar uygulaması olan EOSPlay’den 110.000 $ ‘dan fazla kripto para çalmasına izin verdi. Ancak, EOS’un ana şirketi Block.one’un yöneticileri, endişelenmiyor, ağın “doğru” çalıştığını iddia etmek.
EOS ile ilgili temel bilgiler: Yönetim, stake etme ve tıkanıklık modu
EOS.io, merkezi olmayan uygulamaların (DApps) geliştirilmesi ve barındırılması için blockchain destekli bir akıllı sözleşme protokolüdür. Temsilci delege kanıtı (DPoS) adı verilen bir fikir birliği modeli kullanır ve EOS Kullanıcı Sözleşmesi’ne (EUA).
Anlaşmaya göre, 21 Blok Üreticisinden en az 15’i (yani EOS blok zincirindeki blokları işlemekten sorumlu bağımsız kuruluşlar) arasında bir fikir birliği olduğunda ağda değişiklikler yapılabilir..
Protokol, şu anda toplam piyasa değeri açısından yedinci en büyük varlık olan kendi adını taşıyan yerel kripto para birimi tarafından destekleniyor. Bu belirteçler, EOS’un ayırt edici özelliklerinden biri olan yerleşik kaynak stake etme mekanizmasının merkezinde yer alır. EOS ağına bir işlem gönderildiğinde, Blok Üreticilerinin bunu işlemesi gerekir..
Bir Blok Üreticisinin işlemi doğrulamak için ihtiyaç duyduğu (mikrosaniye cinsinden ölçülen) süreye CPU denir. Basitçe söylemek gerekirse, EOS kullanıcıları ve geliştiricileri, tokenlerini stake ederek zincir çapındaki CPU ve bant genişliği kaynaklarına erişebilirler. Bloklar her 500 milisaniyede üretilir. Her Blok Üreticisinin bloğu doğrulamak için 200 milisaniye süresi vardır. Kalan 300 milisaniye ağ üzerinden dağıtım için ayrıldı.
Özellikle, 200 milisaniyelik sınır içinde, ağ genelinde hız sınırlamasının başladığı bir yüzde eşiği de vardır. Başka bir deyişle, bir blok, blok başına izin verilen toplam 200 milisaniye CPU’nun% 10’unun sınırına ulaştığında, tetikler “tıkanıklık” moduna geçmek için CPU ayırma algoritması.
Makalenin yazarı, “Bu sınıra ulaşılmadan önce,” tıkanıklık modunda “olmadığı için tüm kullanıcılar ağ üzerinde serbestçe işlem yapabilir” açıkladı. “Bu sınır aşıldıktan sonra, kullanıcılar, hisseli toplam CPU tahsisatının orantılı paylarına geri döndürülür.”
Göre başka bir makale EOS blok zinciri ağında önemli bir Blok Yapımcısı olan EOS Canada tarafından kaleme alınan, belirli bir anda CPU için 1.000 token stake edilmiş olsaydı ve tek bir hesapta 20 jeton varsa, bu hesap toplam CPU’nun% 2’si garantili olacaktı. ağın kapasitesi.
Bununla birlikte, ağ hız sınırlamasının etkinleştirildiği eşiğe ulaşmadıysa (“tıkanıklık” modunda değil), bu hesabın, garanti edilen% 2’lik tutarın üzerindeki işlemleri gerçekleştirmesine izin verir. Bu eşik aşıldığında, hesap servis birimini aşamaz. Üstelik, "tıkanıklık" aşama, her sıkışık tarafın CPU’su bitene ve CPU tüketen eylemler gerçekleştirmeyi bırakana kadar her kullanıcının CPU miktarı azalmaya başlar.
EOS’un kurucu ortağı ve Block.one’da baş teknoloji sorumlusu Daniel Larimer, atıfta ağın “ücretsiz bir yararı” olarak bu mekanizmaya:
“#Eos’a sahip olmak ve pay almak, kullanıcılara mevcut bant genişliğinin prorata payını veriyor. Kişiler kendi paylaşımlarını kullanmadıklarında, bu paylaşım, prorata temelinde başkalarına yönlendirilir. Yoğun kullanım sırasında kullanıcılar artık bu ücretsiz avantajdan yararlanamıyor. “
Sorun: Tıkanıklık modunu tetiklemek çok kolay
Dexaran, sorunun, tıkanıklık modunun tetiklenmesinin çok kolay olması olduğunu ileri sürdü. Analizden sonra, akıllı sözleşme geliştiricisi, her saatin başında, EOSBetDice adlı bir bahis DApp’sinin neden olduğu iddia edilen büyük CPU kullanım artışlarını fark etti. Dexaran daha sonra ağı tıkanıklığa itmek için ne kadar CPU gerektiğini değerlendirmeye karar verdi..
Deney için, geliştirici 7,156 EOS for CPU hissesi aldı. Dexaran, bu miktardaki EOS’un kaynak borsalarından ayda iki EOS gibi düşük bir maliyetle (6 dolardan az) ödünç alınabileceğini vurguladı. Testin ortalama EOS ağı kullanıcılarını nasıl etkileyeceğini görmek için güvenlik mühendisi, oturum başlamadan hemen önce EOSKnights DApp’ı çevrimiçi oynayan üç rastgele kullanıcı hesabını önceden seçti..
Daha sonra geliştirici, her bir işlemin “25 ila 27 ms CPU” tükettiği bir saniye gecikmeyle çok sayıda ertelenmiş işlemi ortaya çıkaran bir sözleşme imzaladı. CPU kullanımını bir dakika boyunca tekelleştirdikten sonra, sözleşme EOS ağını tıkanıklık moduna getirdi. Sonuç olarak, üç örnek hesapta da CPU kalmamıştı ve bu nedenle “tamamen donmuştu” – temelde, tüm sıradan EOS kullanıcılarının o sırada ağdaki herhangi bir DApp ile etkileşim kuramadığı anlamına geliyor.
İki dakika sonra, deneyden bağımsız olarak her saat düzenli CPU artışlarına neden olan yukarıda bahsedilen EOSBetDice DApp programa göre çalışmaya başladı. Zaten aşırı yüklendiğinde ağdan daha fazla CPU tüketerek, Dexaran tarafından başlatılan tıkanıklığa istemeden katkıda bulundu. Geliştirici, “Arka arkaya ne kadar çok CPU tüketirseniz, tıkanıklık modu o kadar” derin “olur ve ağın normal moduna dönmesi o kadar uzun sürer” dedi..
Sonuç olarak, EOS ağı daha da “derin” bir tıkanıklığa girdi ve tüm EOS kullanıcıları için CPU kullanılabilirliğinin 35 kat azaldığı bildirildi. Dexaran, “CPU için ne kadar EOS yatırırsanız yatırın -% 3’ten fazla kullandıysanız donmuş olursunuz” dedi..
Dexaran’ın sözleşmesi ve EOSBetDice’in ağı toplam beş dakika vurgulamasının ardından, ağ görünüşte önümüzdeki 10 dakika boyunca felçli kaldı. Altı dakika daha geçtikten sonra, büyük ölçüde düzeldi, ancak EOS’un kaynak değişimlerinde ödünç verme fiyatı hala normalden yaklaşık üç kat daha yüksekti, bu da ağın stres testi nedeniyle o sırada CPU’ya tahsis edilmiş yüksek miktarda token gerektirdiğini gösteriyor..
Ağ, sonuncudan yalnızca 30 dakika sonra tamamen geri yüklendi. "kötü niyetli" aksiyon. Dexaran, geliştiricinin tahminlerine göre saldırı her saat gerçekleştirilebildiği için kullanıcılara “bir sonraki tıkanıklık oturumuna kadar 25 dakikalık bir pencere” veriyor. Araştırmacı, “7000 EOS, EOS ağını makul bir süre için tıkanıklık moduna sokmak için yeterli,” diye bitirdi ve ekledi:
“Açıklanan tıkanıklık oturumu yalnızca (1) CPU bant genişliğinin belirli bir bölümünü harcayan kullanıcılar, (2) çok düşük CPU bant genişliğine sahip kullanıcılar için sorunlara neden olacaktır. Açıklanan tıkanıklık oturumunun (1) çok fazla CPU’su olan DApp’ler, (2) herhangi bir etkinlikte bulunmayan ve CPU’larını tam olarak kullanabilen kullanıcılar (bu kullanıcıların tek bir tx yapmak için yeterli CPU’ya sahip olduğu varsayılarak) üzerinde hiçbir etkisi yoktur. ). “
Ayrıca Dexaran, bazı EOS kullanıcılarının kendisine "bilgisayar korsanı" ağın kasıtlı olarak aşırı yüklenmesi nedeniyle, “Tam tersini yapıyorum: Yatırımlarımı ve sizinkini koruyorum.”
Özellikle, Dexaran’ın EOS tıkanıklığıyla ilgili girişinin yayınlanmasından birkaç gün önce, geliştirici Christoph Michel bir blog yazısı yazdı En son EOSPlay casino hackini ağ tıkanıklığına bağlamak, dolayısıyla ağ sorununun kar için nasıl istismar edilebileceğini göstermek.
Michel’e göre, saldırgan, bir CPU ve NET kaynak kiralama pazarı olan REX’ten EOS tokenları kiraladı ve daha sonra, kumarhanenin işlevsel kalmasını sağlamak için hem kendi hem de EOSPlay’ın CPU’sunu artırmak için bunları istifledi – bu nedenle bahislerini ödeyebildi. Bilgisayar korsanı daha sonra Dexaran’a benzer işlemlerle ağa spam gönderdi ve EOSPlay’de 50/50 sonuç üzerine bahis yaparak birkaç zar oyunu oynadı. EOSPlay’in sonuç bloğunun blok karmasına baktığı ve zar atma olarak sağdan başlayarak sıfır ile dokuz arasındaki ilk iki karakteri aldığı göz önüne alındığında, oyunu kazanmak için sonuç bloğunun blok karmasını tahmin etmek gerekir..
Michel, “Tahmindeki tek bilinmeyenler bloklara dahil edilen işlemlerdir,” diye açıkladı. “Peki ya biri spam olarak ağa tıkanarak başka hiç kimsenin işlem gönderememesini sağlasaydı?”
Geliştiriciye göre, saldırganın ağa spam göndermek için EOS’u ödünç almasının nedeni budur: ağ üzerinde kontrol sahibi olmak ve bu nedenle blok karmalarını tahmin edebilmek ve bahislerinin çoğunu kazanabilmek için. Yanlış bir tahmin durumunda, saldırgan bloğa başka bir rastgele işlem gönderebilir ve bu nedenle fazladan bir “yazı tura atma” yapabilir, bu da olasılıkları büyük ölçüde artırır..
Sonunda, bilgisayar korsanı, değeri 1.000 doların biraz üzerinde olan ve birkaç dolara kiralayabileceği 300 EOS kullandı. Karşılığında, sabit kazanan bol miktarda 30.000 EOS veya yaklaşık 110.000 $ getirdi.
EOS geliştiricileri ağın “doğru çalıştığından” emin olurlar, hepsi aynı fikirde değil
Dexaran’ın tıkanıklık deneyleri, bir dizi kullanıcı “CPU sorunları” yaşadığını bildirdiği için fark edilmedi Twitter ve Reddit. Akıllı sözleşmeler geliştiricilerinden oluşan Graphene Lab’in CEO’su Denis Bredikhin, Cointelegraph’a, poker tabanlı EOS bahis DApp kullanıcılarının, uygulamanın kendisi tehlikeye atılmamış olsa da, geçtiğimiz haftalarda sorunlar yaşadığını doğruladı. Bredikhin şöyle dedi:
“İstenmeyen postaların zirvesinde, CPU’ya 8-10 bin EOS tahsis edilmiş olsa bile oyuncular herhangi bir işlem yapamadı.”
Ona göre, 1 Ekim’den itibaren, oyuncuların, spam oturumları sırasında oyunun kendileri için durmaması için CPU’ya “10.000’e kadar EOS” tahsis etmesi gerekiyor. Bu arada, Block.one’dan Larimer, EOS’un “doğru çalıştığına” dair topluluğa güvence vermek için Twitter’ı ziyaret etti. O yazdı:
“Bu, saldırganların yüksek ücretli işlem spam’iyle eth veya bitcoin’i doldurmasından farklı değildir. Ağ, jeton sahipleri için donmadı, sadece ücretsiz kullanım için ekstra bant genişliği yoktu. “
Bununla birlikte, bazı topluluk üyeleri farklı olmak için yalvarıyor. “EOS’a yapılan bu saldırı ile BTC veya ETH üzerindeki yüksek ücretli spam arasındaki fark, BTC veya ETH üzerinden bir işlem göndermek için yine de daha fazla ödeme yapabilmenizdir.” tartıştı ABD merkezli EOS Blok Yapımcısı CypherGlass’ın CEO’su Rob Finch. Ekledi:
“Birçok EOS kullanıcısı daha fazla CPU kiralamak için yeterli CPU’ya sahip değildi, bu yüzden onlar için dondu. Doğru çalışmak ‘en iyi yanıt IMO’su değildir. “
Başka bir EOS kullanıcısı, blockchain girişimcisi Jared Moore, onaylanmış ağın DApp’ler veya cüzdanı için kullanılamaz olduğunu. Ayrıca Block.one’un “EOS topluluğuna yardım edip etmeyeceğini ve REX saldırılarının nasıl önleneceğine dair yönergeler yayınlayıp yayınlamayacağını” da merak etti.
Cointelegraph, daha fazla yorum için Block.one’a ulaştı ve daha fazla bilgi elde edildiğinde makaleyi güncelleyecektir..