Apa itu ERC-20? Standar token yang menjalankan ekonomi Ethereum.

Apa itu ERC-20? Standar token yang menjalankan ekonomi Ethereum.

Saya menyimpan USDT di dompet MetaMask saya. Juga beberapa LINK, sedikit UNI dari pertukaran minggu lalu, dan token anjing yang dikirimkan seseorang kepada saya melalui airdrop yang selalu saya lupa untuk menjualnya. Token-token ini melakukan hal yang sangat berbeda. Tether adalah stablecoin yang didukung oleh uang tunai dan perbendaharaan. Chainlink menjalankan jaringan oracle yang memberikan data dunia nyata ke kontrak pintar. Uniswap mengatur DEX terbesar di Ethereum. Token anjing itu tidak melakukan apa pun yang berguna. Tetapi dompet saya menampilkan semuanya dalam daftar yang sama, memungkinkan saya untuk mengirimkannya dengan tombol yang sama, dan setiap protokol DeFi yang saya gunakan menerimanya tanpa pengaturan khusus apa pun.

Itu hanya berhasil karena keempatnya mengikuti aturan yang sama. Mereka adalah token ERC-20. Antarmuka yang sama, fungsi yang sama, panduan yang sama. Dan memahami apa arti ERC-20 sebenarnya adalah langkah pertama untuk memahami bagaimana Ethereum bekerja sebagai sebuah ekonomi.

Fabian Vogelsteller menulis proposal tersebut pada November 2015. Ia memberinya nama yang membosankan: Ethereum Request for Comment nomor 20. Vitalik Buterin ikut menulis versi finalnya. Pada tahun 2017, proposal tersebut secara resmi diadopsi, dan kemudian terjadi ledakan ICO. Ribuan proyek meluncurkan token dalam semalam karena ERC-20 membuatnya hampir gratis. Setengah juta kontrak token kemudian, standar ini masih menjadi andalan. Inilah yang dilakukannya dan mengapa Anda harus peduli padanya meskipun Anda tidak pernah berencana untuk menulis satu baris kode Solidity pun.

Cara kerja standar ERC-20

Nama tersebut terdengar lebih teknis dari yang seharusnya. ERC = Ethereum Request for Comment. 20 = nomor proposal. Itu saja. Seorang pengembang bernama Fabian berkata "inilah aturan yang harus diikuti setiap token" dan memberikan nomor 20 pada proposalnya karena itu adalah slot yang tersedia berikutnya. Bukan dua puluh aturan. Bukan dua puluh token. Hanya proposal #20 dalam antrian peningkatan Ethereum.

Apa yang dikatakan aturan-aturan itu: jika Anda ingin membuat token yang dapat dipertukarkan (fungible token) di Ethereum, kontrak pintar Anda harus menyertakan fungsi-fungsi spesifik ini. "Dapat dipertukarkan" berarti setiap unit token identik. Satu USDC sama dengan setiap USDC lainnya. Anda tidak perlu peduli token UNI spesifik mana yang Anda pegang karena semuanya dapat dipertukarkan. NFT adalah kebalikannya. Masing-masing unik. Standar yang berbeda. Artikel yang berbeda.

Standar ERC-20 menetapkan enam fungsi dan dua peristiwa. Setiap kontrak token yang sesuai, mulai dari USDT dengan kapitalisasi pasar $140 miliar hingga memecoin yang diluncurkan seseorang tiga puluh detik yang lalu, mengimplementasikan panggilan yang sama ini:

Fungsi Versi Bahasa Inggris Sederhana
totalSupply() "Berapa banyak token ini yang ada di dunia?"
saldo(alamat) "Ada berapa banyak dompet khusus ini?"
transfer (ke, jumlah) "Kirim X token dari dompet saya ke orang lain ini"
menyetujui(pembelanja, jumlah) "Izinkan protokol DeFi ini untuk menggunakan hingga X token saya"
transferDari(dari, ke, jumlah) "Saya memiliki izin untuk memindahkan token dari dompet A ke dompet B"
tunjangan (pemilik, pembelanja) "Seberapa banyak uang saku yang masih bisa digunakan oleh orang yang boros ini?"

Dua peristiwa dicatat di blockchain setiap kali sesuatu terjadi. Peristiwa transfer terjadi setiap kali token berpindah antar dompet. Peristiwa persetujuan terjadi ketika seseorang memberikan izin untuk membelanjakan dana. Penjelajah blockchain seperti Etherscan menggunakan peristiwa ini untuk membangun riwayat transaksi yang Anda lihat saat mencari token.

