Dalam keadaan industri Web3 saat ini, produk yang berkaitan dengan Keuangan Desentralisasi mendominasi pasar. Di antaranya, AMM (Automated Market Maker) sebagai salah satu komponen kunci, merupakan pendorong kuat perubahan di bidang keuangan Web3. Artikel ini akan memperkenalkan beberapa implementasi AMM penting dalam ekosistem Solana, dengan harapan dapat memberikan beberapa bantuan kepada LP (Penyedia Likuiditas) tentang bagaimana memilih strategi investasi mereka.
CPMM
CPMM (Constant ProductMarket Maker) sebagai implementasi AMM yang paling dasar, telah diimplementasikan dalam banyak produk. Di sini, kita menggunakan AMM berbasis produk konstan yang diluncurkan oleh Raydium sebagai contoh. Produk konstan berarti bahwa pasokan dua jenis token dalam kolam memiliki produk tetap: X * Y = k.
Bagi Penyedia Likuiditas, ketika seseorang menambahkan likuiditas (menambahkan aset) ke dalam kolam, CPMM secara otomatis akan membuat akun terkait untuk alamat dompet dan mengeluarkan LP Token (setiap pasangan token memiliki LP Token Mint masing-masing), LP Token ini digunakan untuk membuktikan bahwa alamat dompet tersebut memiliki bagian dari kolam tertentu, dan akan dihancurkan saat Penyedia Likuiditas menarik Token yang sesuai.
Program on-chain CPMM dikembangkan menggunakan Anchor, kode program dapat ditemukan di . Mari kita konfirmasi secara singkat bagaimana ia mewujudkan produk tetap.
Pertama, pengguna akan memicu perintah terkait swap saat menggunakan Raydium untuk menukar token di CPMM.
Sebagai contoh (hanya untuk tujuan ilustrasi, artikel ini tidak bertanggung jawab atas token apapun): ketika pengguna ingin menggunakan USDC untuk menukarkan TRUMP, mereka dapat melakukan pertukaran melalui kolam TRUMP-USDC.
Misalnya, jika kita melihat transaksi ini, demi kesederhanaan, mari kita abaikan instruksi lain dalam transaksi dan hanya melihat bagian Raydium. Temukan Raydium CPMM: swapBaseInput:
Dalam Input Accounts, kita dapat melihat token input adalah USDC, dan token output adalah TRUMP. Dalam AMM ekosistem Solana, LP Pair dapat dengan mudah diwakili melalui Token Account, tanpa perlu membuat dan menerapkan kontrak program baru (seperti kontrak pabrik yang umum digunakan di Ethereum). Saat transaksi terjadi, secara langsung berinteraksi dengan Program CPMM Raydium, program Solana akan memodifikasi status Token Account yang sesuai dengan mengirimkan alamat pool, alamat token, dan lainnya untuk melakukan operasi swap.
Misalnya instruksi swapBaseInput yang disebutkan di atas, kode dapat ditemukan di sini. Setelah serangkaian pemeriksaan awal, jumlah token target yang dapat ditukar dihitung melalui ConstantProductCurve.swap_base_input_without_fees:
Formula yang digunakan adalah:
Setelah jumlah masing-masing TokenX dan TokenY berubah, produknya harus tetap tidak berubah. Sisi kiri rumus adalah produk setelah perubahan, sisi kanan adalah produk sebelum perubahan.
Setelah melakukan transformasi matematis pada rumus di atas, kita dapat memperoleh rumus transformasi Δy (yaitu jumlah token y yang dapat kita tukar):
Jadi, dalam kode delta_y = (delta_x * y) / (x + delta_x) bagian. Perhatikan bahwa perhitungan di sini tidak termasuk biaya transaksi, yang sudah dipotong dalam logika sebelumnya dari swap_base_input.
CLMM
CLMM (Pembuat Pasar Likuiditas Terpusat) adalah AMM yang diluncurkan oleh Raydium, mirip dengan Uniswap V3, setiap pasangan token memiliki beberapa tingkat biaya, yang memungkinkan untuk membuat kolam yang sesuai dengan tingkat tersebut.
Karena implementasi CLMM merujuk pada Uniswap V3, banyak konsep dan cara implementasi yang bisa diacu dari implementasi Uniswap saat mempelajarinya. Ini juga mewarisi konsep Uniswap seperti tick, banyak tingkat biaya, likuiditas terpusat, dan lain-lain. Konten lebih lanjut dapat ditemukan di kursus pengembangan DEX yang diluncurkan oleh ZAN: Praktik Pengembangan DEX - Analisis Kode Uniswap - Cara Kerja Uniswap - ZAN
Namun perlu dicatat, mirip dengan CPMM, karena karakteristik jaringan Solana, Raydium CLMM tidak perlu meng-deploy kontrak terpisah untuk setiap kolam, sehingga tidak ada konsep kontrak pabrik. Ini berbeda dengan Uniswap.
CLMM memungkinkan penyedia likuiditas untuk memilih kisaran harga saat menyuntikkan dana, dan dana akan hanya didistribusikan dalam kisaran yang dipilih.
Untuk kolam likuiditas terpusat, token masing-masing ada di kedua sisi harga saat ini, rentang harga yang dipilih pada gambar di atas mencakup harga saat ini, sehingga dana akan dialokasikan masing-masing untuk kedua jenis token dalam kolam.
Kita juga bisa hanya menyuntikkan jenis token tertentu untuk menyediakan apa yang disebut likuiditas sepihak (seperti yang digambarkan di bawah). Ini mirip dengan order limit dalam model keuangan tradisional, di mana dana LP hanya akan digunakan ketika harga token mencapai rentang tertentu, namun model ini juga memiliki lebih banyak titik risiko yang perlu diperhatikan.
Secara umum, untuk kolam dengan fluktuasi harga kecil, LP cenderung memilih rentang yang lebih kecil; sebaliknya, untuk kolam yang memiliki fluktuasi harga yang sangat besar, mereka cenderung memilih rentang yang lebih besar. Tujuannya adalah untuk meminimalkan kemungkinan harga saat ini keluar dari rentang harga yang dipilih, sehingga menghindari terlalu banyak kerugian impermanent.
Perlu dicatat bahwa likuiditas terpusat meskipun dapat membuat tingkat pemanfaatan dana LP lebih tinggi, namun juga meningkatkan tuntutan kesadaran finansial LP, yang perlu lebih aktif dalam mengelola likuiditas mereka. Jika LP tidak dapat menghadapinya dengan baik, maka fluktuasi yang sering terjadi di blockchain akan dengan mudah menyebabkan LP mengalami kerugian tidak terduga yang serius.
DLMM
DLMM (Dynamic Liquidity Market Maker) adalah produk AMM yang diluncurkan oleh Meteora, yang juga merupakan salah satu dari Uniswap V3, dan sangat mirip dengan CLMM yang disebutkan di atas. DLMM juga memungkinkan LP untuk mengkonsentrasikan dana mereka dalam kisaran tertentu di sekitar harga saat ini. Namun, DLMM memiliki beberapa perbedaan dalam implementasinya dan menawarkan beberapa fitur khas.
Konsep Bin disediakan dalam DLMM, dan pool akan dimulai dari harga dasar dan ada sebagai langkah Bin setiap bit pendek lainnya. Jika perdagangan berlangsung di dalam tempat sampah yang sama, maka pedagang akan menikmati selip nol. Hal ini dapat sangat meningkatkan volume transaksi dan tingkat keberhasilan transaksi, dan secara teoritis LP dapat menuai lebih banyak biaya transaksi.
Sama seperti CLMM, token dalam kolam juga tersebar di kedua sisi harga saat ini, di mana satu token hanya perlu menyediakan likuiditas satu sisi. Namun, berdasarkan konsep Bin, Bin yang sedang aktif saat ini (yang menunjukkan harga pertukaran saat ini) memiliki dua jenis token. Yaitu:
Bin yang diaktifkan saat ini: Terdapat dua jenis token, pertukaran token dalam Bin saat ini akan dilakukan dengan harga tetap dan 0 slippage;
Bin Lain: Tersebar di kedua sisi Bin yang sedang aktif, masing-masing hanya ada satu token.
Saat jumlah token di Bin yang sedang diaktifkan berubah, jika jumlah token salah satu pihak berkurang menjadi 0, maka DLMM akan menetapkan Bin yang sedang diaktifkan saat ini, berdasarkan kondisi aktual di dalam kolam, menjadi Bin berikutnya di sebelah kiri atau kanan. Dengan cara ini, harga dalam kolam akan berubah.
Saat LP menyediakan likuiditas, DLMM menawarkan 3 jenis strategi, yaitu Spot, Curve, dan Bid Ask.
Di antara semua, Spot adalah yang paling umum, pada dasarnya semua kolam likuiditas cukup cocok, bisa dianggap sebagai strategi likuiditas yang paling sederhana.
Curve lebih cocok untuk kolam yang memiliki perubahan harga sangat kecil, seperti pasangan stablecoin. Fluktuasi harga di kolam ini sangat kecil, seperti yang diungkapkan oleh bentuknya, dengan mengkonsentrasikan dana LP dalam rentang ini, dapat memaksimalkan pengambilan biaya transaksi.
Bid Ask lebih cocok untuk kolam yang memiliki fluktuasi harga yang sangat besar. Orang-orang selalu cenderung melakukan lebih banyak perdagangan arbitrase di kolam ini, dan harga mungkin sulit untuk terfokus dalam kisaran yang kecil. Strategi ini biasanya membutuhkan LP untuk sering menyesuaikan posisi mereka, untuk menghindari harga keluar dari rentang dana yang telah mereka tetapkan. Karena melibatkan penilaian terhadap pasar, ini biasanya tidak mudah.
ringkasan
AMM sebagai bagian penting dari bidang keuangan Web3, melalui mekanisme dan inovasi uniknya, mendorong penyebaran dan perkembangan keuangan desentralisasi. Dengan kemajuan teknologi yang terus menerus dan penyempurnaan ekosistem, AMM diharapkan dapat memainkan peran yang lebih besar di masa depan, lebih lanjut mengubah lanskap keuangan tradisional.
Konten ini hanya untuk referensi, bukan ajakan atau tawaran. Tidak ada nasihat investasi, pajak, atau hukum yang diberikan. Lihat Penafian untuk pengungkapan risiko lebih lanjut.
Penelitian AMM ekosistem Solana: Kode dasar di balik likuiditas tinggi
Dalam keadaan industri Web3 saat ini, produk yang berkaitan dengan Keuangan Desentralisasi mendominasi pasar. Di antaranya, AMM (Automated Market Maker) sebagai salah satu komponen kunci, merupakan pendorong kuat perubahan di bidang keuangan Web3. Artikel ini akan memperkenalkan beberapa implementasi AMM penting dalam ekosistem Solana, dengan harapan dapat memberikan beberapa bantuan kepada LP (Penyedia Likuiditas) tentang bagaimana memilih strategi investasi mereka.
CPMM
CPMM (Constant Product Market Maker) sebagai implementasi AMM yang paling dasar, telah diimplementasikan dalam banyak produk. Di sini, kita menggunakan AMM berbasis produk konstan yang diluncurkan oleh Raydium sebagai contoh. Produk konstan berarti bahwa pasokan dua jenis token dalam kolam memiliki produk tetap: X * Y = k.
Bagi Penyedia Likuiditas, ketika seseorang menambahkan likuiditas (menambahkan aset) ke dalam kolam, CPMM secara otomatis akan membuat akun terkait untuk alamat dompet dan mengeluarkan LP Token (setiap pasangan token memiliki LP Token Mint masing-masing), LP Token ini digunakan untuk membuktikan bahwa alamat dompet tersebut memiliki bagian dari kolam tertentu, dan akan dihancurkan saat Penyedia Likuiditas menarik Token yang sesuai.
Program on-chain CPMM dikembangkan menggunakan Anchor, kode program dapat ditemukan di . Mari kita konfirmasi secara singkat bagaimana ia mewujudkan produk tetap.
Pertama, pengguna akan memicu perintah terkait swap saat menggunakan Raydium untuk menukar token di CPMM.
Sebagai contoh (hanya untuk tujuan ilustrasi, artikel ini tidak bertanggung jawab atas token apapun): ketika pengguna ingin menggunakan USDC untuk menukarkan TRUMP, mereka dapat melakukan pertukaran melalui kolam TRUMP-USDC.
| | | | | --- | --- | --- | | Kolam | TRUMP | USDC | | 7XzVsjqTebULfkUofTDH5gDdZDmxacPmPuTfHa1n9kuh | 6p6xgHyF7AeE6TZkSmFsko444wqoP15icUSqi2jfGiPN | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v |
Misalnya, jika kita melihat transaksi ini, demi kesederhanaan, mari kita abaikan instruksi lain dalam transaksi dan hanya melihat bagian Raydium. Temukan Raydium CPMM: swapBaseInput:
Dalam Input Accounts, kita dapat melihat token input adalah USDC, dan token output adalah TRUMP. Dalam AMM ekosistem Solana, LP Pair dapat dengan mudah diwakili melalui Token Account, tanpa perlu membuat dan menerapkan kontrak program baru (seperti kontrak pabrik yang umum digunakan di Ethereum). Saat transaksi terjadi, secara langsung berinteraksi dengan Program CPMM Raydium, program Solana akan memodifikasi status Token Account yang sesuai dengan mengirimkan alamat pool, alamat token, dan lainnya untuk melakukan operasi swap.
Misalnya instruksi swapBaseInput yang disebutkan di atas, kode dapat ditemukan di sini. Setelah serangkaian pemeriksaan awal, jumlah token target yang dapat ditukar dihitung melalui ConstantProductCurve.swap_base_input_without_fees:
Formula yang digunakan adalah:
Setelah jumlah masing-masing TokenX dan TokenY berubah, produknya harus tetap tidak berubah. Sisi kiri rumus adalah produk setelah perubahan, sisi kanan adalah produk sebelum perubahan.
Setelah melakukan transformasi matematis pada rumus di atas, kita dapat memperoleh rumus transformasi Δy (yaitu jumlah token y yang dapat kita tukar):
Jadi, dalam kode delta_y = (delta_x * y) / (x + delta_x) bagian. Perhatikan bahwa perhitungan di sini tidak termasuk biaya transaksi, yang sudah dipotong dalam logika sebelumnya dari swap_base_input.
CLMM
CLMM (Pembuat Pasar Likuiditas Terpusat) adalah AMM yang diluncurkan oleh Raydium, mirip dengan Uniswap V3, setiap pasangan token memiliki beberapa tingkat biaya, yang memungkinkan untuk membuat kolam yang sesuai dengan tingkat tersebut.
Karena implementasi CLMM merujuk pada Uniswap V3, banyak konsep dan cara implementasi yang bisa diacu dari implementasi Uniswap saat mempelajarinya. Ini juga mewarisi konsep Uniswap seperti tick, banyak tingkat biaya, likuiditas terpusat, dan lain-lain. Konten lebih lanjut dapat ditemukan di kursus pengembangan DEX yang diluncurkan oleh ZAN: Praktik Pengembangan DEX - Analisis Kode Uniswap - Cara Kerja Uniswap - ZAN
Namun perlu dicatat, mirip dengan CPMM, karena karakteristik jaringan Solana, Raydium CLMM tidak perlu meng-deploy kontrak terpisah untuk setiap kolam, sehingga tidak ada konsep kontrak pabrik. Ini berbeda dengan Uniswap.
CLMM memungkinkan penyedia likuiditas untuk memilih kisaran harga saat menyuntikkan dana, dan dana akan hanya didistribusikan dalam kisaran yang dipilih.
Untuk kolam likuiditas terpusat, token masing-masing ada di kedua sisi harga saat ini, rentang harga yang dipilih pada gambar di atas mencakup harga saat ini, sehingga dana akan dialokasikan masing-masing untuk kedua jenis token dalam kolam.
Kita juga bisa hanya menyuntikkan jenis token tertentu untuk menyediakan apa yang disebut likuiditas sepihak (seperti yang digambarkan di bawah). Ini mirip dengan order limit dalam model keuangan tradisional, di mana dana LP hanya akan digunakan ketika harga token mencapai rentang tertentu, namun model ini juga memiliki lebih banyak titik risiko yang perlu diperhatikan.
Secara umum, untuk kolam dengan fluktuasi harga kecil, LP cenderung memilih rentang yang lebih kecil; sebaliknya, untuk kolam yang memiliki fluktuasi harga yang sangat besar, mereka cenderung memilih rentang yang lebih besar. Tujuannya adalah untuk meminimalkan kemungkinan harga saat ini keluar dari rentang harga yang dipilih, sehingga menghindari terlalu banyak kerugian impermanent.
Perlu dicatat bahwa likuiditas terpusat meskipun dapat membuat tingkat pemanfaatan dana LP lebih tinggi, namun juga meningkatkan tuntutan kesadaran finansial LP, yang perlu lebih aktif dalam mengelola likuiditas mereka. Jika LP tidak dapat menghadapinya dengan baik, maka fluktuasi yang sering terjadi di blockchain akan dengan mudah menyebabkan LP mengalami kerugian tidak terduga yang serius.
DLMM
DLMM (Dynamic Liquidity Market Maker) adalah produk AMM yang diluncurkan oleh Meteora, yang juga merupakan salah satu dari Uniswap V3, dan sangat mirip dengan CLMM yang disebutkan di atas. DLMM juga memungkinkan LP untuk mengkonsentrasikan dana mereka dalam kisaran tertentu di sekitar harga saat ini. Namun, DLMM memiliki beberapa perbedaan dalam implementasinya dan menawarkan beberapa fitur khas.
Konsep Bin disediakan dalam DLMM, dan pool akan dimulai dari harga dasar dan ada sebagai langkah Bin setiap bit pendek lainnya. Jika perdagangan berlangsung di dalam tempat sampah yang sama, maka pedagang akan menikmati selip nol. Hal ini dapat sangat meningkatkan volume transaksi dan tingkat keberhasilan transaksi, dan secara teoritis LP dapat menuai lebih banyak biaya transaksi.
Sama seperti CLMM, token dalam kolam juga tersebar di kedua sisi harga saat ini, di mana satu token hanya perlu menyediakan likuiditas satu sisi. Namun, berdasarkan konsep Bin, Bin yang sedang aktif saat ini (yang menunjukkan harga pertukaran saat ini) memiliki dua jenis token. Yaitu:
Saat jumlah token di Bin yang sedang diaktifkan berubah, jika jumlah token salah satu pihak berkurang menjadi 0, maka DLMM akan menetapkan Bin yang sedang diaktifkan saat ini, berdasarkan kondisi aktual di dalam kolam, menjadi Bin berikutnya di sebelah kiri atau kanan. Dengan cara ini, harga dalam kolam akan berubah.
Saat LP menyediakan likuiditas, DLMM menawarkan 3 jenis strategi, yaitu Spot, Curve, dan Bid Ask.
ringkasan
AMM sebagai bagian penting dari bidang keuangan Web3, melalui mekanisme dan inovasi uniknya, mendorong penyebaran dan perkembangan keuangan desentralisasi. Dengan kemajuan teknologi yang terus menerus dan penyempurnaan ekosistem, AMM diharapkan dapat memainkan peran yang lebih besar di masa depan, lebih lanjut mengubah lanskap keuangan tradisional.