Eksploitasi Celah di Pengindeks Kasplex KRC-20: Penyerang Menguras 186,4 Juta ZEAL dan 54,4 Miliar NACHO

3 jam yang lalu
2 menit baca
2 tampilan

Peretasan Jembatan Kaspa KRC-20

Akhir pekan ini, seorang penyerang berhasil menarik 186,4 juta ZEAL dan 54,4 miliar NACHO dari dompet jembatan Kaspa KRC-20 tanpa memiliki kunci privat. Penyerang kemudian mendaur ulang token tersebut melalui jaringan layer dua (L2) dan menjualnya ke dalam kolam likuiditas. Yang menarik, Kaspa sendiri tidak mengalami peretasan.

Metode Penyerangan

Lima transaksi yang valid berhasil menipu pengindeks off-chain untuk mengenali transfer yang sebenarnya tidak ditandatangani oleh siapa pun, sehingga meninggalkan token yang dijembatani tanpa dukungan dan beberapa kolam kehilangan hingga 99,6% dari nilai sisi KAS mereka. Kunci privat seharusnya menjadi batas antara memiliki cryptocurrency dan hanya mengetahui di mana ia berada.

Pada 20 September, seseorang menemukan cara untuk menghindari asumsi tersebut untuk token KRC-20 tanpa merusak rantai dasar Kaspa. Penyerang memindahkan 186.425.259 ZEAL dan 54.397.983.246 NACHO dari alamat penyimpanan jembatan, meskipun mereka tidak mengendalikan kunci privatnya.

Proses Transfer dan Dampaknya

Token-token tersebut kemudian dikirim kembali ke alamat penyimpanan yang sama sebagai setoran jembatan biasa, dicetak di layer EVM Igra Labs dan Kasplex L2, dan dibuang ke kolam likuiditas Zealous Swap. Ketika debu mereda, saldo L2 ZEAL dan NACHO penyerang kosong, sementara kolam yang terpengaruh kehilangan antara 94% dan 99,6% dari nilai sisi KAS mereka.

Masalah pada Layer Satu (L1)

Masalahnya adalah layer satu (L1) Kaspa berfungsi dengan baik sesuai yang diharapkan. Kepemilikan token KRC-20 tidak ditegakkan secara langsung oleh konsensus Kaspa. Instruksi token berada di dalam transaksi Kaspa, sementara pengindeks Kasplex off-chain membaca instruksi tersebut dan menentukan siapa yang memiliki apa.

Biasanya, transfer KRC-20 berisi kunci publik, instruksi token, dan tanda tangan yang valid. Namun, penyerang mempertahankan struktur yang familiar tetapi menyediakan tanda tangan kosong dan menambahkan OP_NOT setelah OP_ENDIF. Tanda tangan kosong menyebabkan OP_CHECKSIG mengembalikan false, bukan langsung membatalkan transaksi. OP_NOT tambahan membalikkan hasil tersebut kembali menjadi true, sehingga transaksi tetap valid di Kaspa.

Implikasi dan Tindakan Selanjutnya

Tidak ada yang salah di lapisan konsensus. Namun, pengindeks adalah cerita lain. Ia mengenali amplop KRC-20 tetapi tidak memerlukan skrip untuk cocok dengan format kanonik secara tepat. Akibatnya, ia mengkredit transfer yang dipalsukan sebagai sah. API Kasplex sendiri bahkan mengembalikan opAccept: 1 pada transaksi ZEAL yang dipalsukan pertama.

Yang lebih mengejutkan adalah penyerang tidak perlu menemukan kredensial tersembunyi. Alamat Kaspa standar mengekspos kunci publik yang diperlukan untuk membangun operasi KRC-20 yang dipalsukan. Ini berarti bahwa memindahkan token ke alamat lain tidak menyelesaikan masalah mendasar. Sampai pengindeks diperbaiki dan riwayatnya diindeks ulang, cacat yang sama secara teoritis dapat digunakan terhadap saldo KRC-20 di tempat lain.

Pengumuman dan Tindakan Komunitas

Pada pagi hari Minggu, Igra mengumumkan bahwa seluruh kepemilikan ZEAL dan NACHO di dompet penyimpanan telah diambil, meninggalkan 97.651.212 ZEAL dan 42.570.879.908 NACHO di jaringan Layer 2 tanpa dukungan penuh dari L1. Sebanyak 4,5 miliar NACHO tetap bersama penyerang di L1.

Igra menghentikan keluaran iKAS ke Kaspa L1 dan transfer Hyperlane, sementara pengguna diperingatkan untuk tidak menjembatani token KRC-20, membeli ZEAL atau NACHO di bursa terdesentralisasi (DEX) L2, atau menambahkan likuiditas ke kolam yang terpengaruh. KAS asli, konsensus Kaspa, dan aset Igra yang bukan token KRC-20 yang dijembatani dijelaskan sebagai tidak terpengaruh.

Solusi dan Masa Depan

Memperbaiki perangkat lunak saja tidak akan menyelesaikan masalah ini. Zealous Swap menyatakan bahwa operator perlu memperbaiki pengindeks dan mengindeks ulang riwayatnya, menolak tanda tangan kosong, tag yang salah bentuk, dan skrip yang terus berlanjut setelah OP_ENDIF. Sementara itu, Nacho the Kat mengungkapkan bahwa komunitas berniat untuk beralih ke KCC-20, sebuah standar yang dirancang untuk menempatkan aturan token ke dalam skrip yang ditegakkan oleh jaringan itu sendiri.

Masalah ini muncul setelah serangkaian eksploitasi, bug, peretasan, dan pelanggaran data dalam beberapa minggu terakhir. Pada hari Sabtu, penyedia infrastruktur custodial dan non-custodial Lightning Network, Blink Wallet, mengungkapkan bahwa “beberapa lusin” akun custodial telah dikuras. Perusahaan keamanan siber DCENT juga melaporkan bahwa Dompet Aplikasi DCENT disedot minggu ini. Waktu ini datang saat serangan keamanan siber telah meningkat, dan beberapa mencurigai bahwa AI berperan dalam gelombang eksploitasi ini.