Tiga kolom opsional menambahkan kepribadian: nama memberikan label yang mudah dibaca manusia pada token ("Chainlink"), simbol adalah kode saham ("LINK"), dan desimal menentukan seberapa rinci token dapat dibagi (hampir semua orang menggunakan 18 untuk menyamai ETH, meskipun USDT menggunakan 6 dan itu telah menyebabkan lebih banyak bug daripada yang ingin diakui siapa pun).

Enam fungsi. Dua kejadian. Tiga bidang opsional. Itulah keseluruhan spesifikasinya. Saya bisa mencetaknya di atas serbet dengan ruang tersisa untuk noda kopi. Namun spesifikasi seukuran serbet ini menjalankan ekonomi token senilai ratusan miliar dolar. MetaMask membaca fungsi-fungsi ini untuk menampilkan saldo Anda. Uniswap memanggilnya untuk mengeksekusi pertukaran. Aave menggunakannya untuk mengelola pinjaman. Setiap protokol DeFi yang pernah Anda gunakan berkomunikasi dengan token melalui antarmuka yang sama ini. Kesederhanaannya adalah intinya.

erc-20

Mengapa ERC-20 mengubah segalanya tentang Ethereum

Saya bekerja di bidang kripto pada tahun 2016, sebelum standar ini ada. Saat itu sangat kacau. Setiap token merupakan pekerjaan khusus. Seseorang akan membuat kontrak token dengan nama fungsi mereka sendiri, logika transfer mereka sendiri, cara mereka sendiri untuk memeriksa saldo. MetaMask tidak tahu apa setengah dari token-token ini. Bursa membutuhkan waktu berbulan-bulan untuk menambahkan dukungan untuk token baru karena masing-masing membutuhkan kode integrasi khusus. Membangun DEX? Lupakan saja. Anda perlu menulis handler untuk setiap implementasi token individual.

ERC-20 mengakhiri kegilaan itu. Setelah standar tersebut diadopsi, token baru muncul di MetaMask begitu Anda menempelkan alamat kontrak. Uniswap dapat mendaftarkannya tanpa izin siapa pun. Aave dapat menerimanya sebagai jaminan tanpa menulis satu baris kode khusus pun. Satu standar, kompatibilitas universal.

Gelombang ICO 2017 adalah buktinya. Seorang anak di kamar asrama bisa meluncurkan token ERC-20 setelah makan siang, membuat situs web dengan whitepaper, dan menerima ETH dari investor pada tengah malam. Saya menyaksikannya terjadi secara langsung. Proyek-proyek tersebut mengumpulkan miliaran dolar. Beberapa sah dan membangun produk nyata. Sebagian besar sampah. Beberapa benar-benar penipuan. Tetapi teknologi di baliknya? Itu bekerja dengan sempurna. Standar tersebut melakukan persis apa yang dirancang untuk dilakukan: membuat pembuatan dan interaksi token menjadi sangat mudah.

Skalanya sekarang sangat mencengangkan. Lebih dari 500.000 kontrak token ERC-20 berada di jaringan Ethereum. Total kapitalisasi pasar token ERC-20 mencapai ratusan miliar dolar. USDT saja telah melampaui $140 miliar. Tambahkan USDC, LINK, UNI, DAI, SHIB, MKR, dan lainnya, dan Anda akan melihat sebagian besar nilai ekonomi Ethereum secara keseluruhan berada di dalam kontrak ERC-20.

Token ERC-20 teratas Kategori Kapitalisasi pasar (kira-kira)
USDT (Tether) Stablecoin Lebih dari $140 miliar
USDC (Lingkaran) Stablecoin Lebih dari $60 miliar
LINK (Rantai Penghubung) Jaringan Oracle Lebih dari $8 miliar
UNI (Uniswap) Tata kelola DEX Lebih dari $4 miliar
DAI (Pembuat) Stablecoin terdesentralisasi Lebih dari $5 miliar
AAVE Protokol pinjaman Lebih dari $2 miliar
SHIB (Shiba Inu) Memecoin Lebih dari $6 miliar
MKR (Pembuat) Tata Kelola Lebih dari $1,5 miliar

Membuat token ERC-20: lebih mudah dari yang Anda bayangkan.

