Perkenalan
Ethereum didirikan oleh Vitalik Buterin pada tahun 2014, memposisikan dirinya sebagai platform sumber terbuka untuk meluncurkan aplikasi terdesentralisasi (DApps). Banyak motivasi Buterin dalam menciptakan blockchain baru berasal dari kurangnya fleksibilitas protokol Bitcoin.
Sejak diluncurkan, blockchain Ethereum telah menarik perhatian pengembang, bisnis, dan pengusaha, sehingga melahirkan industri pengguna yang berkembang yang meluncurkan kontrak pintar dan aplikasi terdistribusi.
Pada artikel ini, kita akan melihat standar ERC-20, sebuah kerangka kerja penting untuk membuat token. Meskipun khusus untuk jaringan Ethereum, kerangka kerja ini juga menginspirasi standar blockchain lainnya, seperti BEP-2 dari Binance Chain.
Apa standar ERC-20?
Di Ethereum, ERC adalah Permintaan Komentar Ethereum. Ini adalah dokumen teknis yang menguraikan standar pemrograman di Ethereum. Berbeda dengan Proposal Peningkatan Ethereum (EIP), yang, seperti BIP Bitcoin, menyarankan perbaikan pada protokol itu sendiri. ERC malah bertujuan untuk membuat konvensi yang memudahkan aplikasi dan kontrak untuk berinteraksi satu sama lain.
Ditulis oleh Vitalik Buterin dan Fabian Vogelsteller pada tahun 2015, ERC-20 mengusulkan format yang relatif sederhana untuk token berbasis Ethereum. Dengan mengikuti garis besarnya, pengembang tidak perlu menemukan kembali rodanya. Sebaliknya, mereka dapat membangun fondasi yang sudah digunakan di seluruh industri.
Setelah token ERC-20 baru dibuat, token tersebut secara otomatis dapat dioperasikan dengan layanan dan perangkat lunak yang mendukung standar ERC-20 (dompet perangkat lunak, dompet perangkat keras, bursa, dll.).
Perlu dicatat bahwa standar ERC-20 dikembangkan menjadi EIP (khususnya, EIP-20). Hal ini terjadi beberapa tahun setelah usulan awal karena penggunaannya yang luas. Namun, bahkan bertahun-tahun kemudian, nama “ERC-20” masih melekat.
Rekap singkat tentang token Ethereum
Tidak seperti ETH (mata uang kripto asli Ethereum), token ERC-20 tidak disimpan berdasarkan akun. Token hanya ada di dalam kontrak, yang seperti database mandiri. Ini menentukan aturan untuk token (yaitu nama, simbol, pembagian) dan menyimpan daftar yang memetakan saldo pengguna ke alamat Ethereum mereka.
Untuk memindahkan token, pengguna harus mengirimkan transaksi ke kontrak yang memintanya untuk mengalokasikan sebagian saldo mereka ke tempat lain. Misalnya, jika Alice ingin mengirim 5.000 BinanceAcademyTokens ke Bob, dia memanggil fungsi di dalam kontrak pintar BinanceAcademyToken yang memintanya untuk melakukannya.

Panggilannya terkandung dalam apa yang tampaknya merupakan transaksi Ethereum biasa yang membayar 0 ETH ke kontrak token. Panggilan tersebut disertakan dalam kolom tambahan dalam transaksi, yang menentukan apa yang ingin dilakukan Alice – dalam kasus kami, mentransfer token ke Bob.
Meskipun dia tidak mengirimkan ether, dia tetap harus membayar biaya dalam mata uang tersebut agar transaksinya disertakan dalam blok. Jika dia tidak memiliki ETH, dia perlu mendapatkannya sebelum mentransfer token.
Berikut adalah contoh nyata di atas di Etherscan: seseorang melakukan panggilan ke kontrak BUSD. Anda dapat melihat token ditransfer, dan biaya telah dibayarkan, meskipun bidang Nilai menunjukkan bahwa 0 ETH telah dikirim.
Sekarang setelah kita mengetahui informasinya, mari kita lihat apa yang ada di baliknya untuk lebih memahami struktur kontrak ERC-20 pada umumnya.
Bagaimana token ERC-20 dibuat?

