Daftar Putih Token: Panduan Lengkap untuk Daftar yang Disetujui.

Strategi pembuatan daftar putih token utama untuk proyek mata uang kripto. Pelajari metode implementasi, praktik terbaik keamanan, dan kepatuhan terhadap peraturan untuk daftar alamat yang disetujui.

8 min read52 sections
CoinCryptoRank Editorial
Trusted analysis

Memahami Daftar Putih Token

Apa itu Daftar Putih?

Daftar putih membatasi interaksi token atau protokol ke alamat yang disetujui secara eksplisit, sehingga memerlukan pra-otorisasi untuk berpartisipasi.

Konsep Inti:

Daftar Hitam: Semua orang diperbolehkan KECUALI alamat yang dilarang
Daftar Putih: TIDAK ADA YANG diizinkan KECUALI alamat yang disetujui Status Default:
Daftar Hitam: Terbuka (permisif)
Daftar Putih: Tertutup (membatasi)

Mengapa Daftar Putih Itu Penting

1. Penjualan Token & ICO:

  • • Verifikasi investor terakreditasi
  • • Kepatuhan KYC/AML
  • • Batasan geografis
  • • Perlindungan anti-bot
  • • Mekanik peluncuran yang adil

2. Permen NFT:

  • • Hadiah pendukung awal
  • • Prioritas anggota komunitas
  • • Mencegah pemotongan bot
  • • Akses berjenjang
  • • Alokasi terjamin

3. Kepatuhan terhadap Peraturan:

  • • Kepatuhan terhadap hukum sekuritas
  • • Persyaratan investor terakreditasi
  • • Batasan geografis
  • • Verifikasi investor profesional

4. Protokol DeFi:

  • • Akses pengujian beta
  • • Manajemen risiko
  • • Peluncuran bertahap
  • • Fitur premium
  • • Pelayanan kelembagaan

5. Keamanan:

  • • Batasi permukaan serangan
  • • Kontrol kualitas peserta
  • • Mengurangi risiko penipuan
  • • Aktifkan mekanisme pemulihan

Teknis Implementasi

1. Metode Penyimpanan Dalam Rantai

Pendekatan Paling Sederhana: Memetakan Penyimpanan

Keuntungan:Verifikasi sederhana dan real-time, pembaruan mudah, transparansi on-chain

Kekurangan:Biaya gas tinggi, biaya penyimpanan berskala besar, mahal untuk daftar besar

Terbaik Untuk:Daftar putih kecil (<100 alamat), daftar sering berubah

Penerapan Daftar Putih Dasar:

// Penerapan daftar putih dasar
kontrak Daftar PutihToken {
  pemetaan(alamat =&gt; bool) masuk daftar putih publik;
  alamat admin publik;
  
  hanya pengubah yang Masuk Daftar Putih() {
    require(masuk daftar putih[msg.sender], "Tidak masuk daftar putih");
    _;
  }
  
  pengubah sajaAdmin() {
    require(pesan.pengirim == admin, "Bukan admin");
    _;
  }
  
  konstruktor() {admin = pesan.pengirim;
  }
  
  // Tambahkan satu alamat
  function addToWhitelist(alamat akun) hanya eksternalAdmin {
    masuk daftar putih[akun] = benar;
    emit AddedToWhitelist(akun);
  }
  
  // Tambahkan beberapa alamat (batch)
  fungsi addMultipleToWhitelist(alamat[] akun data panggilan) 
    eksternal 
    hanya Admin 
  {
    for (uint i = 0; i &lt; akun.panjang; i++) {
      masuk daftar putih[akun[i]] = benar;
      emit AddedToWhitelist(accounts[i]);
    }
  }
  
  // Contoh fungsi yang masuk daftar putih
  function mintTokens(uint256 amount) eksternal saja Masuk Daftar Putih {
    _mint(pesan.pengirim, jumlah);
  }
}

2. Metode Pohon Merkle

Hemat Gas untuk Daftar Besar

Keuntungan:Sangat hemat gas, skalanya mencapai jutaan, penyimpanan root tunggal

Kekurangan:Implementasi yang rumit, komputasi off-chain, kompleksitas UX

Terbaik Untuk:Daftar putih besar (1000+ alamat), jarang diperbarui

Implementasi Pohon Merkle:

