Daftar isi

  • Perkenalan

  • Apa standar ERC-20?

  • Fakta Singkat Token Ethereum

  • Bagaimana token ERC-20 dihasilkan?

  • Apa fungsi yang dimiliki ERC-20?

    • koin stabil

    • Token Keamanan

    • token utilitas

  • Bisakah saya berpartisipasi dalam penambangan token ERC-20?

  • Kelebihan dan Kekurangan Token ERC-20

    • Keuntungan Token ERC-20

    • Kekurangan Token ERC-20

  • Apa perbedaan antara ERC-20, ERC-1155, ERC-223 dan ERC-721?

  • Meringkaskan


Perkenalan

Ethereum didirikan oleh Vitalik Buterin pada tahun 2014 dan diposisikan sebagai platform sumber terbuka untuk meluncurkan aplikasi terdesentralisasi (DApps). Motivasi Buterin untuk menciptakan blockchain baru ini sebagian besar berasal dari kurangnya fleksibilitas dalam protokol Bitcoin.

Sejak awal, blockchain Ethereum telah menarik banyak pengembang, bisnis, dan pengusaha, sehingga melahirkan industri kontrak pintar yang diluncurkan pengguna dan aplikasi terdistribusi.

Pada artikel ini, kita akan melihat standar ERC-20, yang merupakan kerangka kerja penting untuk membuat token. Meskipun hanya diterapkan pada jaringan Ethereum, ini adalah inspirasi untuk standar blockchain lainnya seperti BEP-2 dari Binance Chain.


Apa standar ERC-20?

Di Ethereum, nama lengkap ERC adalah Ethereum Request for Comments, yaitu permintaan komentar Ethereum. Dokumen teknis ini menguraikan standar pemrograman Ethereum. Hal ini berbeda dengan Ethereum Improvement Proposal (EIP), yang mirip dengan BIP Bitcoin dan merupakan proposal untuk perbaikan pada protokol itu sendiri. Tujuan ERC adalah untuk membangun protokol yang memfasilitasi interaksi antara aplikasi dan kontrak.

Dikembangkan dan ditulis pada tahun 2015 oleh Vitalik Buterin dan Fabian Vogelsteller, ERC-20 mengusulkan format lain yang relatif sederhana untuk token berbasis Ethereum. Selama garis besarnya diikuti, pengembang tidak perlu mengubah arah dan dapat langsung mengembangkan apa yang terjadi di seluruh industri.

Ketika token ERC-20 baru dibuat, token tersebut secara otomatis berinteraksi dengan layanan dan perangkat lunak yang mendukung standar ERC-20 (dompet perangkat lunak, dompet perangkat keras, platform perdagangan, dll.).

Penting untuk dicatat bahwa standar ERC-20 telah berkembang menjadi EIP (khususnya EIP-20). Saat ini, beberapa tahun telah berlalu sejak proposal awal beredar luas, namun bahkan setelah beberapa tahun berlalu, nama "ERC-20" tetap ada.


Fakta Singkat Token Ethereum

Tidak seperti ETH (mata uang kripto asli Ethereum), token ERC-20 tidak disimpan ke dalam akun, namun hanya ada di dalam kontrak, seperti database independen. Ini menentukan aturan untuk token (yaitu nama, simbol, pembagian) dan menyimpan daftar alamat Ethereum yang memetakan saldo pengguna.

Untuk mentransfer token, pengguna harus mengirimkan transaksi ke kontrak pintar, meminta kontrak untuk mengalokasikan sebagian saldo di tempat lain. Misalnya, jika Alice ingin mengirim 5.000 Token Binance Academy ke Bob, dia akan memanggil fungsi dalam kontrak pintar yang sesuai untuk menjalankan instruksi.


Users interacting with a smart contract


Panggilannya mencakup transaksi Ethereum yang tampaknya biasa, yang membayar 0 ETH ke kontrak token. Panggilan ini termasuk di antara bidang transaksi lainnya dan menentukan niat Alice - dalam hal ini, dia ingin mentransfer token ke Bob.