Saya pernah menonton seseorang melakukan deployment token ERC-20 secara langsung di YouTube. Prosesnya memakan waktu 14 menit. Termasuk waktu yang dia habiskan untuk menjelaskan apa yang sedang dia lakukan kepada para penonton di chat.

Ini bukan pamer tentang betapa pintarnya streamer tersebut. Ini adalah pernyataan tentang betapa mudahnya OpenZeppelin membuat proses ini. OpenZeppelin adalah pustaka kode Solidity yang telah diaudit dan teruji yang melakukan semua pekerjaan berat. Anda memilih nama token Anda ("MyToken"), simbol Anda ("MTK"), jumlah desimal Anda (18, sama seperti ETH), dan pasokan awal Anda. Pustaka ini menangani enam fungsi ERC-20, event, dan pemeriksaan keamanan. Anda menyalin templat, mengubah empat variabel, menyebarkan ke Ethereum, dan Anda memiliki token yang nyata.

Biaya gas untuk penyebaran berfluktuasi. Jaringan sepi? Mungkin $20-50. Kepadatan puncak seperti hari pencetakan NFT? $200-500. Sebarkan di Arbitrum atau Base alih-alih mainnet Ethereum dan biayanya turun menjadi beberapa dolar. Hambatan finansialnya hampir nol.

Inilah sisi gelap dari aksesibilitas tersebut. Blockchain Ethereum tidak memeriksa apakah kontrak token itu sah. Ia tidak memverifikasi tim, mengaudit kode, atau mengevaluasi model bisnis. Jika Anda dapat membayar biaya gas, Anda dapat menyebarkan token. Inilah mengapa Etherscan mencantumkan ratusan ribu kontrak token dan sebagian besar di antaranya adalah eksperimen yang terbengkalai atau penipuan aktif. Standar ERC-20 menjamin kompatibilitas. Namun, standar ini sama sekali tidak menjamin apakah token tersebut layak untuk dipegang.

ERC-20 vs standar token Ethereum lainnya

Orang-orang bertanya kepada saya: "Apakah ERC-20 satu-satunya standar token?" Tidak. Jauh dari itu. Tetapi itu adalah standar pertama yang berhasil, dan standar-standar lain yang muncul setelahnya memecahkan masalah yang ditinggalkan ERC-20.

ERC-721 hadir dan memberi kita NFT. Jika setiap token ERC-20 dapat dipertukarkan (USDC Anda sama dengan USDC saya), setiap token ERC-721 memiliki ID unik. Bored Ape #4293 adalah aset yang sepenuhnya berbeda dari Bored Ape #7810. Nama fungsi di baliknya serupa, tetapi logikanya beroperasi pada item individual, bukan jumlah umum. Anda tidak dapat mengirim setengah Bored Ape. Semuanya atau tidak sama sekali.

ERC-1155 berasal dari pengembang game yang bosan menggunakan kontrak terpisah untuk setiap jenis item. Satu kontrak menangani koin emas (fungible, seperti ERC-20), pedang besi (semi-fungible, 50 salinan identik), dan helm legendaris unik (non-fungible, satu-satunya). Transfer massal menghemat gas. Satu transaksi memindahkan 100 item berbeda, bukan 100 transaksi terpisah.

BEP-20 adalah sebutan Binance Smart Chain untuk versi mereka. Fungsi dan event sama, hanya blockchain yang berbeda. Sama saja dengan ERC-20 yang di-copy-paste pada jaringan yang lebih murah. Standar SPL Solana melakukan hal yang sama dengan arsitektur yang sepenuhnya berbeda karena Solana tidak dirancang agar kompatibel dengan Ethereum.

Standar Jenis token Dapat dipertukarkan? Kasus penggunaan Jaringan
ERC-20 Token yang dapat dipertukarkan Ya Mata uang, tata kelola, utilitas Ethereum
ERC-721 Token yang tidak dapat dipertukarkan Tidak ada (ID unik) NFT, seni digital, barang koleksi Ethereum
ERC-1155 Multi-token Keduanya Permainan, berbagai jenis aset Ethereum
BEP-20 Token yang dapat dipertukarkan Ya Sama seperti ERC-20 Rantai BNB
SPL Dapat dipertukarkan + NFT Keduanya Ekosistem Solana Solana

Token ERC-20 di DeFi: mengapa standar ini mendukung keuangan terdesentralisasi

