L2 & Scaling Solutions
Ethereum mainnet (L1) memproses ~15 transaksi per detik dengan gas mahal. Layer 2 solutions memindahkan eksekusi ke chain terpisah sambil tetap memanfaatkan keamanan Ethereum.
Mengapa L2?
// Biaya transaksi di Ethereum L1 (peak times):
// Simple transfer: ~$5-50
// Uniswap swap: ~$20-200
// NFT mint: ~$50-500
// Biaya yang sama di L2:
// Simple transfer: ~$0.01-0.10
// Uniswap swap: ~$0.05-0.50
// NFT mint: ~$0.10-1.00
// 100-1000x lebih murah!
Tipe L2 Solutions
| Tipe | Contoh | Mekanisme |
|---|---|---|
| Optimistic Rollups | Optimism, Arbitrum, Base | Assume valid, challenge period (7 hari) |
| ZK Rollups | zkSync, StarkNet, Scroll, Polygon zkEVM | Zero-knowledge proof (math guarantee) |
| Sidechains | Polygon PoS | Separate consensus (kurang secure) |
Optimistic Rollups
Asumsi: semua transaksi valid. Jika ada fraud, siapa pun bisa submit fraud proof dalam 7 hari.
// Flow Optimistic Rollup:
// 1. User submit transaksi ke L2 sequencer
// 2. Sequencer batch transaksi dan post ke L1 (calldata)
// 3. Challenge period 7 hari dimulai
// 4. Jika tidak ada challenge → transaksi final
// 5. Jika ada fraud proof → transaksi di-revert
// Pro: EVM-compatible (deploy Solidity langsung)
// Con: 7 hari withdrawal delay ke L1
ZK Rollups
Setiap batch transaksi disertai validity proof (zero-knowledge proof) yang membuktikan semua transaksi valid secara matematis.
// Flow ZK Rollup:
// 1. User submit transaksi ke L2
// 2. Prover menghitung ZK proof untuk batch transaksi
// 3. Proof + state diff di-post ke L1
// 4. L1 contract verify proof (O(1) verification)
// 5. Transaksi langsung final (tidak perlu challenge period)
// Pro: Instant finality, lebih secure
// Con: ZK proving lambat, some EVM incompatibility
Deploy ke L2
// hardhat.config.ts — Tambah L2 network
const config = {
networks: {
optimism: {
url: "https://mainnet.optimism.io",
accounts: [PRIVATE_KEY],
},
arbitrum: {
url: "https://arb1.arbitrum.io/rpc",
accounts: [PRIVATE_KEY],
},
base: {
url: "https://mainnet.base.org",
accounts: [PRIVATE_KEY],
},
},
};
// Deploy sama persis seperti L1!
// npx hardhat run scripts/deploy.ts --network optimism
Bridging
// User perlu "bridge" aset dari L1 ke L2 dan sebaliknya
// L1 → L2 (deposit): Biasanya cepat (~10 menit)
// L2 → L1 (withdrawal): Optimistic = 7 hari, ZK = ~jam
// Official bridges:
// - Optimism Bridge: app.optimism.io/bridge
// - Arbitrum Bridge: bridge.arbitrum.io
// - Base Bridge: bridge.base.org
// Third-party bridges (lebih cepat, ada fee):
// - Hop Protocol, Across, Stargate
Tips Developer
- Test di L2 testnet terlebih dahulu (Optimism Sepolia, Arbitrum Sepolia)
- Kontrak Solidity bisa deploy ke L2 tanpa perubahan (EVM-compatible)
- Gunakan
chainIduntuk detect network - Perhatikan perbedaan gas pricing di L2 (L1 data cost + L2 execution cost)
- Pertimbangkan multi-chain deployment strategy