Bahkan tanpa mengirimkan eter, dia harus membayar biaya tertentu agar transaksi ditambahkan ke blok. Jika Anda tidak memiliki ETH, Anda harus melakukan deposit terlebih dahulu sejumlah ETH sebelum mentransfer token Anda.

Berikut contoh nyata di Etherscan: seseorang memanggil kontrak BUSD. Anda akan melihat bahwa token telah ditransfer dan biaya telah dibayarkan, meskipun bidang nilai menunjukkan bahwa 0 ETH telah dikirim.

Selanjutnya, kami meningkatkan kecepatan dan melihat lebih dekat struktur kontrak ERC-20 pada umumnya.


Bagaimana token ERC-20 dihasilkan?


Illustration of an ERC-20 token being created


Menurut standar ERC-20, kontrak Anda harus menetapkan enam fungsi wajib: totalSupply, balanceOf, transfer, transferFrom, menyetujui, dan penyisihan. Selain itu, fungsi opsional seperti nama, simbol, dan desimal dapat ditentukan. Anda dapat memahami fungsi fungsinya berdasarkan namanya. Jangan khawatir jika Anda belum memahaminya. Kami akan menganalisisnya satu per satu di bawah ini.

Berikut ini adalah fungsi yang disajikan melalui bahasa Soliditas khusus Ethereum.


pasokan total

fungsi totalSupply() tampilan publik kembali (uint256)

Setelah pengguna memanggil fungsi di atas, total pasokan token yang dimiliki kontrak akan dikembalikan.


keseimbangan

fungsi balanceOf(address _owner) tampilan publik kembali (saldo uint256)

Tidak seperti totalSupply, balanceOf menggunakan alamat sebagai parameter. Setelah panggilan, sistem mengembalikan token yang menyimpan saldo alamat tersebut. Ingat, akun di jaringan Ethereum bersifat publik dan transparan. Anda dapat memeriksa saldo pengguna mana pun selama Anda mengetahui alamatnya.


transfer

transfer fungsi (alamat _ke, uint256 _nilai) pengembalian publik (bool sukses)

Fungsi transfer mendukung pengguna untuk mentransfer token satu sama lain. Anda perlu memberikan alamat penerima token dan jumlah transfer.

Saat dipanggil, transfer akan memicu suatu peristiwa (dalam kasus ini peristiwa "transfer") yang fungsi dasarnya adalah memberi tahu blockchain agar memuat referensi ke fungsi ini.


transferDari

fungsi transferFrom(alamat _dari, alamat _ke, uint256 _nilai) pengembalian publik (bool sukses)

Fungsi transferFrom adalah alternatif yang mudah untuk fungsi transfer, yang secara efektif meningkatkan kemampuan program dalam aplikasi yang terdesentralisasi. Mirip dengan fungsi transfer, ini digunakan untuk memindahkan token, namun token ini belum tentu milik pengguna yang memanggil kontrak.

Dengan kata lain, Anda dapat memberi wewenang kepada orang lain atau kontrak lain untuk memindahkan dana atas nama Anda. Misalnya, jika Anda tidak ingin membayar layanan berlangganan secara manual setiap hari/mingguan/bulanan, Anda dapat membiarkan program melakukan pekerjaan untuk Anda.

Peristiwa yang dipicu oleh fungsi ini sama dengan transfer.


menyetujui

fungsi menyetujui (alamat _pembelanja, uint256 _nilai) pengembalian publik (bool sukses)

Dari sudut pandang pemrograman, persetujuan adalah fungsi lain yang sangat berguna yang membatasi jumlah token yang dapat ditarik oleh kontrak pintar dari saldo. Tanpa hal ini, kontrak yang sedang berjalan mungkin menjadi tidak sah (atau dieksploitasi) dan semua dana berisiko dicuri.

Sekali lagi, ambil model berlangganan sebagai contoh. Katakanlah Anda memiliki token Binance Academy dalam jumlah besar dan ingin mengatur pembayaran mingguan berulang untuk streaming DApp Anda. Saya terlalu sibuk membaca artikel Binance Academy untuk menghabiskan waktu membuat perdagangan secara manual setiap minggunya.