Singkirkan ERC-20 dan DeFi akan runtuh dalam semalam. Bukan "berjuang," tetapi runtuh. Setiap bagian dari sistem mengasumsikan token berbicara dalam bahasa yang sama.

Uniswap memasangkan dua token ERC-20 dalam sebuah pool dan memungkinkan Anda untuk menukarnya. Berfungsi untuk USDC. Berfungsi untuk SHIB. Berfungsi untuk memecoin yang diluncurkan teman Anda pukul 2 pagi. DEX tidak peduli apa fungsi token tersebut. Yang penting hanyalah kontrak tersebut mengimplementasikan transfer() dan approve(). Tambahkan liquidity pool, dan perdagangan pun dimulai. Tidak perlu aplikasi listing. Tidak perlu peninjauan bursa. Tidak ada masa tunggu.

Aave dan Compound meminjamkan token ERC-20. Protokol memanggil balanceOf() untuk melihat jumlah yang Anda setorkan. Memanggil transfer() untuk memindahkan token. Menggunakan approve() dan transferFrom() saat Anda melunasi pinjaman. Pasar peminjaman untuk token baru dapat dimulai pada hari token tersebut diluncurkan, karena antarmuka sudah diketahui.

Kemudian ada masalah ETH yang aneh. ETH sudah ada sebelum ERC-20, jadi tidak mengikuti standar tersebut. Itu merusak kemampuan komposisi. Solusinya: WETH. Wrapped Ether adalah pembungkus ERC-20 di sekitar ETH asli. Setor 1 ETH, terima 1 WETH yang dapat ditangani secara normal oleh protokol DeFi. WBTC melakukan hal yang sama untuk Bitcoin, membawa nilai BTC ke dalam ekosistem Ethereum sebagai token ERC-20 yang didukung 1:1 oleh Bitcoin asli yang disimpan.

Hasil praktisnya: Saya dapat membangun protokol DeFi hari ini yang bekerja dengan setiap token ERC-20 yang pernah dibuat, termasuk token yang belum ada. Kode saya tidak perlu mengetahui tentang USDT secara khusus. Kode tersebut tidak perlu diperbarui ketika seseorang meluncurkan stablecoin baru besok. Antarmuka menangani semuanya. Kemampuan komposisi inilah alasan mengapa Ethereum memiliki lebih banyak aktivitas DeFi, lebih banyak TVL, dan lebih banyak alat pengembang daripada blockchain lainnya. Standar ERC-20 adalah fondasi tempat segala sesuatu lainnya berada.

Risiko keamanan dan masalah umum ERC-20

Izinkan saya bercerita tentang bug persetujuan yang telah merugikan pengguna DeFi jutaan dolar dan yang hampir tidak dipahami siapa pun sampai mereka mengalaminya sendiri.

Saat Anda menukar token di Uniswap atau menyetor ke Aave, dApp meminta Anda untuk "menyetujui" agar dapat membelanjakan token Anda. Sebagian besar dApp secara default memberikan persetujuan tanpa batas. Kedengarannya tidak berbahaya sampai Anda menyadari artinya: kontrak pintar tersebut dapat membelanjakan setiap token jenis itu di dompet Anda, kapan saja, selamanya, sampai Anda secara eksplisit mencabut izin tersebut. Jika kontrak tersebut diretas enam bulan kemudian, penyerang akan menggunakan persetujuan lama Anda untuk mengambil token yang Anda lupa pernah Anda berikan aksesnya.

Ini pernah terjadi. Lebih dari sekali. Solusinya sederhana tetapi menjengkelkan: setujui hanya jumlah yang tepat yang Anda butuhkan untuk setiap transaksi. Atau gunakan Revoke.cash untuk membersihkan persetujuan lama yang Anda lupakan. Saya memeriksanya setiap beberapa bulan. Keadaannya selalu lebih buruk dari yang saya duga. ERC-2612 adalah standar yang lebih baru yang menggantikan persetujuan on-chain dengan izin yang ditandatangani, yang mengurangi risiko ini. Tetapi sebagian besar dApps masih menggunakan pola lama.

Token palsu menjebak orang setiap minggu. Seorang penipu menyebarkan kontrak ERC-20 bernama "Uniswap" atau "Chainlink" dengan alamat kontrak yang sedikit berbeda. Anda mencarinya di DEX, melihat nama yang familiar, dan membeli yang palsu. Uang Anda langsung masuk ke dompet penipu. Alamat kontrak LINK yang asli adalah 0x514910771AF9Ca656af840dff83E8264EcF986CA. Yang palsu mungkin 0x514910...sesuatu yang lain. Selalu salin alamat dari CoinGecko atau situs proyek resmi. Jangan pernah mencari hanya berdasarkan nama.

