Cara Kerja Delegasi Sumber Daya TRON di Balik Layar: Penjelasan Teknis Lengkap
Memahami Model Sumber Daya Sebelum Berbicara Soal Delegasi
TRON tidak membebankan biaya gas seperti halnya Ethereum. Setiap akun memiliki dua kelompok sumber daya: Energy dan bandwidth. Energy digunakan saat menjalankan kontrak pintar, sedangkan bandwidth dikonsumsi oleh setiap transaksi, baik yang melibatkan kontrak maupun tidak. Ketika salah satu sumber daya habis, jaringan akan membakar TRX dari saldo akun untuk menutupi kekurangannya. Pembakaran inilah yang membuat transaksi menjadi mahal.
Sumber daya dapat diperoleh melalui dua cara. Pertama, dengan melakukan staking TRX: kunci sejumlah TRX dan jaringan akan mengkredit akun Anda dengan porsi proporsional dari kumpulan Energy atau bandwidth global, yang diperbarui setiap 24 jam. Kedua, dengan menerima delegasi: akun lain melakukan staking TRX lalu mengalihkan sumber daya yang dihasilkan ke alamat Anda. Akun Anda menggunakan sumber daya yang didelegasikan tersebut persis seperti jika Anda melakukan staking sendiri. Dari sudut pandang mesin virtual, tidak ada perbedaan di antara keduanya.
Inilah fondasi dari seluruh mekanisme yang ada. Delegasi bukan saluran pembayaran atau lapisan pembungkus. Ini adalah pengalihan langsung hak atas sumber daya di jaringan dari satu akun ke akun lain.
Apa yang Berubah dengan Stake 2.0 dalam Hal Delegasi
Model staking awal (Stake 1.0) mengharuskan Anda memilih saat melakukan staking apakah TRX akan menghasilkan Energy atau bandwidth, dan pencairan hanya bisa dilakukan sekaligus setelah masa kunci 3 hari. Delegasi sudah ada, namun masih sangat terbatas. Anda melakukan staking TRX, menghasilkan satu jenis sumber daya, lalu opsional mengarahkan sumber daya tersebut ke alamat lain.
Stake 2.0, yang mulai berlaku di jaringan utama pada pertengahan 2023, membawa perubahan signifikan. Berikut perubahan utama yang berkaitan dengan delegasi:
- Pembagian sumber daya secara proporsional: Satu posisi TRX yang di-staking dapat dibagi hasilnya dan didelegasikan ke beberapa alamat sekaligus. Anda tidak memindahkan TRX ke mana pun, melainkan mengarahkan hasil sumber daya yang dihasilkan.
- Pencairan bertahap: Anda dapat mencairkan sebagian saldo staking tanpa menyentuh sisa posisi yang masih aktif. Hal ini memungkinkan penyedia sumber daya mengelola likuiditas tanpa mengganggu delegasi yang sedang berjalan.
- Masa tunggu pencairan 14 hari: Setelah memanggil
unstake, TRX masuk ke antrean penarikan dan dikunci selama sekitar 14 hari sebelum Anda dapat memanggilwithdrawExpireUnfreezeuntuk mengambilnya kembali. Selama masa tunggu tersebut, delegasi yang bergantung pada TRX itu dibatalkan seketika, bukan setelah 14 hari. Delegasi berakhir saat Anda memulai proses unstake, bukan saat TRX diterima kembali. - Tidak ada lagi kunci saat berganti jenis sumber daya: Pada versi 1.0, beralih dari Energy ke bandwidth mengharuskan siklus unstake dan staking ulang secara penuh. Pada versi 2.0, Anda dapat mendelegasikan ulang hasil sumber daya dari posisi staking yang sama ke jenis sumber daya berbeda tanpa melakukan unstake, meskipun tetap memerlukan transaksi terpisah di jaringan.
Implikasi praktis bagi siapa pun yang menerima Energy yang didelegasikan: saldo sumber daya Anda bisa tiba-tiba nol di tengah hari jika delegator memulai proses unstake. Tidak ada masa tenggang bagi pihak penerima.
Mekanisme Teknis Transaksi Delegasi di Jaringan
Ketika delegator memanggil delegateResource, transaksi tersebut mencatat tiga hal: alamat delegator, alamat penerima, dan jumlah Energy (atau bandwidth) yang didelegasikan. Jaringan kemudian menyesuaikan batas sumber daya yang terlihat pada status akun penerima.
Secara internal, node TRON melacak sumber daya yang didelegasikan secara terpisah dari sumber daya milik sendiri. Jika Anda mengambil data akun melalui wallet/getaccount pada HTTP API, Anda akan melihat kolom seperti delegated_frozenV2_balance_for_energy dan acquired_delegated_frozenV2_balance_for_energy. Kolom pertama adalah yang sudah Anda kirimkan. Kolom kedua adalah yang Anda terima. Tidak ada TRX yang berpindah di kedua kasus tersebut. TRX yang sebenarnya tetap berada di saldo staking delegator.
Pemakaian sumber daya saat transaksi berlangsung seperti ini: mesin virtual memeriksa Energy yang tersedia di akun yang menjalankan transaksi (hasil staking sendiri ditambah delegasi yang diterima). Jika mencukupi, pengurangan dilakukan secara berurutan: delegasi yang diterima dikonsumsi lebih dulu, baru kemudian hasil staking sendiri. Jika sumber daya habis, TRX akan dibakar dari saldo bebas akun berdasarkan tarif jaringan yang berlaku saat itu. Tarif ini tidak tetap, melainkan dihitung secara dinamis berdasarkan total Energy di jaringan dan harga pembakaran yang ditetapkan oleh parameter jaringan.
Proses Pemulihan Energy Setelah Digunakan
Energy bukan kredit sekali pakai. Energy yang sudah digunakan akan pulih secara bertahap selama jendela waktu 24 jam. Jika akun Anda memiliki batas maksimum Energy sebesar 100.000 dan Anda menggunakan 65.000 untuk menjalankan kontrak, Energy Anda akan kembali penuh setelah 24 jam. Pada titik tengah, yaitu 12 jam, Anda akan memiliki sekitar 32.500 Energy yang tersedia kembali.
Pemulihan ini berlaku untuk Energy hasil staking sendiri maupun yang didelegasikan. Kecepatan pemulihan bergantung pada batas maksimum akun tersebut, bukan pada hitungan jam global tertentu. Dengan demikian, dua akun dengan batas Energy berbeda akan memiliki laju pemulihan absolut yang berbeda pula, meskipun keduanya terisi penuh dalam 24 jam.
Untuk operasi dengan frekuensi tinggi, siklus 24 jam ini menjadi batasan utama. Satu delegasi yang dirancang untuk satu kali pengiriman per hari tidak akan cukup untuk sepuluh kali pengiriman per hari, meskipun total Energy terlihat mencukupi di atas kertas. Anda perlu memperhitungkan ritme pemulihan, bukan hanya kapasitas totalnya.
Mencabut dan Mengalihkan Delegasi
Delegasi tidak bersifat permanen. Seorang delegator dapat memanggil unDelegateResource kapan saja untuk menarik kembali sumber daya. Efeknya langsung terasa: Energy yang tersedia di akun penerima berkurang sejumlah yang dicabut pada blok berikutnya. Tidak ada masa tunggu di sisi penerima dan tidak ada mekanisme kompensasi di tingkat protokol.
Mengalihkan delegasi, yaitu memindahkan hasil sumber daya yang sama ke penerima berbeda, membutuhkan dua transaksi: cabut dari penerima saat ini, lalu delegasikan ke yang baru. Ini adalah dua operasi terpisah di jaringan dan masing-masing mengonsumsi bandwidth. Pada Stake 2.0, proses ini dapat dilakukan lebih efisien dibanding sebelumnya, namun tetap tidak dapat dijadikan satu transaksi tunggal yang bersifat atomik.
Ada satu kasus khusus yang perlu diketahui: jika TRX yang di-staking oleh seorang delegator menghasilkan misalnya 200.000 Energy, dan mereka telah mendelegasikan 150.000 ke alamat A, mereka tetap bisa mendelegasikan sisa 50.000 ke alamat B tanpa menyentuh delegasi ke alamat A. Batasannya adalah total Energy yang didelegasikan tidak boleh melebihi total Energy yang dihasilkan. Upaya mendelegasikan melebihi kapasitas akan gagal di tingkat transaksi.
Implikasinya bagi Penyewaan Energy
Layanan sewa Energy seperti tronenergyrent.com beroperasi sepenuhnya dalam model delegasi ini. Ketika Anda menyewa Energy, penyedia layanan melakukan staking TRX, menghasilkan Energy, lalu memanggil delegateResource yang mengarah ke alamat Anda. Dari sudut pandang akun Anda, Anda menerima acquired_delegated_frozenV2_balance_for_energy persis seperti yang dijelaskan di atas. Anda tidak memegang TRX. Anda memegang alokasi sumber daya sementara.
Durasi sewa mencerminkan berapa lama penyedia mempertahankan delegasi tersebut. Sewa 1 hari dengan harga saat ini dikenakan biaya 8,19 TRX per 65.000 Energy (cukup untuk satu kali transfer USDT TRC-20 standar yang membutuhkan sekitar 65.000 Energy dan sekitar 345 bandwidth). Sewa 30 hari dikenakan biaya 175,50 TRX untuk blok Energy yang sama. Anda dapat mengecek biaya yang tepat sesuai volume transfer Anda menggunakan kalkulator yang tersedia.
Alasan sewa jangka pendek lebih mahal per harinya murni bersifat teknis: penyedia harus mengelola antrean unstake dan beban delegasi ulang untuk siklus yang lebih sering. Masa tunggu penarikan 14 hari berarti modal tetap terikat tanpa memandang seberapa singkat masa sewanya.
Delegasi Bandwidth Mengikuti Model yang Sama
Semua yang dijelaskan di atas berlaku sama untuk bandwidth, dengan satu perbedaan pada perilaku bawaannya. Setiap akun mendapatkan 600 bandwidth gratis per hari dari jaringan, terlepas dari staking. Alokasi gratis ini cukup untuk transfer TRX biasa, namun tidak akan mencukupi untuk porsi bandwidth pada transfer TRC-20 dengan frekuensi tinggi. Melakukan staking atau menerima delegasi bandwidth akan meningkatkan batas Anda di atas angka dasar 600 tersebut.
Ketika Anda mendelegasikan bandwidth ke sebuah akun, Anda menambah kapasitasnya di atas alokasi gratis yang sudah dimilikinya. Urutan konsumsinya adalah: bandwidth gratis lebih dulu, lalu bandwidth yang didelegasikan, kemudian bandwidth hasil staking sendiri, dan terakhir pembakaran TRX. Urutan ini penting jika Anda ingin menghitung secara tepat kapan pembakaran TRX akan mulai terjadi untuk akun tertentu.
Membaca Status Delegasi Melalui API
Jika Anda sedang membangun alat pemantau atau ingin memverifikasi status delegasi, berikut adalah pemanggilan API yang relevan:
wallet/getaccount: mengembalikan status akun secara lengkap, termasuk kolom sumber daya yang didelegasikan dan yang diterimawallet/getdelegatedresourcev2: mengembalikan catatan delegasi spesifik antara dua alamat, termasuk jumlah Energy yang tepat dan waktu berakhirnya kunci jika ada kunci yang ditetapkanwallet/getcanwithdrawunfreezeamount: memungkinkan delegator memeriksa berapa banyak dari unstake yang sedang antre sudah dapat ditarik
Endpoint getdelegatedresourcev2 sangat berguna untuk memverifikasi bahwa delegasi masih aktif dan ukurannya sudah benar sebelum menjalankan transaksi yang bergantung padanya. Jangan berasumsi delegasi masih berlaku hanya karena sudah diatur kemarin. Selalu konfirmasikan status di jaringan sebelum mengandalkannya.