🇮🇩 Mengapa Tidak Ada Serangan Pinjaman Flash Di Cardano?

Source : https://cexplorer.io/article/why-are-there-no-flash-loan-attacks-on-cardano

Screenshot_20231201-154603_Mises

Banyak peretasan pada platform Ethereum menggunakan pinjaman kilat. Seorang penyerang dapat meminjam dana dalam jumlah besar tanpa jaminan, menggunakannya untuk mendapatkan keuntungan, dan kemudian membayar kembali pinjaman tersebut dalam transaksi yang sama. Pada artikel ini, kami akan menjelaskan mengapa kami tidak melihat serangan semacam ini di DeFi Cardano. Anda akan memahami salah satu kelebihan model UTxO.

Prinsip Pinjaman Kilat
Pinjaman kilat adalah pinjaman yang dipinjam dan dilunasi dalam transaksi yang sama. Ini adalah salah satu cara untuk mendapatkan keuntungan besar tanpa harus mempertaruhkan uang Anda sendiri.

Sebagian besar dari kita akrab dengan pinjaman normal. Pemberi pinjaman meminjamkan uang kepada peminjam untuk akhirnya dibayar kembali secara penuh. Pinjaman biasanya harus dibayar kembali secara terus-menerus selama beberapa bulan atau tahun. Seringkali pemberi pinjaman mengharuskan peminjam untuk memberikan jaminan untuk memastikan bahwa jika peminjam tidak dapat membayar kembali pinjamannya, pemberi pinjaman masih bisa mendapatkan uangnya kembali. Ini adalah pinjaman yang dijamin.

Pinjaman kilat tidak aman karena tidak diperlukan agunan. Kurangnya jaminan ini tidak berarti pemberi pinjaman tidak akan mendapatkan uangnya kembali. Daripada menawarkan jaminan, peminjam harus segera membayar kembali uangnya. Hal ini dapat dipastikan dengan kontrak pintar.

Pinjaman kilat bersifat instan. Dengan memanfaatkan atomisitas transaksi di Ethereum, pinjaman flash memungkinkan pengguna melakukan banyak tindakan dalam satu transaksi, selama waktu transaksi tidak melebihi waktu blok.

Konsep atomisitas ini sangat penting untuk berfungsinya pinjaman kilat. Kontrak cerdas untuk pinjaman kilat biasanya melibatkan peminjaman dana, melakukan beberapa operasi (seperti arbitrase atau likuidasi), dan kemudian membayar kembali pinjaman, semuanya dalam satu transaksi. Jika pinjaman tidak dilunasi pada akhir transaksi, seluruh transaksi dibatalkan, dan seolah-olah pinjaman tidak pernah terjadi. Hal ini memastikan bahwa pemberi pinjaman tidak kehilangan dana, meskipun pinjaman tersebut tidak memiliki jaminan.

Dengan kata lain, atomisitas memastikan sifat transaksi yang semuanya atau tidak sama sekali.

Yang terbaik adalah menjelaskannya dengan sebuah contoh. Katakanlah kita memiliki tiga pihak yang terlibat: protokol peminjaman (A), peminjam (B), dan protokol target C. Ketiga tindakan ini terjadi dalam satu transaksi: Pinjam, Tindakan, dan Bayar.

Pinjam: Peminjam (B) memulai transaksi dengan meminjam dana dari protokol peminjaman (A). Ini mendebit saldo A dan mengkredit saldo B.
Tindakan: Peminjam (B) kemudian menggunakan dana pinjaman ini untuk berinteraksi dengan protokol C lain. Ini bisa untuk arbitrase, likuidasi, atau operasi lain apa pun yang dapat menghasilkan keuntungan. Ini mendebit saldo B dan mengkredit saldo C.
Pembayaran kembali: Terakhir, peminjam (B) membayar kembali pinjamannya ke protokol peminjaman (A), ditambah biaya atau bunga apa pun. Ini mendebit saldo B dan mengkredit saldo A.
Saat transaksi berakhir, ternyata dana belum dipinjam.

Kontrak pintar di Ethereum dapat berupa program otonom kompleks yang dapat melakukan berbagai operasi dan berinteraksi dengan kontrak lain. Hal ini memungkinkan terjadinya interaksi kompleks antara beberapa kontrak pintar dalam satu transaksi, yang merupakan persyaratan utama untuk melaksanakan pinjaman kilat. Perhatikan juga bahwa dalam transaksi pinjaman kilat, ada banyak saldo yang terlibat. Setiap saldo dapat didebit dan dikreditkan beberapa kali dalam satu transaksi.

Banyak dari konsep ini yang secara fundamental berbeda dari kesederhanaan skrip Plutus dan model UTxO. Inilah alasan mengapa belum ada serangan pinjaman kilat terhadap Cardano.