Saldo besar token Binance Academy yang disimpan jauh melebihi biaya yang diperlukan untuk membayar langganan. Untuk mencegah DApp membayar semua aset, Anda dapat menggunakan persetujuan untuk menetapkan batas. Dengan asumsi biaya berlangganan Anda adalah 1 token Binance Academy per minggu, langganan Anda akan dibayar secara otomatis selama 5 bulan jika batas persetujuan adalah 20 token.

Jika programnya bermasalah dan DApp mencoba menarik semua dana, Anda hanya akan kehilangan hingga 20 token. Meskipun kehilangan token Anda mengecewakan, hasilnya jauh lebih baik daripada kehilangan seluruh aset Anda.

Setelah memanggil fungsi ini, persetujuan akan memicu peristiwa persetujuan. Seperti fungsi transfer, fungsi ini akan menulis data ke blockchain.


uang saku

tunjangan fungsi (alamat _pemilik, alamat _pembelanja) pengembalian tampilan publik (sisa uint256)

tunjangan dapat digunakan bersamaan dengan menyetujui. Jika hak pengelolaan token diberikan pada kontrak, Anda dapat memeriksa saldo token yang dapat ditarik melalui kontrak tersebut. Misalnya, dengan asumsi bahwa layanan berlangganan menggunakan 12 dari 20 token yang disetujui, memanggil fungsi izinkan akan menghasilkan total 8 token.


Fungsi opsional lainnya

Semua yang dibahas di atas adalah fungsi wajib. Di sisi lain, nama, simbol, dan desimal merupakan fungsi opsional, namun dapat membuat ERC-20 lebih lengkap. Fungsi-fungsi ini masing-masing mendukung penambahan nama yang dapat dibaca manusia, mengatur simbol (yaitu ETH, BTC, BNB) dan menentukan jumlah desimal token dapat dibagi. Misalnya, token yang digunakan sebagai mata uang lebih mudah dibagi sehingga lebih bermanfaat dibandingkan token yang digunakan untuk mewakili kepemilikan properti.


Lihat contoh ini di GitHub untuk melihat tampilan elemen-elemen ini dalam kontrak sebenarnya.


Apa fungsi yang dimiliki ERC-20?


Illustration of various uses of ERC-20 tokens


Meringkas semua fungsi di atas, kami mendapatkan kontrak ERC-20. Kami dapat menanyakan total pasokan, melihat saldo, mentransfer dana, dan mengotorisasi DApps lain untuk mengelola token atas nama kami.

Fleksibilitas token ERC-20 merupakan keuntungan besar. Perjanjian yang dibuat tidak membatasi pengembangan, dan masing-masing pihak dapat meluncurkan fungsi lain dan menetapkan parameter spesifik sesuai dengan kebutuhannya masing-masing.


koin stabil

Stablecoin (token yang dipatok pada mata uang fiat) biasanya menggunakan standar token ERC-20. Transaksi kontrak BUSD yang disebutkan di atas adalah contoh tipikal, dan sebagian besar stablecoin juga menggunakan formulir ini.

Untuk stablecoin yang didukung oleh mata uang fiat arus utama, penerbit dapat menyimpan cadangan dalam euro, dolar AS, dll., dan kemudian menerbitkan token untuk setiap unit cadangan. Artinya jika $10.000 disetorkan ke brankas, penerbit dapat membuat 10.000 token, masing-masing bernilai $1.

Dari sudut pandang teknis, ini mudah diterapkan di Ethereum. Penerbit cukup meluncurkan kontrak dengan 10.000 token dan kemudian mendistribusikan token tersebut kepada pengguna, menjanjikan bahwa mereka dapat menukarkan token tersebut dengan persentase tertentu dari mata uang fiat di masa depan.

Pengguna dapat menggunakan token mereka untuk melakukan berbagai tindakan, termasuk membeli barang dan jasa dan mendaftar ke DApps. Alternatifnya, penerbit dapat diminta untuk segera menebus token ini. Dalam hal ini, penerbit juga dapat menghancurkan token yang dikembalikan (biarkan masa berlakunya habis) dan menarik sejumlah fiat yang setara dari cadangan.