Agar sesuai dengan ERC-20, kontrak Anda harus menyertakan enam fungsi wajib: totalSupply, balanceOf, transfer, transferFrom, Approved, dan Allowance. Selain itu, Anda dapat menentukan fungsi opsional, seperti nama, simbol, dan desimal. Mungkin sudah jelas bagi Anda apa fungsi fungsi tersebut dari namanya. Jika tidak, jangan khawatir – kami akan menguraikannya.
Di bawah ini adalah fungsi-fungsi yang muncul dalam bahasa Soliditas Ethereum yang dibuat khusus.
pasokan total
fungsi totalSupply() tampilan publik kembali (uint256)Saat dipanggil oleh pengguna, fungsi di atas mengembalikan total pasokan token yang dimiliki kontrak.
keseimbangan
fungsi balanceOf(address _owner) tampilan publik kembali (saldo uint256)Tidak seperti totalSupply, balanceOf mengambil parameter (alamat). Saat dipanggil, ia mengembalikan saldo kepemilikan token alamat tersebut. Ingatlah bahwa akun di jaringan Ethereum bersifat publik, sehingga Anda dapat menanyakan saldo pengguna mana pun asalkan Anda mengetahui alamatnya.
transfer
transfer fungsi (alamat _ke, uint256 _nilai) pengembalian publik (bool sukses)transfer dengan tepat mentransfer token dari satu pengguna ke pengguna lainnya. Di sini, Anda memberikan alamat tujuan pengiriman dan jumlah yang akan ditransfer.
Ketika dipanggil, transfer memicu sesuatu yang disebut peristiwa (dalam hal ini transfer peristiwa), yang pada dasarnya memberitahu blockchain untuk menyertakan referensi ke sana.
transferDari
fungsi transferFrom(alamat _dari, alamat _ke, uint256 _nilai) pengembalian publik (bool sukses)Fungsi transferFrom adalah alternatif praktis untuk transfer yang memungkinkan kemampuan program lebih banyak dalam aplikasi terdesentralisasi. Seperti transfer, ini digunakan untuk memindahkan token, tetapi token tersebut tidak harus milik orang yang membuat kontrak.
Dengan kata lain, Anda dapat memberi wewenang kepada seseorang – atau kontrak lain – untuk mentransfer dana atas nama Anda. Kasus penggunaan yang mungkin terjadi melibatkan pembayaran untuk layanan berbasis langganan, di mana Anda tidak ingin mengirim pembayaran secara manual setiap hari/minggu/bulan. Sebaliknya, biarkan saja suatu program melakukannya untuk Anda.
Fungsi ini memicu kejadian yang sama seperti transfer.
menyetujui
fungsi menyetujui (alamat _pembelanja, uint256 _nilai) pengembalian publik (bool sukses)menyetujui adalah fungsi lain yang berguna dari sudut pandang kemampuan program. Dengan fungsi ini, Anda dapat membatasi jumlah token yang dapat ditarik oleh kontrak pintar dari saldo Anda. Tanpanya, Anda berisiko kontrak tidak berfungsi (atau dieksploitasi) dan mencuri seluruh dana Anda.
Ambil contoh model berlangganan lagi. Misalkan Anda memiliki BinanceAcademyTokens dalam jumlah besar, dan Anda ingin mengatur pembayaran berulang mingguan ke DApp streaming. Anda sibuk membaca konten Binance Academy siang dan malam, sehingga Anda tidak ingin meluangkan waktu setiap minggu untuk membuat transaksi secara manual.
Anda memiliki saldo BinanceAcademyTokens yang sangat besar, jauh melebihi jumlah yang dibutuhkan untuk membayar langganan. Untuk mencegah DApp menguras semuanya, Anda dapat menetapkan batas dengan persetujuan. Misalkan langganan Anda dikenakan biaya satu BinanceAcademyToken per minggu. Jika Anda membatasi nilai yang disetujui pada dua puluh token, maka langganan Anda dapat dibayar secara otomatis selama lima bulan.
Paling buruk, jika DApp mencoba menarik semua dana Anda atau jika ditemukan bug, Anda hanya bisa kehilangan dua puluh token. Ini mungkin tidak ideal, tapi tentu saja lebih menarik daripada kehilangan seluruh kepemilikan Anda.
Saat dipanggil, persetujuan memicu peristiwa persetujuan. Seperti acara transfer, ia menulis data ke blockchain.
uang saku
tunjangan fungsi (alamat _pemilik, alamat _pembelanja) pengembalian tampilan publik (sisa uint256)tunjangan dapat digunakan bersamaan dengan menyetujui. Ketika Anda telah memberikan izin kontrak untuk mengelola token Anda, Anda dapat menggunakan ini untuk memeriksa berapa banyak token yang masih dapat ditarik. Misalnya, jika langganan Anda telah menggunakan dua belas dari dua puluh token yang disetujui, memanggil fungsi tunjangan akan menghasilkan total delapan.
Fungsi opsional
Fungsi-fungsi yang telah dibahas sebelumnya bersifat wajib. Di sisi lain, nama, simbol, dan desimal tidak perlu disertakan, namun dapat membuat kontrak ERC-20 Anda sedikit lebih cantik. Masing-masing, mereka memungkinkan Anda untuk menambahkan nama yang dapat dibaca manusia, menetapkan simbol (yaitu, ETH, BTC, BNB), dan menentukan berapa banyak tempat desimal yang dapat dibagi oleh token. Misalnya, token yang digunakan sebagai mata uang mungkin mendapat manfaat lebih karena lebih mudah dibagi dibandingkan token yang mewakili kepemilikan properti.
Lihat contoh ini di GitHub untuk melihat elemen-elemen ini dalam kontrak nyata.
Apa yang bisa dilakukan token ERC-20?