Kemudian ada token dengan trik tersembunyi. Di permukaan, kontrak tampak seperti ERC-20 standar. Di baliknya, pengembang menambahkan fungsi yang memungkinkan mereka mencetak token baru tanpa batas. Atau pajak penjualan yang mengambil 99% token Anda saat Anda mencoba menukarnya. Atau daftar hitam yang mencegah siapa pun kecuali pengembang untuk menjual. Standar ERC-20 tidak mengatakan apa pun tentang apa yang tidak dapat dilakukan oleh sebuah kontrak. Standar tersebut hanya menentukan fungsi minimum. Segala hal lainnya terserah pengembang. Audit token, DextScore, dan kontrak terverifikasi di Etherscan ada karena kesenjangan antara kesederhanaan standar dan kreativitas para penipu.

Ada pertanyaan?

Ya. Siapa pun dapat menyebarkan token ERC-20 di Ethereum menggunakan Solidity dan alat-alat seperti OpenZeppelin dan Remix IDE. Hambatan teknisnya rendah. Token dasar membutuhkan waktu kurang dari satu jam untuk dibuat dan biaya gas untuk penyebarannya berkisar antara $20-500, tergantung pada kondisi jaringan. Bagian tersulit bukanlah membuat token, tetapi membangun sesuatu yang layak untuk dibuatkan token.

Lebih dari 500.000 kontrak token ERC-20 telah diimplementasikan di Ethereum. Sebagian besar tidak aktif, terbengkalai, atau merupakan penipuan. Beberapa ribu memiliki volume perdagangan yang signifikan dan penggunaan nyata. Token ERC-20 teratas berdasarkan kapitalisasi pasar (USDT, USDC, LINK, UNI, DAI) mewakili sebagian besar nilai total.

Tidak. ERC-20 adalah standar teknis (cetak biru). USDT adalah token stablecoin spesifik yang menggunakan standar ERC-20. Anggap saja ERC-20 sebagai spesifikasi USB dan USDT sebagai perangkat USB spesifik. USDT juga ada di blockchain lain (Tron, Solana, Avalanche) menggunakan standar token masing-masing, tetapi versi Ethereum adalah token ERC-20.

Dompet Ethereum apa pun yang mendukung token khusus adalah dompet ERC-20. MetaMask, Trust Wallet, Coinbase Wallet, Rainbow, Plisio, Trezor, dan Ledger semuanya menampilkan dan mengelola token ERC-20. Saat Anda menambahkan alamat kontrak token ke MetaMask, ia membaca fungsi ERC-20 (balanceOf, symbol, decimals) untuk menampilkan saldo Anda. Anda tidak memerlukan dompet khusus untuk token ERC-20. Dompet apa pun yang terhubung ke Ethereum akan berfungsi.

Tidak. Coinbase adalah bursa mata uang kripto. Namun, Coinbase mendukung token ERC-20 untuk deposit dan penarikan melalui jaringan Ethereum. Coinbase juga membangun Base, jaringan Layer 2 di Ethereum tempat token ERC-20 dapat digunakan dengan biaya gas yang lebih rendah. Jika Anda mengirim token ERC-20 ke akun Coinbase Anda, pastikan Anda memilih jaringan Ethereum (atau Layer 2 yang benar) untuk menghindari kehilangan dana.

Tidak. ETH adalah mata uang kripto asli Ethereum. ETH ada di tingkat protokol dan sudah ada sebelum standar ERC-20. Token ERC-20 dibangun di atas Ethereum menggunakan kontrak pintar. ETH tidak mengikuti aturan ERC-20, itulah sebabnya WETH (Wrapped ETH) ada untuk memberikan ETH format yang kompatibel dengan ERC-20 untuk digunakan dalam DeFi. Saat Anda berinteraksi dengan sebagian besar protokol DeFi, ETH Anda akan secara otomatis diubah menjadi WETH di balik layar.

Ready to Get Started?

Create an account and start accepting payments – no contracts or KYC required. Or, contact us to design a custom package for your business.

Make first step

Always know what you pay

Integrated per-transaction pricing with no hidden fees

Start your integration

Set up Plisio swiftly in just 10 minutes.