Mengapa Tidak Ada Serangan Pinjaman Flash Di Cardano?
Tujuan dan fungsi skrip validator di Cardano dan kontrak pintar di Ethereum berbeda, dan ini berdampak pada penerapan pinjaman kilat.

Skrip validator di Cardano digunakan untuk menentukan apakah UTxO dapat dibelanjakan. Mereka melakukan ini dengan memeriksa apakah kondisi tertentu terpenuhi. Jika ketentuan tidak terpenuhi, transaksi tidak divalidasi, dan UTXO tetap tidak terpakai.

Salah satu alasan lain untuk keamanan yang lebih baik di Cardano adalah model UTxO.

Setiap UTxO adalah objek terpisah yang tidak bergantung pada lingkungannya. Model UTxO tidak memiliki konsep saldo, tidak seperti model berbasis akun yang digunakan oleh Ethereum.

Satu atau lebih UTxO dapat menjadi input transaksi yang hanya dapat dibelanjakan satu kali dan seluruhnya. UTxO keluaran baru akan dibuat dari UTxO masukan.

Transaksi Cardano dapat dilihat sebagai fungsi sederhana yang menggunakan input UTxO dan menghasilkan output UTxO. UTxO yang memasukkan transaksi tidak dapat diubah dan dimungkinkan untuk memastikan akses eksklusif. Dalam transaksi tersebut, dipastikan bahwa nilai seluruh UTxO masukan sama dengan nilai seluruh UTxO keluaran (ini juga merupakan syarat kontrak pintar yang menerapkan pinjaman kilat).

Di Ethereum, transaksi bersifat stateful, artinya transaksi dapat mengubah keadaan sistem. Ini adalah prasyarat yang diperlukan untuk interaksi kompleks antara beberapa kontrak pintar dalam satu transaksi, yang merupakan persyaratan utama untuk melaksanakan pinjaman kilat.

Model UTxO lebih bersifat stateless. Selama validasi transaksi, skrip hanya memiliki akses ke input UTxO, konteks transaksi, Datum, dan Penebus. Skrip tidak memiliki kemampuan, misalnya, untuk berinteraksi dengan UTxO lain di sistem.

Perbedaan utama antara Cardano dan Ethereum adalah tidak mungkin memindahkan UTxO beberapa kali ke alamat berbeda selama validasi skrip Plutus. Selain itu, Cardano tidak mendukung rangkaian kontrak pintar dalam satu transaksi, tidak seperti Ethereum. Mereka dapat dirangkai melalui serangkaian transaksi.

Cardano memproses operasi dalam suatu transaksi secara bersamaan. Satu transaksi Cardano mewakili aktivitas yang terjadi secara bersamaan, bukan secara seri. Ini berarti bahwa konsep tradisional pinjaman kilat di Ethereum, di mana dana dipinjam dan dibayar kembali dalam satu transaksi, tidak secara langsung diterjemahkan ke Cardano karena kendala ini.

Pinjaman kilat tidak dapat dibuat di Cardano karena diperlukan beberapa transaksi untuk aktivitas peminjaman dana, penggunaan dana, dan pembayaran kembali dana. Cardano tidak mengizinkan pengguna membuat pinjaman kilat berdasarkan desain.

Apakah mungkin untuk membuat pinjaman kilat di Cardano?

Logika skrip validator harus sebagai berikut: mengizinkan UTxO ini digunakan dengan syarat bahwa UTxO digunakan kembali ke alamat skrip yang sama. Namun, hal ini tidak masuk akal. UTxO tidak dapat dipinjam sementara dalam suatu transaksi. Pihak lawan tidak akan dapat menggunakan UTxO.

Kesimpulan
Dalam artikel tersebut, kita berbicara negatif tentang pinjaman kilat, karena sering digunakan untuk serangan. Dapat dikatakan bahwa pinjaman kilat adalah alat yang ampuh bagi para pedagang dengan keterampilan dan pengetahuan teknis yang diperlukan. Hal yang sama juga berlaku untuk Ethereum. Untuk beberapa kasus penggunaan, akan menguntungkan jika pengembang dapat merangkai kontrak pintar dalam satu transaksi.

Platform SC hanyalah alat dan dapat digunakan untuk membangun layanan keuangan yang bermanfaat, atau dieksploitasi oleh peretas. Tujuan dari seluruh industri adalah untuk menciptakan platform yang memungkinkan terciptanya layanan yang andal dan aman. Cardano secara desain aman, tetapi ada beberapa hal yang lebih sulit dan rumit untuk diterapkan dibandingkan dengan Ethereum. Ini selalu tentang menemukan keseimbangan yang tepat.