impor "@openzeppelin/contracts/utils/cryptography/MerkleProof.sol";kontrak MerkleWhitelist {
  bytes32 merkleRoot publik;
  pemetaan(alamat =&gt; bool) publik telahDiklaim;
  
  alamat admin publik;
  
  konstruktor(bytes32 _merkleRoot) {
    merkleRoot = _merkleRoot;
    admin = pesan.pengirim;
  }
  
  // Perbarui root merkle (daftar putih baru)
  fungsi updateMerkleRoot(bytes32 _merkleRoot) eksternal {
    require(pesan.pengirim == admin, "Bukan admin");
    merkleRoot = _merkleRoot;
  }
  
  // Verifikasi keanggotaan daftar putih
  fungsi verifikasiDaftar Putih(
    bytes32[] bukti data panggilan,
    akun alamat
  ) tampilan publik kembali (bool) {
    bytes32 leaf = keccak256(abi.encodePacked(akun));
    return MerkleProof.verify(bukti, merkleRoot, daun);
  }
  
  // Mint dengan verifikasi daftar putih
  fungsi whitelistMint(bytes32[] bukti panggilandata) eksternal {
    require(!hasClaimed[msg.sender], "Sudah diklaim");
    memerlukan(
      verifikasiDaftar Putih(bukti, pesan.pengirim),
      "Bukti merkle tidak valid"
    );
    
    hasClaimed[pesan.pengirim] = benar;
    _mint(pesan.pengirim, 1);
  }
}

Menghasilkan Pohon Merkle (Off-Chain):

const { MerkleTree } = memerlukan('merkletreejs');
const keccak256 = require('keccak256');// Daftar putih alamat
daftar putih const = [
  '0x1234...', 
  '0x5678...',
  '0x9abc...',
  // ... ribuan lainnya
];// Membuat simpul daun
const leafNodes = daftar putih.peta(addr =&gt; 
  keccak256(addr)
);// Buat Pohon Merkle
const merkleTree = MerkleTree baru(leafNodes, keccak256, {
  sortPairs: benar
});// Dapatkan root (simpan dalam kontrak)
const rootHash = merkleTree.getRoot();// Hasilkan bukti untuk alamat tertentu
fungsi getProof(alamat) {
  const leaf = keccak256(alamat);
  bukti const = merkleTree.getHexProof(leaf);
  bukti pengembalian;
}

3. Metode Tanda Tangan Digital

Otorisasi Off-Chain

Keuntungan:Tidak ada penyimpanan on-chain, persetujuan dinamis, logika fleksibel, menjaga privasi

Kekurangan:Penanda tangan terpusat, diperlukan backend, risiko kompromi tanda tangan

Terbaik Untuk:Daftar putih dinamis, verifikasi kompleks, persyaratan privasi

Pelaksanaan Verifikasi Tanda Tangan:

kontrak Tanda TanganDaftar Putih {
  alamat penandatangan publik;
  pemetaan(alamat =&gt; bool) hasMinted publik;
  
  konstruktor(alamat _penandatangan) {
    penandatangan = _penandatangan;
  }
  
  // Verifikasi tanda tangan dari penandatangan resmi
  fungsi verifikasiTanda Tangan(
    alamat akun,
    tanda tangan memori byte
  ) tampilan publik kembali (bool) {
    bytes32 messageHash = keccak256(abi.encodePacked(akun));
    bytes32 ethSignedMessageHash = getEthSignedMessageHash(messageHash);
    
    return recoverySigner(ethSignedMessageHash, tanda tangan) == penanda tangan;
  }
  
  fungsi getEthSignedMessageHash(bytes32 messageHash)
    batin
    murni
    kembali (byte32)
  {
    kembali keccak256(
      abi.encodePacked("\x19Pesan yang Ditandatangani Ethereum:\n32", messageHash)
    );
  }
  
  fungsi memulihkan Penandatangan(
    bytes32 ethSignedMessageHash,
    tanda tangan memori byte
  ) pengembalian murni internal (alamat) {
    (bytes32 r, bytes32 s, uint8 v) = splitSignature(tanda tangan);
    kembalikan ecrecover(ethSignedMessageHash, v, r, s);
  }
  
  fungsi splitSignature (tanda memori byte)
    batin
    murni
    pengembalian (bytes32 r, bytes32 s, uint8 v)
  {
    require(sig.length == 65, "Panjang tanda tangan tidak valid");
    
    perakitan {
      r := mload(tambahkan(sig, 32))
      s := mload(tambahkan(sig, 64))
      v := byte(0, mload(tambahkan(sig, 96)))
    }
  }
  
  // Mint dengan verifikasi tanda tangan
  fungsi tanda tanganMint(tanda tangan memori byte) eksternal {
    require(!hasMinted[msg.sender], "Sudah dicetak");
    memerlukan(
      verifikasiTanda Tangan(pesan.pengirim, tanda tangan),
      "Tanda tangan tidak valid"
    );
    
    hasMinted[pesan.pengirim] = benar;
    _mint(pesan.pengirim, 1);
  }
}