Seperti disebutkan sebelumnya, kontrak yang mengatur sistem ini relatif sederhana. Namun, meluncurkan stablecoin memerlukan perhatian pada banyak faktor eksternal lainnya (seperti logistik, kepatuhan, dll.) dan banyak upaya.


Token Keamanan

Token keamanan mirip dengan stablecoin dan bahkan bisa sepenuhnya identik pada tingkat kontrak karena keduanya beroperasi dengan cara yang sama. Perbedaannya terletak pada penerbitnya: Token keamanan mewakili sekuritas seperti saham, obligasi, atau aset nyata. Mereka biasanya, meskipun tidak selalu, memberikan pemegangnya saham dalam suatu bisnis atau komoditas.


token utilitas

Token utilitas mungkin merupakan jenis token yang paling umum saat ini. Berbeda dengan dua token sebelumnya, token utilitas tidak didukung oleh aset nyata apa pun. Jika saham maskapai penerbangan mewakili token yang didukung aset, token utilitas seperti program frequent flyer: mereka memiliki beberapa fungsi, tetapi tidak memiliki nilai eksternal. Token utilitas dapat melayani berbagai kebutuhan, seperti digunakan sebagai mata uang dalam game, bahan bakar untuk aplikasi terdesentralisasi, dan poin loyalitas.


➠ Ingin memulai perjalanan mata uang kripto Anda? Selamat datang di Binance untuk membeli Ethereum!


Bisakah saya berpartisipasi dalam penambangan token ERC-20?

Anda dapat berpartisipasi dalam penambangan Ethereum (ETH), tetapi tokennya tidak dapat ditambang – kami menyebutnya pembuatan token baru. Setelah kontrak berjalan, pengembang akan mengalokasikan pasokan sesuai rencana dan peta jalan,

Hal ini umumnya dilakukan melalui Initial Coin Offering (ICO), Initial Exchange Offering (IEO) atau Security Token Offering (STO). Anda mungkin menemukan beberapa variasi akronim ini, namun konsepnya sangat mirip. Investor mengirim eter ke alamat kontrak dan menerima token baru sebagai imbalannya. Dana yang terkumpul akan digunakan untuk mendanai pengembangan proyek di masa depan. Pengguna berharap dapat menggunakan token mereka (segera atau lambat) atau menjualnya kembali untuk mendapatkan keuntungan seiring pertumbuhan proyek.

Penerbitan token belum tentu otomatis. Banyak kampanye crowdfunding yang mendukung pengguna untuk menyelesaikan pembayaran menggunakan berbagai mata uang digital (seperti BNB, BTC, ETH, dan USDT), dan kemudian mendistribusikan saldo yang sesuai ke alamat yang diberikan oleh pengguna.


Kelebihan dan Kekurangan Token ERC-20

Keuntungan Token ERC-20

Dapat dipertukarkan

Token ERC-20 dapat dipertukarkan dan semua unit dapat ditukar satu sama lain. Terkait Token Binance Academy, hal yang sama berlaku terlepas dari koin spesifik apa yang Anda pegang. Anda dapat berdagang dengan orang lain dan fungsi tokennya sama, mirip dengan uang tunai atau emas.

Ini ideal jika token yang Anda pegang berharap dapat berkembang menjadi semacam mata uang. Token dengan karakteristik berbeda kehilangan kesepadanannya dan tidak memenuhi kebutuhan Anda. Hal ini dapat menyebabkan token tertentu bernilai lebih rendah atau lebih tinggi daripada token serupa, sehingga menggagalkan tujuan aslinya.


fleksibel

Seperti yang dibahas pada bab sebelumnya, token ERC-20 sangat dapat disesuaikan dan solusinya dapat disesuaikan untuk berbagai aplikasi. Contohnya termasuk digunakan sebagai mata uang dalam game, poin loyalitas untuk program, koleksi digital, atau bahkan mewakili karya seni dan kepemilikan properti.


sangat terkenal

