Tuntutan Penyelidikan Rangkaian EOS Boleh Membekukan, Block.one Menolak Sebarang Kesalahan

Dalam beberapa minggu terakhir, pengguna protokol blockchain EOS mengalami masalah berkala dengan akses rangkaian. Baru-baru ini artikel yang ditulis oleh pemaju kontrak pintar dan jurutera keselamatan pseudonim, Dexaran, menerangkan akar permasalahan yang jelas: teknik murah yang membolehkan penggodam “menyumbat” rangkaian – atau memasukkannya ke mod kecekapan rendah – dengan hanya EOS bernilai beberapa dolar.
Nampaknya, eksploitasi itu membolehkan penggodam mencuri lebih dari $ 110,000 cryptocurrency dari aplikasi perjudian EOS, EOSPlay, awal bulan September. Walau bagaimanapun, eksekutif firma induk EOS, Block.one, tidak terganggu, dengan alasan bahawa rangkaian beroperasi “dengan betul.”
Asas EOS: Tadbir urus, mod penentuan dan kesesakan
EOS.io adalah protokol kontrak pintar berkuasa blockchain untuk pengembangan dan hosting aplikasi terdesentralisasi (DApps). Ini menggunakan model konsensus yang disebut delegasi proof-of-stake (DPoS) dan diatur sesuai dengan Perjanjian Pengguna EOS (EUA).
Sesuai perjanjian, perubahan pada rangkaian dapat dilakukan apabila ada persetujuan antara sekurang-kurangnya 15 dari 21 Pengeluar Blok – iaitu, entiti bebas yang bertanggungjawab untuk memproses blok pada blok EOS.
Protokol ini disokong oleh cryptocurrency asli eponimnya, yang kini merupakan aset ketujuh terbesar dengan jumlah permodalan pasaran. Token tersebut merupakan teras mekanisme penentuan sumber terbina dalam, salah satu ciri khas EOS. Setiap kali transaksi dihantar ke rangkaian EOS, Pengeluar Blok harus memprosesnya.
Jangka masa (diukur dalam mikrodetik) yang diperlukan oleh Block Producer untuk mengesahkan transaksi disebut CPU. Ringkasnya, pengguna dan pembangun EOS boleh mendapatkan akses ke sumber daya CPU dan lebar jalur di seluruh negara dengan memasukkan token mereka. Blok dihasilkan setiap 500 milisaat. Setiap Pengeluar Blok mempunyai 200 milisaat untuk mengesahkan blok tersebut. Baki 300 milisaat yang tersisa untuk diedarkan di seluruh rangkaian.
Terutama, dalam batas 200 milisaat, ada juga ambang peratusan di mana pembatasan kadar bermula di seluruh rangkaian. Dengan kata lain, apabila blok mencapai had 10% dari jumlah keseluruhan 200 milisaat CPU yang dibenarkan setiap blok, ia pencetus algoritma peruntukan CPU untuk masuk ke mod “kesesakan”.
“Sebelum had ini tercapai, semua pengguna dapat bertransaksi dengan bebas di rangkaian kerana tidak dalam ‘mode kesesakan’,” penulis artikel itu dijelaskan. “Setelah had ini dilewati, pengguna dibebaskan kembali kepada bahagian pro-rata mereka dari jumlah peruntukan CPU-per-EOS.”
Sebagaimana artikel lain ditulis oleh EOS Canada, Pengeluar Blok utama dalam rangkaian blockchain EOS, jika terdapat 1,000 token yang dipertaruhkan untuk CPU pada waktu tertentu, dan satu akaun mempunyai 20 token yang dipertaruhkan, maka akaun itu akan dijamin 2% dari jumlah CPU kapasiti rangkaian.
Namun, jika jaringan belum mencapai ambang di mana pembatasan kadar diaktifkan (bukan dalam mod “kesesakan”), ini memungkinkan akaun tersebut untuk mendorong transaksi melebihi jumlah yang dijamin sebanyak 2%. Setelah ambang tersebut dilewati, akaun tidak boleh melebihi peruntukan. Lebih-lebih lagi, semasa "kesesakan" fasa, jumlah CPU setiap pengguna mulai menurun hingga setiap pihak yang mengalami kesesakan kehabisan CPU dan berhenti mengambil tindakan yang memakan CPU.
Daniel Larimer, pengasas bersama EOS dan ketua pegawai teknologi di Block.one, merujuk kepada mekanisme ini sebagai “faedah percuma” rangkaian:
“Memiliki dan mempertaruhkan #eos memberikan pengguna prorata bahagian lebar jalur yang tersedia. Apabila orang tidak menggunakan bahagiannya, ia akan dialihkan ke orang lain secara prorata. Semasa penggunaan berat pengguna tidak lagi mendapat faedah percuma ini. “
Masalah: Mod kesesakan terlalu mudah dicetuskan
Masalahnya, Dexaran berpendapat, bahawa mod kesesakan terlalu mudah dicetuskan. Setelah dianalisis, pembangun kontrak pintar menyedari lonjakan penggunaan CPU utama pada awal setiap jam, yang didakwa disebabkan oleh DApp pertaruhan yang disebut EOSBetDice. Dexaran kemudian memutuskan untuk menilai berapa banyak CPU yang diperlukan untuk mendorong rangkaian menjadi kesesakan.
Untuk percubaan itu, pembangun mempertaruhkan 7,156 EOS untuk CPU. Jumlah EOS itu boleh dipinjam dari pertukaran sumber dengan kos rendah dua EOS sebulan (kurang dari $ 6), tegas Dexaran. Untuk melihat bagaimana ujian itu mempengaruhi pengguna rangkaian EOS rata-rata, jurutera keselamatan memilih tiga akaun pengguna rawak yang sedang dalam talian memainkan EOSKnights DApp tepat sebelum sesi dimulakan.
Pengembang kemudian melaksanakan kontrak yang menghasilkan banyak transaksi tertunda dengan penundaan satu saat, dengan setiap transaksi memakan “25 hingga 27 ms CPU.” Setelah memonopoli penggunaan CPU selama satu minit, kontrak tersebut mendorong jaringan EOS ke modes kesesakan. Akibatnya, ketiga-tiga akaun sampel itu kehabisan CPU dan oleh itu “dibekukan sepenuhnya” – pada dasarnya bermaksud semua pengguna EOS kasual tidak dapat terlibat dengan DApps apa pun pada rangkaian pada masa.
Dua minit kemudian, EOSBetDice DApp yang disebutkan di atas – yang menyebabkan lonjakan CPU biasa setiap jam, tidak bergantung pada eksperimen – mula beroperasi mengikut jadual. Dengan menggunakan lebih banyak CPU dari jaringan pada saat itu sudah kelebihan muatan, secara tidak sengaja menyumbang kepada kemacetan yang dimulakan oleh Dexaran. “Semakin banyak CPU yang anda gunakan berturut-turut, ‘kesesakan’ akan menjadi mod kesesakan, dan semakin lama masa yang diperlukan untuk rangkaian pulih ke mod normal,” kata pemaju itu.
Akibatnya, jaringan EOS mengalami kesesakan yang lebih dalam lagi, dan ketersediaan CPU dilaporkan menyusut sebanyak 35 kali untuk semua pengguna EOS. “Tidak kira berapa banyak EOS yang anda buat untuk CPU – jika anda telah menggunakan lebih dari 3% maka anda akan dibekukan,” kata Dexaran.
Setelah kontrak Dexaran dan EOSBetDice menekankan jaringan selama lima minit, jaringan itu kelihatannya lumpuh selama 10 minit berikutnya. Setelah enam minit berlalu, sebahagian besarnya telah pulih, tetapi harga pinjaman EOS di pertukaran sumber masih sekitar tiga kali lebih tinggi daripada biasa, menunjukkan bahawa rangkaian memerlukan jumlah token yang tinggi yang diperuntukkan dalam CPU pada masa itu kerana ujian tekanan.
Rangkaian sepenuhnya pulih hanya 30 minit selepas yang terakhir "berniat jahat" tindakan. Itu memberi pengguna “jangka masa 25 minit hingga sesi kesesakan berikutnya,” kata Dexaran, kerana serangan itu dapat dilakukan setiap jam, menurut perkiraan pengembang. “7000 EOS cukup untuk mendorong rangkaian EOS ke mod kesesakan untuk jangka masa yang cukup,” kata penyelidik itu, sambil menambah:
“Sesi kesesakan yang dijelaskan hanya akan menimbulkan masalah bagi (1) pengguna yang menghabiskan sebagian dari lebar jalur CPU mereka, (2) pengguna dengan lebar jalur CPU yang sangat rendah. Sesi kesesakan yang dijelaskan tidak berdampak pada (1) DApps yang memiliki banyak CPU yang tersedia, (2) pengguna yang tidak terlibat dalam kegiatan apa pun dan memiliki CPU mereka sepenuhnya tersedia (dengan anggapan pengguna ini memiliki CPU yang cukup untuk membuat satu tx ). “
Di samping itu, Dexaran menekankan bahawa sementara beberapa pengguna EOS dapat memanggilnya a "penggodam" kerana sengaja memuatkan rangkaian, “Saya melakukan sebaliknya: Saya melindungi pelaburan dan pelaburan anda.”
Terutama, beberapa hari sebelum kemasukan Dexaran mengenai kesesakan EOS diterbitkan, pemaju Christoph Michel menulis catatan blog menghubungkan peretasan kasino EOSPlay baru-baru ini dengan kesesakan rangkaian, sehingga menunjukkan bagaimana masalah rangkaian dapat dimanfaatkan untuk keuntungan.
Menurut Michel, penyerang menyewa token EOS dari REX, pasar sewa sumber CPU dan NET, dan kemudian menyusunnya untuk meningkatkan CPU dan EOSPlay untuk memastikan kasino tetap berfungsi – oleh itu tetap dapat membayar taruhannya. Penggodam itu kemudian memalsukan rangkaian dengan transaksi yang serupa dengan Dexaran, dan bermain beberapa permainan dadu di EOSPlay, bertaruh pada hasil 50/50. Memandangkan EOSPlay melihat blok hash blok hasil dan mengambil dua watak pertama – bermula dari kanan dan antara sifar dan sembilan – ketika dadu bergulir, seseorang harus meramalkan hash blok dari blok hasil untuk memenangi permainan.
“Satu-satunya yang tidak diketahui dalam ramalan ini adalah urus niaga yang termasuk dalam blok,” jelas Michel. “Tetapi bagaimana jika seseorang hanya dapat menghantar spam dan kesesakan jaringan sehingga tidak ada orang lain yang dapat mengirim transaksi?”
Menurut pengembang, itulah sebabnya penyerang meminjam EOS untuk menghantar spam ke rangkaian: untuk mempunyai kawalan ke atas rangkaian dan oleh itu dapat meramalkan hash blok dan memenangkan sebahagian besar pertaruhannya. Sekiranya terdapat ramalan yang salah, penyerang dapat mengirim transaksi rawak lain ke blok tersebut dan dengan itu mempunyai “coin flip” tambahan, sangat meningkatkan kemungkinan.
Pada akhirnya, penggodam itu hanya menggunakan 300 EOS, bernilai lebih dari $ 1,000, yang dapat disewanya dengan harga beberapa dolar. Sebagai gantinya, jumlah kemenangan tetap menghasilkan lebih dari 30,000 EOS, atau sekitar $ 110,000.
Pembangun EOS memastikan bahawa rangkaian “beroperasi dengan betul,” tidak semua bersetuju
Eksperimen kesesakan Dexaran belum disedari, kerana sebilangan pengguna melaporkan mengalami “masalah CPU” di Twitter dan Reddit. Denis Bredikhin, Ketua Pegawai Eksekutif Graphene Lab, sebuah pasukan pembangun kontrak pintar, mengesahkan kepada Cointelegraph bahawa pengguna pertaruhan EOS berdasarkan poker DApp juga telah mengalami masalah selama beberapa minggu terakhir, walaupun aplikasi itu sendiri tidak terganggu. Bredikhin berkata:
“Pada puncak spam, pemain bahkan dengan 8-10 ribu EOS diperuntukkan untuk CPU, tidak dapat melakukan operasi apa pun.”
Menurutnya, mulai 1 Oktober, para pemain harus mengalokasikan “hingga 10.000 EOS” di CPU agar permainan tidak berhenti bagi mereka selama sesi spam. Sementara itu, Larimer Block.one telah menggunakan Twitter untuk meyakinkan masyarakat bahawa EOS “beroperasi dengan betul.” Dia menulis:
“Ini tidak berbeza dengan ketika penyerang membanjiri et atau bitcoin dengan spam transaksi dengan bayaran tinggi. Rangkaian tidak membekukan untuk pemegang token, hanya ada lebar jalur tambahan yang tersedia untuk penggunaan percuma. “
Walau bagaimanapun, sebilangan anggota masyarakat berbeza. “Perbezaan antara serangan ini pada EOS dan spam dengan bayaran tinggi di BTC atau ETH adalah anda masih boleh membayar lebih banyak untuk mengirim transaksi di BTC atau ETH,” berhujah Rob Finch, Ketua Pegawai Eksekutif EOS Block Producer CypherGlass yang berpangkalan di A.S. Dia menambah:
“Banyak pengguna EOS tidak memiliki CPU yang cukup untuk menyewa lebih banyak CPU sehingga membekukan mereka. Mengendalikan dengan betul ‘bukanlah IMO respons terbaik. “
Pengguna EOS yang lain, pengusaha blockchain Jared Moore, disahkan bahawa rangkaian itu tidak dapat digunakan untuk DApps atau dompetnya. Dia juga tertanya-tanya adakah Block.one akan “membantu komuniti EOS keluar dan menerbitkan garis panduan bagaimana mencegah serangan REX.”
Cointelegraph telah menghubungi Block.one untuk komen lebih lanjut dan akan mengemas kini artikel tersebut setelah mendapat lebih banyak maklumat.

Facebook
Pinterest