4. Gerbang NFT/Token

Daftar Putih Berbasis Kepemilikan

Keuntungan:Verifikasi otomatis, pembangunan komunitas, nilai pasar sekunder

Kekurangan:Akses yang dapat dialihkan, manipulasi pasar, ketergantungan eksternal

Terbaik Untuk:Hadiah komunitas, akses DAO, manfaat berjenjang

Implementasi Gerbang NFT:

antarmuka IERC721 {
  fungsi balanceOf(pemilik alamat) tampilan eksternal kembali (uint256);
}kontrak Daftar Putih NFTGated {
  IERC721 publik memerlukan NFT;
  
  konstruktor(alamat _nftAddress) {
    diperlukanNFT = IERC721(_nftAddress);
  }
  
  pengubah sajaNFTHholder() {
    memerlukan(
      diperlukanNFT.balanceOf(msg.sender) &gt; 0,
      "Harus memiliki NFT yang diperlukan"
    );
    _;
  }
  
  // Akses dibatasi untuk pemegang NFT
  fungsi hak istimewaMint() hanya eksternalNFTHolder {
    _mint(pesan.pengirim, 1);
  }
}

Kasus Penggunaan di Dunia Nyata

Daftar Putih ICO/IDO

Alur Proses:

Tahap Aplikasi (1-2 minggu): Aplikasi pengguna, verifikasi KYC/AML, pemeriksaan investor terakreditasi, penyaringan geografis

Fase Seleksi: Meninjau lamaran, siapa cepat dia dapat, ATAU berdasarkan lotere ATAU berdasarkan kriteria

Publikasi Daftar Putih: Hasilkan akar Merkle, terapkan kontrak, umumkan ke komunitas

Fase Penjualan: Alamat yang masuk daftar putih berpartisipasi, alamat yang tidak masuk daftar putih diblokir, akses terbatas waktu

Fase Publik (opsional): Terbuka untuk semua orang setelah periode daftar putih, sisa alokasi

Daftar Putih NFT Mint

Akses Berjenjang:

Tingkat 1 - VIP (24 jam lebih awal):

Tim inti, moderator Discord, pendukung awal, kontributor khusus

Tingkat 2 - Daftar Putih (12 jam lebih awal):

Anggota komunitas aktif, keterlibatan media sosial, pemenang kompetisi, proyek mitra

Tingkat 3 - Daftar yang diizinkan (6 jam lebih awal):

Pengguna terdaftar, verifikasi dasar, pelanggan email

Tingkat 4 - Publik:

Siapapun, yang datang lebih dulu dilayani, biasanya bahan bakarnya lebih tinggi

Implementasi NFT Mint Berjenjang:

