Tekan ESC untuk menutup

Jaringan Palsu GIWA: 766 ETH Dicuri Lewat Bridge L2 Kripto

Bedah tuntas kasus penipuan canggih berkedok mainnet palsu GIWA yang terjadi pada 27/09/2026, merugikan pengguna sebesar 766 ETH, serta membuat bursa terdesentralisasi DYORSWAP jebol akibat integrasi RPC palsu.

Tipuan Tingkat Tinggi: Cara Memalsukan Blockchain

Lagi asyik scroll feed monitoring keamanan, eh... hampir aja kopi tumpah. Tujuh ratus enam puluh enam ETH. Ludes begitu saja tanpa jejak. Kalau sekadar phising klasik lewat library abal-abal atau eksploit smart contract pake flash loan—udah biasa saya temuin. Tapi skema yang ini jauh lebih licik. Pelaku berhasil menaikkan mainnet GIWA palsu, menyambungkannya ke DEX orang lain, dan menguras dana korban hingga jutaan dolar.

Mari kita bedah insiden ini sedetil mungkin, karena secara arsitektur ada banyak hal menarik yang patut dilihat dari sudut pandang engineering. Sebagai spesialis infosec sekaligus CTO aktif, saya jujur kagum sama kenekatan eksekusinya, walaupun tentu saja kita turut prihatin sama teman-teman di DYORSWAP.

Tunggu dulu, emangnya gimana caranya "memalsukan" blockchain Layer 2? Kedengarannya mustahil bagi orang awam, tapi di dunia EVM, sebuah jaringan itu bukanlah sihir—melainkan sekumpulan konvensi dan endpoint RPC.

Para pelaku mengambil source stack yang bersifat open-source (kemungkinan besar mem-fork sesuatu seperti OP Stack) lalu mendeploy nodenya. Tapi cuma bikin server aja nggak cukup; mereka harus bisa meyakinkan dompet (wallet) dan aplikasi bahwa ini adalah produk resmi dari bursa asal Korea Selatan, Upbit, yang mana mainnet GIWA-nya sendiri bahkan belum resmi diluncurkan.

Mereka melakukan hardcode Chain ID resmi ke dalam konfigurasi node—angka 9134, yang sebelumnya sudah didaftarkan oleh tim GIWA untuk blockchain masa depan mereka. Dan di sinilah celah keamanan terbesar dari seluruh ekosistem ini: dompet seperti MetaMask memverifikasi jaringan berdasarkan string konfigurasi dan ID, bukan lewat root of trust kriptografis ke pembuat aslinya.

Nah, di sinilah letak blunder yang bikin DYORSWAP kena batunya. Mereka memasukkan RPC palsu tersebut ke dalam infrastrukturnya karena tergiur jadi yang paling gercep mencicipi hype jaringan baru.

Tau nggak, dulu waktu saya masih sering audit smart contract sendirian, asumsinya selalu begini: oke lah front-end bisa dipalsukan, RPC bisa dicatut, tapi bridge smart contract itu udah harga mati—kan kodenya hidup di blockchain Ethereum! Dan di sinilah jebakan paling manis dari serangan ini dipasang.

Kenapa Pengguna Nggak Curiga Sama Sekali?

Pengguna nggak curiga karena jembatan (bridge) tersebut terlihat persis seperti antarmuka asli untuk memindahkan aset dari Ethereum ke jaringan L2 GIWA. Orang-orang menandatangani transaksi di MetaMask, mengirimkan ETH jerih payah mereka ke deposit smart contract di mainnet.

Secara teknis, kontrak tersebut sengaja dirancang oleh pelaku untuk meniru cara kerja locator deposit standar. Begitu transaksi divalidasi di mainnet, para penjahat langsung memegang kendali penuh atas dana tersebut. Sebagai gantinya, pengguna cuma dikasih token-token palsu tak berharga yang nangkring di saldo L2 buatan. Angka di layar terus bertambah, menciptakan ilusi bridge yang sukses, padahal ETH aslinya udah terbang ke dompet para dalang penipuan dan menguap lewat mixer. Total ada 1.335 alamat unik yang jadi korban, menyisakan sekitar 767.7 ETH di dalam perangkap. Hebatnya, mereka berhasil mencairkan bersih sekitar 766.3 ETH dengan biaya gas seminim mungkin.

Tim DYORSWAP bertindak sangat ksatria dengan menggelontorkan lebih dari 200 ETH dari kantong sendiri untuk ganti rugi. Salut banget sama komitmen mereka terhadap reputasi, meskipun lubang arsitektur terkait validasi koneksi RPC eksternal ini harus segera ditambal mati-matian.

