Membongkar Mekanisme Lightning Network Bukan Sekadar Magic

Membongkar Mekanisme Lightning Network Bukan Sekadar Magic

Jujur aja, saya sempet penasaran banget dan akhirnya mutusin buat bedah daleman cara kerja Lightning Network (LN). Di luar sana, narasinya selalu bilang "LN bikin Bitcoin murah dan instan," tapi jarang banget ada yang berani jelasin teknisnya secara gamblang tanpa analogi yang malah bikin pusing.

Sebagai developer, saya butuh tahu level kodenya. Kalau Bitcoin katanya nggak punya smart contract sefleksibel Ethereum, terus gimana caranya LN bisa jalan tanpa ada yang bawa kabur duit di tengah jalan?

Setelah saya ulik sampai ke level OpCodes, saya nemuin aha moment yang bikin saya sadar kalau sistem ini tuh beneran arsitektur logika yang sangat presisi. Bukan sekadar magic. Ini beberapa poin teknis yang akhirnya saya pahami.

1. Bitcoin Itu Punya Smart Contract (Tapi Bedanya Jauh)

Awalnya saya mikir, "Mana bisa BTC jalanin kontrak kalau bahasanya kaku?" Ternyata, Bitcoin memanfaatkan bahasanya sendiri yaitu Bitcoin Script. Nggak ada Virtual Machine kayak EVM yang ribet, tapi cukup pakai skrip berbasis stack buat bikin syarat penarikan saldo (UTXO).

LN bisa hidup karena dua komponen utama ini bekerja bareng

  • OP_CHECKMULTISIG – Ini dipakai buat ngunci dana di alamat 2-of-2. Dana di dalam channel nggak bakal bisa gerak kalau lu dan lawan transaksi lu nggak ngasih tanda tangan digital bareng-bareng.
  • HTLC (Hash Time-Locked Contract) – Ini jantungnya buat routing. Duit lu dikunci pakai hash rahasia (OP_SHA256). Si penerima cuma bisa narik duitnya kalau dia punya kuncinya, atau duit bakal balik otomatis kalau waktunya habis (OP_CHECKLOCKTIMEVERIFY).

2. Kapasitas Channel Itu Fix, Gak Bisa Melar

Ini nih yang sempet bikin saya miskonsepsi lumayan lama. Saldo di dalam sebuah channel itu mutlak statis. Kalau dari awal saya buka channel dengan kapasitas 1 BTC, ya selamanya jalur itu cuma mentok nampung 1 BTC. Nggak mungkin secara matematis lu bisa punya saldo 2 BTC di dalam jalur yang ukurannya dari awal cuma dibikin 1 BTC. Ibarat lu punya gelas 1 liter, lu paksa tuang 2 liter air ya pasti tumpah. Kalau lawan transaksi mau kirim duit lagi ke saya, saya wajib ngosongin space di sisi saya dulu—entah dengan kirim balik ke dia atau terusin ke channel lain.

3. Realita Routing Pergeseran Saldo yang Bikin Pusing

Nah, kalau kita jadi node perantara (misalnya transaksi dari C ngelewatin saya buat ke B), yang terjadi di dalam mesin itu adalah pertukaran saldo secara atomik.

Waktu saya nerusin 1 BTC dari si C ke si B, yang bener-bener kejadian adalah saya ngelepas 1 BTC milik saya di channel arah B, tapi di detik yang sama, saya dapet 1 BTC dari si C di channel arah C.

Makanya kadang saldo di satu channel bisa kelihatan abis dan bikin panik. Padahal duitnya nggak ke mana-mana, total kekayaan saya tetep sama, cuma lokasinya aja yang geser ke channel sebelah.

4. Inbound Liquidity Tembok Buat User Baru

Ini fakta teknis terakhir yang menurut saya paling krusial. Kalau lu baru bikin wallet, saldo lu nol dan lu belum punya channel sama sekali, lu nggak bakal bisa nerima transferan LN.

Biar bisa nerima duit, lu butuh yang namanya Inbound Liquidity. Harus ada orang lain (atau pihak ketiga/LSP) yang mau repot-repot ngunci BTC mereka di sebuah channel yang jalurnya mengarah ke lu. Kalau nggak ada ruang kosong yang disiapin buat nampung duit dari luar, transaksi apa pun bakal mental karena jalurnya mampet dari sananya.

Kesimpulannya

Eksplorasi ini bikin saya sadar satu hal Lightning Network itu emang sengaja didesain sebagai infrastruktur buat ekonomi sirkulasi, bukan buat transfer asal-asalan.

Kalau lu cuma mau mindahin duit dari exchange ke cold wallet dan disimpen bertahun-tahun, pake LN malah bikin lu boncos fee dua kali. Tapi kalau lu mau bikin aplikasi yang butuh transaksi mikro ribuan kali per detik tanpa harus spam jaringan utama, LN adalah alat yang paling masuk akal buat dipake.

Foto Profil Alfiansa

Written by

Alfiansa

Just someone that loves coding

Share this article