kontrak BerjenjangNFTMint {
  bytes32 vipMerkleRoot publik;
  bytes32 daftar putih publikMerkleRoot;
  bytes32 daftar izin publikMerkleRoot;
  
  uint256 public vipStartTime = 1700000000;
  uint256 public whitelistStartTime = vipStartTime + 24 jam;
  uint256 publicallowlistStartTime = whitelistStartTime + 12 jam;
  uint256 public publicStartTime = AllowlistStartTime + 6 jam;
  
  pemetaan(alamat =&gt; uint256) public mintedAmount;
  uint256 publik maxPerWallet = 3;
  
  fungsi vipMint(jumlah uint256, bytes32[] bukti panggilan data) eksternal {
    require(block.timestamp &gt;= vipStartTime, "Terlalu dini");
    memerlukan(
      verifikasiMerkleProof(bukti, vipMerkleRoot, pesan.pengirim),
      "Bukan VIP"
    );
    membutuhkan(mintedAmount[msg.sender] + jumlah &lt;= maxPerWallet);
    
    mintedAmount[pesan.pengirim] += jumlah;
    _mint(pesan.pengirim, jumlah);
  }
  
  function whitelistMint(jumlah uint256, bytes32[] bukti panggilan data) eksternal {
    require(block.timestamp &gt;= whitelistStartTime, "Terlalu dini");
    memerlukan(
      verifikasiMerkleProof(bukti, daftar putihMerkleRoot, pesan.pengirim),
      "Tidak masuk daftar putih"
    );
    membutuhkan(mintedAmount[msg.sender] + jumlah &lt;= maxPerWallet);
    
    mintedAmount[pesan.pengirim] += jumlah;
    _mint(pesan.pengirim, jumlah);
  }
  
  fungsi publicMint(jumlah uint256) hutang eksternal {
    require(block.timestamp &gt;= publicStartTime, "Terlalu dini");
    require(pesan.nilai &gt;= jumlah * PUBLIC_PRICE);
    membutuhkan(mintedAmount[msg.sender] + jumlah &lt;= maxPerWallet);
    
    mintedAmount[pesan.pengirim] += jumlah;
    _mint(pesan.pengirim, jumlah);
  }
}

Kepatuhan terhadap Peraturan

Penawaran Token Keamanan (STO):

Persyaratan Kepatuhan:

  • • Verifikasi investor terakreditasi ($1M+ kekayaan bersih atau $200K+ pendapatan)
  • • Batasan geografis (Reg S, Reg D)
  • • Periode penguncian
  • • Pembatasan transfer
  • • Jalur audit

Akses Protokol DeFi

Pengujian Beta:

Kasus Penggunaan:Peluncuran bertahap, pembatasan risiko, program bug bounty, fitur premium, layanan institusional

Praktik Terbaik

Untuk Proyek

1. Komunikasi yang Jelas:

Informasi Penting: Kriteria daftar putih, proses aplikasi, metode seleksi, jangka waktu, batas alokasi, persyaratan teknis

2. Seleksi Adil:

Kriteria transparan, tindakan anti-sybil, pendekatan yang mengutamakan komunitas, undian untuk kelebihan permintaan, proses banding

3. Keamanan:

Kontrak audit, kunci admin aman, uji di testnet, verifikasi pohon merekle, pembatasan tarif, perlindungan terdepan

4. Pengalaman Pengguna:

Proses verifikasi sederhana, instruksi jelas, saluran dukungan, alat pembuatan bukti, antarmuka pemeriksaan status

5. Kepatuhan Hukum:

KYC/AML jika diperlukan, kepatuhan hukum sekuritas, batasan geografis, persyaratan layanan, tinjauan hukum

Untuk Pengguna

Tip Verifikasi:

  • • Ikuti saluran resmi saja
  • • Selesaikan KYC dengan jujur
  • • Memenuhi tenggat waktu
  • • Memberikan informasi yang akurat
  • • Simpan bukti permohonan
  • • Verifikasi alamat kontrak

Keamanan:

  • • Jangan pernah membagikan kunci pribadi
  • • Verifikasi URL situs web
  • • Periksa alamat kontrak
  • • Waspada terhadap phising
  • • Gunakan dompet perangkat keras
  • • Tes dengan jumlah kecil

Kesalahan Umum:

  • • ❌ Batas waktu pendaftaran tidak ada
  • • ❌ KYC tidak lengkap
  • • ❌ Alamat dompet salah
  • • ❌ Tidak memenuhi kriteria
  • • ❌ Terjerat penipuan
  • • ❌ Menggunakan alamat pertukaran

Perbandingan: Metode

Metode Biaya Gas Skalabilitas Fleksibilitas Keamanan Terbaik Untuk
Pemetaan Tinggi Buruk Luar Biasa Bagus Daftar kecil
Pohon Merkle Rendah Luar BiasaBuruk Bagus Daftar besar
Tanda tangan Rendah Luar Biasa Luar Biasa Sedang Daftar dinamis
NFT/Token Rendah Luar Biasa Bagus Bagus Gerbang komunitas

Tren Masa Depan