Dengan menggabungkan semua fungsi di atas, kami mendapatkan kontrak ERC-20. Kami dapat menanyakan total pasokan, memeriksa saldo, mentransfer dana, dan memberikan izin kepada DApps lain untuk mengelola token untuk kami.
Salah satu daya tarik token ERC-20 adalah fleksibilitasnya. Konvensi yang ditetapkan tidak membatasi pengembangan, sehingga para pihak dapat menerapkan fitur tambahan dan menetapkan parameter spesifik sesuai kebutuhan mereka.
Stablecoin
Stablecoin (token yang dipatok pada mata uang fiat) sering kali menggunakan standar token ERC-20. Transaksi kontrak BUSD yang kami referensikan sebelumnya adalah salah satu contohnya, dan sebagian besar stablecoin utama juga tersedia dalam format ini.
Untuk stablecoin yang didukung fiat, penerbit memiliki cadangan euro, dolar, dll. Kemudian, untuk setiap unit cadangannya, mereka menerbitkan token. Artinya jika $10.000 dikunci di brankas, penerbit dapat membuat 10.000 token, masing-masing dapat ditukarkan dengan $1.
Secara teknis, ini cukup mudah diterapkan di Ethereum. Penerbit cukup meluncurkan kontrak dengan 10.000 token. Kemudian, mereka akan mendistribusikannya kepada pengguna dengan janji bahwa mereka nantinya dapat menukarkan token tersebut dengan mata uang fiat dalam jumlah yang proporsional.
Pengguna dapat melakukan beberapa hal dengan token mereka – mereka dapat membeli barang dan jasa atau menggunakannya di DApps. Alternatifnya, mereka dapat meminta agar penerbit segera menukarkannya. Dalam hal ini, penerbit akan membakar token yang dikembalikan (menjadikannya tidak dapat digunakan) dan menarik jumlah fiat yang tepat dari cadangannya.
Kontrak yang mengatur sistem ini, sebagaimana disebutkan di atas, relatif sederhana. Namun, meluncurkan stablecoin memerlukan banyak pekerjaan pada faktor eksternal seperti logistik, kepatuhan terhadap peraturan, dll.
Token keamanan
Token keamanan mirip dengan stablecoin. Pada tingkat kontrak, keduanya bahkan bisa saja identik karena fungsinya sama. Pembedaannya terjadi di tingkat emiten. Token keamanan mewakili sekuritas, seperti saham, obligasi, atau aset fisik. Seringkali (meskipun tidak selalu demikian), mereka memberikan pemegangnya semacam saham dalam suatu bisnis atau barang.
Token utilitas
Token utilitas mungkin merupakan jenis token yang paling umum ditemukan saat ini. Berbeda dengan dua penawaran sebelumnya, keduanya tidak didukung oleh apa pun. Jika token yang didukung aset seperti saham di perusahaan penerbangan, maka token utilitas seperti program frequent-flyer: mereka memiliki fungsi, namun tidak memiliki nilai eksternal. Token utilitas dapat melayani berbagai kasus penggunaan, berfungsi sebagai mata uang dalam game, bahan bakar untuk aplikasi terdesentralisasi, poin loyalitas, dan banyak lagi.
➠ Ingin memulai cryptocurrency? Beli eter di Binance!
Bisakah Anda menambang token ERC-20?
Anda dapat menambang ether (ETH), tetapi token tidak dapat ditambang – menurut kami token akan dicetak saat token baru dibuat. Ketika kontrak diluncurkan, pengembang mendistribusikan pasokan sesuai dengan rencana dan peta jalan mereka.
Biasanya, hal ini dilakukan melalui Initial Coin Offering (ICO), Initial Exchange Offering (IEO), atau Security Token Offering (STO). Anda mungkin menemukan variasi akronim ini, namun konsepnya sangat mirip. Investor mengirim eter ke alamat kontrak dan, sebagai imbalannya, menerima token baru. Uang yang terkumpul digunakan untuk mendanai pengembangan proyek lebih lanjut. Pengguna berharap dapat menggunakan token mereka (baik segera atau di kemudian hari) atau menjualnya kembali untuk mendapatkan keuntungan seiring berkembangnya proyek.
Distribusi token tidak perlu diotomatisasi. Banyak acara crowdfunding yang memungkinkan pengguna membayar dengan berbagai mata uang digital yang berbeda (seperti BNB, BTC, ETH, dan USDT). Saldo masing-masing kemudian dialokasikan ke alamat yang diberikan oleh pengguna.
Pro dan kontra dari token ERC-20
Kelebihan token ERC-20
Sepadan
Token ERC-20 dapat dipertukarkan – setiap unit dapat dipertukarkan dengan unit lainnya. Jika Anda memiliki BinanceAcademyToken, tidak masalah token spesifik apa yang Anda miliki. Anda dapat menukarkannya dengan milik orang lain, dan fungsinya tetap sama, seperti uang tunai atau emas.
Ini ideal jika token Anda bertujuan untuk menjadi semacam mata uang. Anda tidak ingin unit individual dengan ciri-ciri yang dapat dibedakan, yang akan membuatnya tidak dapat dipertukarkan. Hal ini dapat menyebabkan beberapa token menjadi lebih – atau kurang – berharga dibandingkan token lainnya, sehingga melemahkan tujuannya.
Fleksibel
Seperti yang telah kita bahas di bagian sebelumnya, token ERC-20 sangat dapat disesuaikan dan disesuaikan dengan banyak aplikasi berbeda. Misalnya, mereka dapat digunakan sebagai mata uang dalam game, dalam program poin loyalitas, sebagai barang koleksi digital, atau bahkan untuk mewakili karya seni dan hak milik.
Populer
Popularitas ERC-20 di industri mata uang kripto adalah alasan kuat untuk menggunakannya sebagai cetak biru. Ada banyak bursa, dompet, dan kontrak pintar yang sudah kompatibel dengan token yang baru diluncurkan. Terlebih lagi, dukungan dan dokumentasi pengembang sangat melimpah.
Kontra token ERC-20
Skalabilitas
Seperti banyak jaringan mata uang kripto lainnya, Ethereum juga tidak kebal terhadap pertumbuhan yang menyakitkan. Dalam bentuknya saat ini, skalanya tidak baik – mencoba mengirim transaksi pada waktu sibuk akan mengakibatkan biaya tinggi dan penundaan. Jika Anda meluncurkan token ERC-20 dan jaringan menjadi padat, kegunaannya dapat terpengaruh.
Ini bukan masalah yang hanya terjadi pada Ethereum. Sebaliknya, ini merupakan trade-off yang diperlukan dalam sistem terdistribusi yang aman. Komunitas berencana untuk mengatasi masalah ini dalam migrasi ke Ethereum 2.0, yang akan mengimplementasikan peningkatan seperti Ethereum Plasma dan Ethereum Casper.
Pelajari lebih lanjut tentang masalah skalabilitas di Skalabilitas Blockchain: Sidechains dan Saluran Pembayaran.
Penipuan
Meskipun bukan merupakan masalah dengan teknologi itu sendiri, kemudahan peluncuran token dapat dianggap sebagai kelemahan dalam beberapa hal. Dibutuhkan sedikit usaha untuk membuat token ERC-20 sederhana, artinya siapa pun dapat melakukannya – baik atau buruk.
Oleh karena itu, Anda harus berhati-hati dengan apa yang Anda investasikan. Ada sejumlah skema Piramida dan Ponzi yang menyamar sebagai proyek blockchain. Lakukan riset sendiri sebelum berinvestasi untuk mencapai kesimpulan Anda sendiri mengenai apakah suatu peluang itu sah.
ERC-20, ERC-1155, ERC-223, ERC-721 – apa bedanya?
ERC-20 adalah standar token Ethereum pertama (dan, hingga saat ini, yang paling populer), tetapi ini bukan satu-satunya. Selama bertahun-tahun, banyak pihak lain yang bermunculan, baik yang mengusulkan perbaikan pada ERC-20 atau berupaya mencapai tujuan yang berbeda sama sekali.
Beberapa standar yang kurang umum adalah yang digunakan dalam token non-fungible (NFT). Terkadang, kasus penggunaan Anda sebenarnya mendapat manfaat dari memiliki token unik dengan atribut berbeda. Jika Anda ingin memberi token pada karya seni, aset dalam game, dll. yang unik, salah satu jenis kontrak ini mungkin lebih menarik.
Standar ERC-721, misalnya, digunakan untuk CryptoKitties DApp yang sangat populer. Kontrak semacam itu menyediakan API bagi pengguna untuk membuat token mereka sendiri yang tidak dapat dipertukarkan dan untuk menyandikan metadata (gambar, deskripsi, dll.).
Standar ERC-1155 dapat dilihat sebagai penyempurnaan dari ERC-721 dan ERC-20. Ini menguraikan standar yang mendukung token yang dapat dipertukarkan dan tidak dapat dipertukarkan dalam kontrak yang sama.
Opsi lain seperti ERC-223 atau ERC-621 bertujuan untuk meningkatkan kegunaan. Yang pertama menerapkan perlindungan untuk mencegah transfer token yang tidak disengaja. Yang terakhir ini menambahkan fungsi tambahan untuk menambah dan mengurangi pasokan token.
Untuk informasi lebih lanjut tentang topik NFT, pastikan untuk membaca Panduan Koleksi Kripto dan Token Non-Fungible (NFT).
Menutup pikiran
Standar ERC-20 telah mendominasi ruang aset kripto selama bertahun-tahun, dan tidak sulit untuk mengetahui alasannya. Dengan relatif mudah, siapa pun dapat menerapkan kontrak sederhana agar sesuai dengan berbagai kasus penggunaan (token utilitas, stablecoin, dll.). Meskipun demikian, ERC-20 memang kekurangan beberapa fitur yang dibawa oleh standar lain. Masih harus dilihat apakah jenis kontrak berikutnya akan berlaku.