Sekarang, mari kita masuk ke sesi praktisnya. Gimana caranya agar kita nggak jadi sponsor berikutnya buat para scammer, terutama kalau kalian hobi jadi early adopter blockchain baru? Nih, saya buatin script pengecekan pakai Python buat memverifikasi node RPC sebelum kalian nekat berinteraksi lewat wallet.

#!/usr/bin/env python3
import requests
def rpc_call(rpc_url, method, params=None):
    if params is None:
        params = []
    payload = {
        "jsonrpc": "2.0",
        "method": method,
        "params": params,
        "id": 1
    }
    response = requests.post(rpc_url, json=payload, timeout=10)
    response.raise_for_status()
    data = response.json()
    if "error" in data:
        raise RuntimeError(f"{method}: {data['error']}")
    return data.get("result")
def verify_evm_node(rpc_url, expected_chain_id):
    try:
        chain_id_hex = rpc_call(rpc_url, "eth_chainId")
        chain_id = int(chain_id_hex, 16)
        net_version = rpc_call(rpc_url, "net_version")
        client_version = rpc_call(rpc_url, "web3_clientVersion")
        block_number_hex = rpc_call(rpc_url, "eth_blockNumber")
        block_number = int(block_number_hex, 16)
        latest_block = rpc_call(
            rpc_url,
            "eth_getBlockByNumber",
            ["latest", False]
        )
        print("=" * 60)
        print(f"RPC URL         : {rpc_url}")
        print(f"Chain ID        : {chain_id}")
        print(f"Expected ChainID : {expected_chain_id}")
        print(f"Net Version     : {net_version}")
        print(f"Client Version   : {client_version}")
        print(f"Block Number     : {block_number}")
        if latest_block:
            print(f"Latest Block Hash: {latest_block.get('hash')}")
            print(f"Latest Block Num : {int(latest_block['number'], 16)}")
            print(f"Parent Hash      : {latest_block.get('parentHash')}")
            print(f"Timestamp        : {int(latest_block['timestamp'], 16)}")
        print("=" * 60)
        checks = []
        checks.append(chain_id == expected_chain_id)
        try:
            checks.append(int(net_version) == expected_chain_id)
        except Exception:
            checks.append(False)
        checks.append(block_number > 0)
        checks.append(
            latest_block is not None
            and latest_block.get("hash")
            and latest_block.get("parentHash")
            and latest_block.get("number")
        )
        if all(checks):
            print("VERIFICATION PASSED")
            return True
        print("VERIFICATION FAILED")
        return False
    except Exception as e:
        print(f"ERROR: {e}")
        return False
if __name__ == "__main__":
    verify_evm_node(
        "https://your-rpc-endpoint",
        9134
    )

Ingat aturan utamanya: jangan pernah percaya daftar jaringan dari akun Twitter yang meragukan atau DEX abal-abal, sampai proyek resminya mempublikasikan endpoint yang valid melalui saluran terverifikasi mereka sendiri (bukan di medsos, melainkan di dokumentasi atau website resmi berSertifikat SSL). Pihak Upbit sendiri sudah menegaskan bahwa mainnet mereka belum rilis, dan semua RPC yang beredar sekarang murni spekulasi alias scam murni.

Rangkum postingan blog ini dengan:

FAQ

Penipu menyebarkan node Layer 2 palsu berbasis EVM menggunakan Chain ID resmi 9134 milik GIWA yang belum dirilis, menghubungkannya ke kontrak bridge deposit palsu, lalu menguras dana 1.335 dompet pengguna yang terkelupas transaksi ETH asli.

Pertukaran terdesentralisasi tersebut memverifikasi keabsahan jaringan secara otomatis hanya berdasarkan pencocokan parameter Chain ID 9134, tanpa melakukan validasi kriptografi akar atau mengonfirmasi pengumuman resmi dari tim Upbit.

Pengembang dan pengguna wajib memverifikasi silang respons RPC melalui metode native net_version, memeriksa konsistensi header blok via eth_getBlockByNumber, serta mengandalkan dokumentasi resmi yang terverifikasi secara kriptografis.
Oleg Filatov

As the Chief Technology Officer at EXMON Exchange, I focus on building secure, scalable crypto infrastructure and developing systems that protect user assets and privacy.

With over 15 years in cybersecurity, blockchain, and DevOps, I specialize in smart contract analysis, threat modeling, and secure system architecture.

At EXMON Academy, I share practical insights from real-world...

...

Sampaikan pemikiran Anda

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *