ERC-20: Standar Interface Token Fungible yang Menjadi Fondasi Ekosistem Ethereum

Penulis Vogelsteller, Fabian; Buterin, Vitalik
Tahun 2015
Proyek Ethereum (EIP-20)
Lisensi MIT
Sumber Resmi eips.ethereum.org/EIPS/eip-20
Disclaimer: Halaman ini merupakan ringkasan dan analisis edukatif dari whitepaper atau makalah teknis resmi. Konten ini disajikan untuk tujuan pendidikan semata dan bukan merupakan saran investasi atau keuangan. Selalu baca dokumen asli dan lakukan riset mandiri sebelum mengambil keputusan keuangan apa pun.

EIP-20 (ERC-20) — ditulis oleh Fabian Vogelsteller dan Vitalik Buterin, diajukan 19 November 2015, mencapai status Final pada 2017 — mendefinisikan antarmuka kontrak pintar minimal dan terpadu untuk token fungible di Ethereum: enam fungsi wajib (totalSupply, balanceOf, transfer, transferFrom, approve, allowance) dan dua event (Transfer, Approval). Standar ini menetapkan API token universal sehingga wallet, exchange, DEX, atau protokol DeFi apa pun dapat berinteraksi dengan token ERC-20 mana pun menggunakan kode yang sama — menjadikan ERC-20 standar Ethereum paling berpengaruh dan fondasi dari era ICO, DeFi, dan seluruh ekonomi token kripto.

Konteks Sebelum ERC-20

Sebelum ERC-20, kontrak token Ethereum sepenuhnya bersifat custom. Token REP Augur, token DAO awal, dan token proyek-spesifik masing-masing mengimplementasikan nama fungsi, tipe parameter, dan struktur event yang berbeda-beda. Wallet membutuhkan integrasi kustom untuk setiap token; DEX tidak dapat mendaftar token baru tanpa mengaudit seluruh kode mereka.

Fabian Vogelsteller mengamati fragmentasi ini dan mengusulkan antarmuka standar minimal: jika setiap kontrak token mengimplementasikan fungsi bernama sama dengan signature yang sama, semua software hilir dapat ditulis sekali dan bekerja untuk semua token.

Insight arsitekturalnya: token ERC-20 bukan tipe aset baru — mereka adalah kontrak pintar yang mengimplementasikan API tertentu. Kontrak apa pun dengan enam fungsi ini adalah, menurut definisi, token ERC-20.

Enam Fungsi Wajib ERC-20

  • totalSupply() — Total pasokan token
  • balanceOf(address) — Saldo token suatu alamat
  • transfer(address, uint256) — Transfer token dari pemanggil ke alamat tujuan
  • transferFrom(address, address, uint256) — Transfer atas nama pihak lain (memerlukan persetujuan sebelumnya)
  • approve(address, uint256) — Otorisasi alamat spender untuk membelanjakan token dalam batas tertentu
  • allowance(address, address) — Periksa berapa banyak yang diizinkan spender belanjakan untuk owner

Dua event: Transfer (diemisikan setiap transfer) dan Approval (diemisikan setiap persetujuan).

Pola Approve/TransferFrom: Inovasi untuk DeFi

Interaksi dua langkah approve/transferFrom adalah inovasi kunci ERC-20 untuk interaksi kontrak pintar:

  1. Pengguna memanggil approve(alamatKontrakDeFi, jumlah) — mengotorisasi kontrak untuk membelanjakan token.
  2. Kemudian kontrak memanggil transferFrom(pengguna, penerima, jumlah) untuk memindahkan token.

Pola ini memungkinkan protokol DeFi (Uniswap, Compound, Aave) mengakses token pengguna tanpa mengkustodikan kunci privat — pengguna mempertahankan kustodi; protokol hanya disetujui untuk membelanjakan jumlah tertentu.

Kelemahan yang diketahui: Pola approve memiliki kondisi race condition halus — terdokumentasi dalam standar. EIP-2612 (permit) kemudian menambahkan persetujuan berbasis tanda tangan (gasless approvals) sebagai perbaikan.

ERC-20 Mengaktifkan Era ICO (2017–2018)

ERC-20 memungkinkan ledakan ICO (Initial Coin Offering) 2017–2018:

  • Proyek meluncurkan token dalam hitungan jam dengan men-deploy kontrak ERC-20 standar.
  • Ether dikirim ke kontrak crowdsale; token ERC-20 didistribusikan.
  • Semua token ERC-20 segera dapat didaftarkan di EtherDelta, IDEX, dan akhirnya Coinbase/Binance.
  • MetaMask dan MyEtherWallet dapat menampilkan saldo ERC-20 apa pun tanpa pekerjaan integrasi.

Penggalangan dana ICO melebihi $5,6 miliar pada 2017 dan $7,8 miliar pada 2018 — hampir semuanya menggunakan token ERC-20.

ERC-20 sebagai Primitif DeFi

Setiap protokol DeFi dibangun di sekitar ERC-20:

  • Pool AMM Uniswap adalah pasangan ERC-20.
  • cToken Compound, aToken Aave, BPT Balancer — semua ERC-20.
  • USDC, USDT, DAI — stablecoin ERC-20.
  • LINK, UNI, AAVE, COMP, CRV — semua token governance ERC-20.

Keterbatasan dan Standar Penerus

ERC-20 memiliki keterbatasan yang terdokumentasi:

  • Transfer ke kontrak: Fungsi transfer ERC-20 tidak memberi tahu kontrak penerima — token yang dikirim ke kontrak yang tidak menanganinya hilang permanen. Diperkirakan ratusan juta dolar telah hilang dengan cara ini.
  • ERC-777: Mengusulkan hook untuk notifikasi kirim/terima; kemudian ditemukan menciptakan kerentanan reentrancy dalam protokol DeFi.
  • ERC-4626: Standar vault bertokenisasi (2022); menstandarisasi wrapper ERC-20 yang menghasilkan yield.
  • EIP-2612: Menambahkan permit() untuk persetujuan gasless berbasis tanda tangan.

Fabian Vogelsteller dan Vitalik Buterin

Fabian Vogelsteller — pengembang perangkat lunak Jerman; bekerja di Ethereum Foundation 2015–2016. Mengajukan proposal ERC-20 asli. Juga menciptakan Ethereum JavaScript API (web3.js) dan blockchain LUKSO.

Vitalik Buterin — co-authored EIP-20 (dokumen EIP formal); memberikan tinjauan teknis dan ko-sponsorship untuk mengangkat standar.

Istilah Terkait

Referensi