1. Integrasi Identitas Terdesentralisasi

Daftar putih Berdaulat Sendiri dengan kredensial portabel, verifikasi menjaga privasi, daftar putih lintas platform

2. Seleksi Bertenaga AI

Kurasi otomatis dengan analisis perilaku, penilaian kontribusi, deteksi sybil, distribusi adil

3. Daftar Putih Lintas Protokol

Akses yang dapat dioperasikan dengan satu daftar putih untuk berbagai penggunaan, portabilitas reputasi, kemitraan ekosistem

4. Teknologi Regulasi

Otomatisasi kepatuhan dengan pemeriksaan yurisdiksi real-time, daftar putih dinamis, pelaporan peraturan

Kesimpulan

Daftar putih token memberikan kontrol akses penting untuk proyek mata uang kripto, memungkinkan kepatuhan terhadap peraturan, distribusi yang adil, pembangunan komunitas, dan keamanan. Dari penyimpanan pemetaan sederhana hingga pohon Merkle yang canggih dan verifikasi tanda tangan, pilihan penerapan bergantung pada skala, kebutuhan fleksibilitas, dan pertimbangan gas.

Poin Penting:

  • • Pilih metode yang tepat: Pemetaan untuk daftar kecil/dinamis, Merkle untuk daftar besar/statis, tanda tangan untuk fleksibilitas
  • • Keseimbangan akses dan keadilan: Kriteria yang jelas, seleksi yang transparan, pendekatan yang mengutamakan masyarakat
  • • Prioritaskan keamanan: Audit kontrak, mengamankan kunci admin, melindungi data pengguna
  • • Optimalkan UX: Proses sederhana, instruksi jelas, alat bermanfaat
  • • Tetap patuh: Ikuti peraturan, terapkan KYC bila diperlukan, dokumentasikan semuanya

Seiring berkembangnya mata uang kripto, daftar putih akan menjadi lebih canggih, otomatis, dan menjaga privasi. Proyek yang menerapkan whitelisting dengan bijaksana – menyeimbangkan kontrol akses dengan keadilan, keamanan dengan kegunaan, dan kepatuhan terhadap desentralisasi – akan membangun komunitas yang lebih kuat dan peluncuran token yang lebih sukses.

Pertanyaan yang Sering Diajukan

T: Mengapa proyek menggunakan daftar putih dan bukan penjualan terbuka?

A: Daftar putih memungkinkan: (1) Kepatuhan terhadap peraturan (investor terakreditasi, pembatasan geografis), (2) Pencegahan bot, (3) Distribusi yang adil kepada komunitas, (4) Peluncuran terkendali untuk keamanan.

T: Bagaimana cara saya masuk daftar putih untuk pembuatan NFT?

A: Biasanya: (1) Bergabung dengan proyek Discord/media sosial, (2) Terlibat dengan komunitas, (3) Ikuti instruksi aplikasi, (4) Selesaikan verifikasi (KYC jika diperlukan), (5) Kirim alamat dompet, (6) Tunggu konfirmasi. Setiap proyek berbeda.

T: Apakah daftar putih dapat diubah setelah penerapan?

A : Tergantung implementasinya. Penyimpanan pemetaan: ya (jika kontrol admin disertakan). Pohon Merkle: memerlukan pembaruan hash root. Tanda tangan: ya (dikontrol backend). NFT-gating: otomatis berdasarkan kepemilikan.

T: Apakah tempat yang masuk daftar putih dapat dialihkan?

A: Biasanya tidak ada daftar putih berbasis alamat (terkait dengan dompet tertentu). Pengecualian: Akses NFT/token-gated dapat dialihkan dengan kepemilikan NFT/token.

T: Berapa perbedaan biaya bahan bakar antara metode daftar putih?

A: Pemetaan: 20.000+ gas per penambahan alamat. Merkle: ~3.000-5.000 gas untuk verifikasi (konstan terlepas dari ukuran daftar putihnya). Tanda tangan: ~3,000-5,000 gas untuk verifikasi. Penghematan bahan bakar meningkat secara dramatis seiring dengan besarnya daftar.

Live Market Data

Track 10,000+ crypto assets with real-time prices

Arbitrage Scanner

Find price differences across 60+ exchanges

Crypto Converter

Convert between 200+ assets with live rates