Seperti yang telah dilaporkan minggu ini, alamat yang terkait dengan eksploitasi FTX telah memindahkan dana melalui sejumlah proyek lintas rantai.

Meskipun sebagian besar dana telah melalui Thorchain, beberapa di antaranya telah disalurkan melalui tBTC. Dalam prosesnya, dua bug telah terungkap.

Tidak ada bug yang membahayakan dana pengguna. Bug pertama telah diperbaiki dan dirilis kemarin, sedangkan bug kedua memerlukan diskusi dan konsensus komunitas.

Bug pertama — vektor penolakan layanan

Pada hari Sabtu, 30 September, alamat terkait FTX meminta penebusan 76.81431578 BTC.

Di tBTC saat ini, penebusan dapat diminta oleh pengguna mana pun dengan saldo tBTC L1. Setelah beberapa waktu, pengelola off-chain yang didelegasikan oleh Threshold DAO di

Koordinator Dompet

Kontrak memverifikasi permintaan penebusan, yang mendorong para penanda tangan untuk menganggap permintaan penebusan tersebut valid. Jika 51 dari 100 penanda tangan untuk dompet tertentu setuju, mereka bersama-sama menandatangani dan melepaskan dana tersebut di blockchain Bitcoin.

Setelah beberapa waktu, permintaan penebusan ini disetujui oleh pengelola penebusan. Setidaknya 51 penanda tangan di dompet terkait setuju, dan penebusan pun selesai.

9 jam kemudian, alamat berbeda yang terkait dengan eksploitasi FTX meminta penebusan lain — kali ini untuk 76.62186419 BTC.

Tak lama kemudian, sesuatu yang luar biasa terjadi.

Pihak ketiga yang tidak dikenal mengirim transaksi BTC ke dua dompet di belakang tBTC.

Nah, ini terjadi setiap saat — tBTC dicetak dengan mendepositokan BTC, bagaimanapun juga. Namun, alih-alih transaksi deposit normal, transaksi ini dibuat secara manual sedemikian rupa sehingga klien yang menandatangani tBTC mengira dompet tersebut "sibuk" memindahkan dana, dan tidak dapat melayani permintaan penebusan. Pengelola persetujuan menunggu dompet tersebut tidak lagi "sibuk" — yang tidak pernah terjadi.

Efektifnya, transaksi BTC ini memblokir semua penebusan tBTC yang belum diselesaikan.

Kami tidak tahu siapa yang mengirim transaksi ini. Namun, siapa pun mereka, mereka cukup tahu untuk menghentikan sementara jembatan tBTC, membakar eksploitasi 0-hari yang sederhana dalam prosesnya, dan mencegah penebusan terkait FTX kedua disetujui.

Ini hal baru bagi saya. Tidak ada pihak yang menghubungi, tidak ada yang memberikan penjelasan — tetapi waktunya sangat tepat.

Pada titik ini, sistem peringatan dan pemantauan yang digunakan oleh kontributor di seluruh DAO mulai bermasalah. Tim pengembang Keep mulai mempersiapkan patch untuk memperbaiki penolakan layanan selama akhir pekan.

Saat itu, kami juga mulai memahami bahwa salah satu penebusan yang diblokir dikaitkan dengan FTX.

Bug kedua — cacat desain mekanisme penebusan

Bug kedua muncul saat kami menyiapkan patch pertama.

DAO Ambang Batas dapat didelegasikan ke beberapa alamat pemberi persetujuan di

Koordinator Dompet

kontrak.

Sayangnya, hingga saat ini, hanya ada satu delegasi ke satu alamat pengelola — satu titik kegagalan. Saat ini, alamat tersebut dikendalikan oleh perusahaan milik AS, yang tidak diizinkan menyetujui penebusan terkait FTX.

Memperbaiki desain mekanisme

Hanya memiliki satu orang pemberi persetujuan yang didelegasikan dengan TVL senilai $25 juta merupakan sebuah kelalaian. Namun, masalah yang lebih besar adalah desain mekanisme itu sendiri.

Sistem apa pun yang mengandalkan persetujuan eksplisit atas penebusan pasti akan memiliki masalah lain seperti ini. Ketika protokol pertama kali diluncurkan, alasan untuk mekanisme persetujuan adalah kecepatan dan kemudahan penggunaan — alternatif berarti pengalaman pengguna yang lebih buruk.

Saya tidak yakin sistem saat ini telah membuat keputusan yang tepat.

Ada dua pendekatan yang jelas untuk memperbaiki kelemahan ini

  1. Beralih dari alur berbasis persetujuan ke alur berbasis veto

  2. Hapus semua tinjauan penebusan di tingkat protokol

Saya yakin desain mekanisme yang paling aman, untuk ke depannya, adalah sesuatu yang saya sebut "penukaran optimis". Alih-alih daftar alamat yang menyelesaikan penukaran, kami memiliki daftar alamat yang dapat memveto penukaran — mirip dengan peran Guardian dalam pencetakan optimis.

Dengan adanya mekanisme ini, semua penebusan berlaku secara default. Jika penebusan ditolak karena dugaan peretasan jembatan, penebusan dapat ditunda. Jika ditolak oleh cukup banyak wali, penebusan dapat dibatalkan melalui pemungutan suara pemegang token. Jika veto ditegakkan melalui pemungutan suara pemegang token, penebusan tBTC yang ditolak dapat secara otomatis dikembalikan kepada pengguna yang menebus.

Kelemahannya adalah mekanisme hipotetis ini memerlukan penundaan tambahan untuk setiap penebusan. Namun, seiring berjalannya waktu, penundaan tersebut dapat dipersingkat hingga 15 menit, dan sepenuhnya diabaikan untuk transaksi kecil.

Terakhir, jika dan ketika komunitas menilai sistem aman tanpa periode peninjauan penebusan, penundaan tersebut dapat dihilangkan sama sekali, dan beralih dengan lancar dari pendekatan pertama ke pendekatan kedua. Bahkan, menurut saya jadwal yang jelas untuk menghapus peninjauan penebusan akan membantu membangun kepercayaan di seluruh komunitas.

Namun bagaimanapun cacat desain mekanisme ini diatasi, kami telah belajar banyak dari pengalaman ini — dan saya senang kami mempelajarinya minggu ini, bukan 10x dari sini.

Apa selanjutnya?

DAO dan komunitas harus membuat keputusan.

Apakah komunitas memutuskan untuk menambahkan alamat pemberi persetujuan lain, meningkatkan kontrak ke mekanisme bergaya "penebusan optimistis", atau meneliti dan mempertimbangkan opsi lain, sebagai tim pengembang, kami siap memberi saran dan membantu membangun masa depan keuangan yang lebih tangguh, aman, dan netral bersama-sama.