L2 & Scaling Solutions — Web3

L2 & Scaling Solutions Ethereum mainnet (L1) memproses ~15 transaksi per detik dengan gas mahal. Layer 2 solutions memindahkan eksekusi ke chain terpisah…

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

TipeContohMekanisme
Optimistic RollupsOptimism, Arbitrum, BaseAssume valid, challenge period (7 hari)
ZK RollupszkSync, StarkNet, Scroll, Polygon zkEVMZero-knowledge proof (math guarantee)
SidechainsPolygon PoSSeparate 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

Yang akan kamu pelajari