Komposabilitas kontrak pintar
Pembaruan terakhir halaman: 13 September 2025
Pengantar singkat
Kontrak pintar bersifat publik di Ethereum dan dapat dianggap sebagai API terbuka. Anda tidak perlu menulis kontrak pintar Anda sendiri untuk menjadi pengembang dapp, Anda hanya perlu tahu cara berinteraksi dengannya. Misalnya, Anda dapat menggunakan kontrak pintar yang ada dari Uniswap (opens in a new tab), sebuah pertukaran terdesentralisasi, untuk menangani semua logika tukar token di aplikasi Anda – Anda tidak perlu memulai dari awal. Lihat beberapa kontrak v2 (opens in a new tab) dan v3 (opens in a new tab) mereka.
Apa itu komposabilitas?
Komposabilitas adalah menggabungkan komponen-komponen yang berbeda untuk membuat sistem atau keluaran baru. Dalam pengembangan perangkat lunak, komposabilitas berarti pengembang dapat menggunakan kembali komponen perangkat lunak yang ada untuk membangun aplikasi baru. Cara yang baik untuk memahami komposabilitas adalah dengan menganggap elemen yang dapat dikomposisikan sebagai balok Lego. Setiap Lego dapat digabungkan dengan yang lain, memungkinkan Anda untuk membangun struktur yang kompleks dengan menggabungkan Lego yang berbeda.
Di Ethereum, setiap kontrak pintar adalah semacam Lego—Anda dapat menggunakan kontrak pintar dari proyek lain sebagai blok bangunan untuk proyek Anda. Ini berarti Anda tidak perlu menghabiskan waktu untuk menemukan kembali roda atau membangun dari awal.
Bagaimana cara kerja komposabilitas?
Kontrak pintar Ethereum seperti API publik, sehingga siapa pun dapat berinteraksi dengan kontrak atau mengintegrasikannya ke dalam dapps untuk fungsionalitas tambahan. Komposabilitas kontrak pintar umumnya bekerja berdasarkan tiga prinsip: modularitas, otonomi, dan kemampuan untuk ditemukan (discoverability):
1. Modularitas: Ini adalah kemampuan komponen individu untuk melakukan tugas tertentu. Di Ethereum, setiap kontrak pintar memiliki kasus penggunaan tertentu (seperti yang ditunjukkan dalam contoh Uniswap).
2. Otonomi: Komponen yang dapat dikomposisikan harus dapat beroperasi secara independen. Setiap kontrak pintar di Ethereum mengeksekusi dirinya sendiri dan dapat berfungsi tanpa bergantung pada bagian lain dari sistem.
3. Kemampuan untuk ditemukan (Discoverability): Pengembang tidak dapat memanggil kontrak eksternal atau mengintegrasikan pustaka perangkat lunak ke dalam aplikasi jika kontrak tersebut tidak tersedia untuk publik. Berdasarkan desainnya, kontrak pintar bersifat sumber terbuka; siapa pun dapat memanggil kontrak pintar atau melakukan fork pada basis kode.
Manfaat komposabilitas
Siklus pengembangan yang lebih singkat
Komposabilitas mengurangi pekerjaan yang harus dilakukan pengembang saat membuat dapps. Seperti yang dikatakan Naval Ravikant: (opens in a new tab) "Sumber terbuka berarti setiap masalah hanya perlu diselesaikan sekali."
Jika ada kontrak pintar yang memecahkan satu masalah, pengembang lain dapat menggunakannya kembali, sehingga mereka tidak perlu memecahkan masalah yang sama. Dengan cara ini, pengembang dapat mengambil pustaka perangkat lunak yang ada dan menambahkan fungsionalitas ekstra untuk membuat dapps baru.
Inovasi yang lebih besar
Komposabilitas mendorong inovasi dan eksperimen karena pengembang bebas untuk menggunakan kembali, memodifikasi, menduplikasi, atau mengintegrasikan kode sumber terbuka untuk menciptakan hasil yang diinginkan. Akibatnya, tim pengembangan menghabiskan lebih sedikit waktu pada fungsionalitas dasar dan dapat mengalokasikan lebih banyak waktu untuk bereksperimen dengan fitur-fitur baru.
Pengalaman pengguna yang lebih baik
Interoperabilitas antara komponen ekosistem Ethereum meningkatkan pengalaman pengguna. Pengguna dapat mengakses fungsionalitas yang lebih besar ketika dapps mengintegrasikan kontrak pintar eksternal dibandingkan dalam ekosistem yang terfragmentasi di mana aplikasi tidak dapat berkomunikasi.
Kami akan menggunakan contoh dari perdagangan arbitrase untuk mengilustrasikan manfaat interoperabilitas:
Jika sebuah token diperdagangkan lebih tinggi di exchange A daripada exchange B, Anda dapat memanfaatkan perbedaan harga tersebut untuk mendapatkan keuntungan. Namun, Anda hanya dapat melakukannya jika Anda memiliki modal yang cukup untuk mendanai transaksi (yaitu, membeli token dari exchange B dan menjualnya di exchange A).
Dalam skenario di mana Anda tidak memiliki dana yang cukup untuk menutupi perdagangan, pinjaman kilat (flash loan) mungkin ideal. Pinjaman kilat sangat teknis, tetapi ide dasarnya adalah Anda dapat meminjam aset (tanpa agunan) dan mengembalikannya dalam satu transaksi.
Kembali ke contoh awal kita, seorang pedagang arbitrase dapat mengambil pinjaman kilat dalam jumlah besar, membeli token dari exchange B, menjualnya di exchange A, membayar kembali modal + bunga, dan menyimpan keuntungannya, dalam transaksi yang sama. Logika kompleks ini membutuhkan penggabungan panggilan ke beberapa kontrak, yang tidak akan mungkin terjadi jika kontrak pintar tidak memiliki interoperabilitas.
Contoh komposabilitas di Ethereum
Tukar token
Jika Anda membuat dapp yang mengharuskan transaksi dibayar dalam ETH, Anda dapat mengizinkan pengguna untuk membayar dalam token ERC-20 lainnya dengan mengintegrasikan logika tukar token. Kode tersebut akan secara otomatis mengonversi token pengguna menjadi ETH sebelum kontrak mengeksekusi fungsi yang dipanggil.
Tata kelola
Membangun sistem tata kelola khusus untuk DAO bisa mahal dan memakan waktu. Sebagai gantinya, Anda dapat menggunakan perangkat tata kelola sumber terbuka, seperti Aragon Client (opens in a new tab), untuk memulai DAO Anda guna membuat kerangka kerja tata kelola dengan cepat.
Manajemen identitas
Daripada membangun sistem autentikasi khusus atau mengandalkan penyedia terpusat, Anda dapat mengintegrasikan alat identitas terdesentralisasi (DID) untuk mengelola autentikasi bagi pengguna. Contohnya adalah SpruceID (opens in a new tab), sebuah perangkat sumber terbuka yang menawarkan fungsionalitas "Masuk dengan Ethereum" yang memungkinkan pengguna mengautentikasi identitas dengan dompet Ethereum.
Tutorial terkait
- Mulai pengembangan frontend dapp Anda dengan create-eth-app – Gambaran umum tentang cara menggunakan create-eth-app untuk membuat aplikasi dengan kontrak pintar populer yang siap pakai.
Bacaan lebih lanjut
Tahu tentang sumber daya komunitas yang membantu Anda? Edit halaman ini dan tambahkan!