ERC-20 semakin populer di bidang mata uang kripto, dan cetak biru yang didasarkan padanya sangat meyakinkan. Banyak bursa, dompet, dan kontrak pintar kini kompatibel dengan berbagai token yang baru diluncurkan. Selain itu, dukungan dan dokumentasi pengembang cukup komprehensif.


Kekurangan Token ERC-20

Skalabilitas yang buruk

Ini adalah masalah umum di banyak jaringan mata uang kripto, dan Ethereum pun tidak kebal terhadapnya. Dalam bentuknya yang sekarang, skalanya tidak bagus. Mengirim transaksi pada periode sibuk memerlukan biaya tinggi dan penundaan yang lama. Jika token ERC-20 digunakan dan menyebabkan kemacetan jaringan, ketersediaannya juga akan terpengaruh.

Ini bukan masalah yang hanya terjadi pada Ethereum, namun merupakan trade-off yang harus dilakukan oleh semua sistem terdistribusi yang aman. Komunitas berencana untuk menyelesaikan masalah ini setelah bermigrasi ke Ethereum 2.0 dan menerapkan peningkatan seperti Ethereum Plasma dan Ethereum Casper.

Silakan baca "Skalabilitas Blockchain: Sidechain dan Saluran Pembayaran" untuk mempelajari lebih lanjut tentang masalah skalabilitas.


Tipuan

Meskipun tidak ada yang salah dengan teknologi itu sendiri, dalam beberapa hal kemudahan dalam menerbitkan token bisa menjadi sebuah kerugian. Token ERC-20 sederhana mudah dibuat, artinya siapa pun dapat melakukannya, namun dengan niat yang beragam.

Oleh karena itu, Anda harus berinvestasi dengan hati-hati. Ada banyak skema piramida dan skema Ponzi yang menyamar sebagai proyek blockchain. Anda harus melakukan riset sendiri sebelum berinvestasi untuk memastikan apakah peluang investasi tersebut sah.

Apa perbedaan antara ERC-20, ERC-1155, ERC-223 dan ERC-721?

ERC-20 adalah standar token Ethereum pertama (dan sejauh ini yang paling populer), namun ini bukan satu-satunya. Selama bertahun-tahun, banyak standar lain telah dikembangkan. Kebanyakan dari mereka adalah peningkatan standar ERC-20, yang lain mencoba untuk mencapai tujuan yang sama sekali berbeda.

Sejumlah standar yang tidak umum berlaku untuk token non-fungible (NFT). Dalam beberapa kasus, token unik dengan properti berbeda dapat menjadikan Anda penerima manfaat. Jika Anda ingin memberi token pada karya seni unik, aset dalam game, dll., salah satu jenis kontrak ini mungkin lebih menarik.

Misalnya, standar ERC-721 digunakan di CryptoKitties DApp yang sangat populer. Kontrak ini menyediakan API bagi pengguna untuk membuat token mereka sendiri yang tidak dapat dipertukarkan dan menyandikan metadata (gambar, deskripsi, dll.).

Standar ERC-1155 dapat dilihat sebagai penyempurnaan dari ERC-721 dan ERC-20. Ini mendukung standar token yang sepadan dan tidak dapat dipertukarkan dalam satu kontrak.

Opsi lain, seperti ERC-223 atau ERC-621, dirancang untuk meningkatkan kegunaan. Yang pertama menerapkan langkah-langkah perlindungan untuk mencegah transfer token yang tidak disengaja. Yang terakhir ini menyediakan fungsionalitas tambahan untuk menambah atau mengurangi pasokan token.

Untuk mempelajari lebih lanjut tentang NFT, silakan baca Panduan CryptoCollectibles dan Non-Fungible Tokens (NFTs).


Meringkaskan

Standar ERC-20 telah menjadi pemain dominan di bidang aset kripto selama bertahun-tahun. Alasannya jelas: standarnya relatif sederhana dan siapa pun dapat menerapkan kontrak sederhana untuk memenuhi berbagai kebutuhan (token utilitas, stablecoin, dll.). Meskipun demikian, ERC-20 tidak memiliki beberapa fitur dibandingkan standar lainnya, namun masih harus dilihat apakah jenis kontrak lain dapat menggantikannya.