Cara Kerja Blockchain: Penjelasan Langkah demi Langkah
Memahami cara kerja blockchain mengharuskan kita mengikuti sebuah transaksi dari awal hingga konfirmasi akhir. Meskipun teknologi dasarnya melibatkan kriptografi canggih dan rekayasa sistem terdistribusi, proses intinya elegan dalam kesederhanaannya: transaksi dibuat, disiarkan, diverifikasi, dikelompokkan ke dalam blok, lalu dicatat permanen pada buku besar bersama.
Panduan ini membahas setiap langkah proses blockchain dengan menggunakan Bitcoin sebagai contoh utama, sambil mencatat perbedaan pada blockchain lain seperti Ethereum. Di akhir, Anda akan memahami dengan tepat apa yang terjadi sejak Anda menekan "Send" sampai transaksi Anda menjadi bagian blockchain yang tidak dapat dibatalkan.
Langkah 1: Pembuatan Transaksi
Setiap interaksi blockchain dimulai dengan membuat transaksi. Saat Anda memutuskan mengirim cryptocurrency, perangkat lunak wallet Anda menyusun pesan transaksi yang berisi beberapa informasi.
Input dan Output Transaksi
Bitcoin menggunakan model Unspent Transaction Output (UTXO). Anggap UTXO sebagai lembar uang digital di wallet Anda. Jika Anda menerima 0.5 BTC dan 0.3 BTC dalam dua transaksi terpisah, Anda memiliki dua UTXO dengan total 0.8 BTC. Ketika Anda ingin mengirim 0.6 BTC, wallet Anda:
- Memilih UTXO yang bersama-sama mencakup jumlah tersebut (0.5 + 0.3 = 0.8 BTC).
- Membuat transaksi dengan alamat penerima sebagai satu output (0.6 BTC).
- Membuat output kembalian ke alamat Anda sendiri (0.2 BTC dikurangi biaya transaksi).
- UTXO yang dipilih menjadi "spent" dan output baru menjadi UTXO baru.
Ethereum menggunakan model berbasis akun yang berbeda, lebih mirip rekening bank tradisional. Setiap alamat memiliki saldo, dan transaksi hanya mendebit pengirim serta mengkredit penerima.
Tanda Tangan Digital
Sebelum transaksi dapat disiarkan, transaksi harus ditandatangani dengan private key milik pengirim. Di sinilah keamanan seed phrase Anda menjadi sangat penting — private key Anda diturunkan dari seed phrase, dan siapa pun yang memilikinya dapat menandatangani transaksi atas nama Anda.
Proses penandatanganan bekerja sebagai berikut:
- Data transaksi di-hash menggunakan SHA-256 (Bitcoin) atau Keccak-256 (Ethereum).
- Hash ditandatangani menggunakan private key pengirim melalui algoritma ECDSA.
- Tanda tangan digital yang dihasilkan ditambahkan ke transaksi.
- Siapa pun dapat memverifikasi tanda tangan menggunakan public key pengirim, memastikan bahwa transaksi diotorisasi oleh pemilik key tanpa perlu melihat private key itu sendiri.
Ini adalah prinsip fundamental: penandatanganan membuktikan kepemilikan. Private key Anda tidak pernah meninggalkan perangkat Anda selama proses ini. Hanya tanda tangan — yang tidak bisa digunakan untuk merekayasa balik private key — yang dibagikan ke jaringan.
Langkah 2: Penyiaran Transaksi
Setelah ditandatangani, transaksi disiarkan ke jaringan blockchain. Wallet Anda terhubung ke satu atau lebih node (komputer yang menjalankan perangkat lunak blockchain) dan mengirim data transaksi.
Propagasi Peer-to-Peer
Jaringan blockchain beroperasi dengan topologi peer-to-peer (P2P). Tidak ada server pusat. Ketika sebuah node menerima transaksi Anda, node tersebut melakukan pemeriksaan validasi awal dan, jika valid, meneruskannya ke peer yang terhubung. Peer tersebut memvalidasi dan meneruskan lagi. Dalam hitungan detik, transaksi Anda menyebar ke seluruh jaringan — biasanya mencapai mayoritas node dalam 2 hingga 15 detik.
Mempool
Setelah propagasi, transaksi Anda masuk ke mempool (memory pool) — area tunggu transaksi yang belum dikonfirmasi yang dipelihara oleh setiap node. Mempool bukan satu pool bersama; setiap node memelihara versinya sendiri, yang bisa sedikit berbeda karena latensi jaringan dan kebijakan masing-masing node.
Transaksi dalam mempool diurutkan terutama berdasarkan fee rate (satoshi per byte di Bitcoin, atau gas price di Ethereum). Miner dan validator memilih transaksi dengan biaya tertinggi terlebih dahulu karena ini memaksimalkan pendapatan mereka. Selama periode permintaan jaringan tinggi, mempool bisa tumbuh signifikan, dan transaksi dengan biaya rendah bisa menunggu berjam-jam bahkan berhari-hari untuk dikonfirmasi.
Biaya Transaksi
Biaya transaksi memiliki dua tujuan:
- Memberi insentif kepada miner/validator untuk memasukkan transaksi Anda ke dalam blok.
- Mencegah spam dengan membuat pembanjiran jaringan oleh transaksi tak bermakna menjadi mahal.
Di Bitcoin, biaya dihitung berdasarkan ukuran transaksi dalam byte (bukan jumlah yang dikirim). Transaksi yang mengirim 10 BTC bisa memiliki biaya yang sama dengan transaksi 0.001 BTC jika ukuran byte-nya sama.
Di Ethereum, biaya mengikuti model EIP-1559 dengan base fee (dibakar) dan priority tip (dibayarkan ke validator). Base fee menyesuaikan secara dinamis berdasarkan kepadatan jaringan.
Langkah 3: Validasi Transaksi
Sebelum transaksi dapat dimasukkan ke dalam blok, node memvalidasinya secara independen terhadap aturan protokol. Validasi ini sangat penting untuk menjaga integritas blockchain.
Pemeriksaan Validasi
Setiap node melakukan beberapa pemeriksaan pada setiap transaksi yang diterimanya:
- Validitas sintaksis: Apakah transaksi diformat dengan benar sesuai spesifikasi protokol?
- Verifikasi tanda tangan: Apakah tanda tangan digital cocok dengan public key pengirim? Ini memastikan transaksi diotorisasi oleh pemilik private key.
- Pemeriksaan double-spend: Apakah UTXO yang dirujuk (Bitcoin) masih belum terpakai, atau apakah akun (Ethereum) memiliki saldo yang cukup?
- Validasi script: Apakah script penguncian dan pembukaan berjalan dengan benar? (Bitcoin menggunakan bahasa scripting bernama Script untuk mendefinisikan kondisi pembelanjaan.)
- Kecukupan biaya: Apakah transaksi menyertakan biaya yang cukup untuk memenuhi ambang relay minimum node?
- Batas ukuran: Apakah transaksi berada dalam batas ukuran protokol?
Jika transaksi gagal pada salah satu pemeriksaan ini, transaksi akan ditolak dan tidak diteruskan ke node lain. Validasi terdesentralisasi inilah yang membuat blockchain tahan terhadap transaksi curang — setiap node memverifikasi setiap transaksi secara independen terhadap kumpulan aturan yang sama.
Langkah 4: Konstruksi Blok
Miner (dalam sistem proof-of-work) atau validator (dalam sistem proof-of-stake) mengumpulkan transaksi tervalidasi dari mempool dan menyusunnya menjadi kandidat blok.
Struktur Blok
Blok tipikal berisi:
Block Header:
- Version: Versi protokol.
- Previous block hash: Hash SHA-256 dari header blok sebelumnya. Inilah yang membentuk "rantai" pada blockchain.
- Merkle root: Satu hash yang merangkum semua transaksi dalam blok.
- Timestamp: Perkiraan waktu blok dibuat.
- Difficulty target (PoW): Ambang batas yang harus dilampaui ke bawah oleh hash blok agar blok valid.
- Nonce (PoW): Penghitung yang ditingkatkan miner saat mencari hash yang valid.
Block Body:
- Transaction count: Jumlah transaksi yang disertakan.
- Transaction list: Data transaksi sebenarnya.
- Coinbase transaction: Transaksi pertama khusus yang membuat koin baru sebagai hadiah blok dan mengumpulkan semua biaya transaksi. Ini satu-satunya transaksi dalam blok yang tidak memiliki input — ia menciptakan mata uang baru dari nol, sesuai jadwal penerbitan protokol.
Seleksi Transaksi
Miner biasanya memilih transaksi untuk memaksimalkan pendapatan, memprioritaskan fee rate tertinggi. Namun, mereka juga harus mematuhi batas ukuran blok (bobot blok 4 MB di Bitcoin) atau batas gas blok (sekitar 30 juta gas di Ethereum). Ini menciptakan pasar alami untuk ruang blok — saat permintaan tinggi, pengguna bersaing dengan menawarkan biaya lebih tinggi.
Beberapa miner dapat memiliki kebijakan tambahan, seperti memasukkan jenis transaksi tertentu tanpa memandang biaya atau mengecualikan transaksi yang berinteraksi dengan alamat yang dikenai sanksi.
Konstruksi Merkle Tree
Merkle tree dibangun dengan berulang kali meng-hash pasangan hash transaksi:
- Setiap transaksi di-hash secara individual.
- Hash yang berdekatan dipasangkan lalu di-hash bersama.
- Proses ini diulang ke atas pohon hingga tersisa satu hash: Merkle root.
Merkle root memberikan ringkasan kompak dari semua transaksi. Jika ada transaksi yang diubah, Merkle root berubah, sehingga manipulasi langsung terdeteksi. Struktur ini juga memungkinkan Simplified Payment Verification (SPV), di mana klien ringan dapat memverifikasi inklusi transaksi tanpa mengunduh blok penuh.
Langkah 5: Konsensus dan Produksi Blok
Kandidat blok harus melewati mekanisme konsensus jaringan agar diterima oleh jaringan. Di sinilah blockchain yang berbeda mulai sangat berbeda.
Proof of Work (Bitcoin)
Dalam proof-of-work, miner bersaing menemukan nilai nonce yang jika digabungkan dengan data header blok lalu di-hash menghasilkan hash di bawah difficulty target jaringan. Ini pada dasarnya pencarian brute-force:
- Miner menyusun header blok dengan semua field yang diperlukan.
- Miner meng-hash header menggunakan SHA-256 (diterapkan dua kali di Bitcoin).
- Jika hash hasilnya di bawah difficulty target, blok valid.
- Jika tidak, miner meningkatkan nonce dan mencoba lagi.
- Proses ini berulang miliaran kali per detik di seluruh miner.
Difficulty target menyesuaikan setiap 2.016 blok (sekitar dua minggu) untuk mempertahankan rata-rata waktu blok 10 menit, terlepas dari total kekuatan mining di jaringan.
Ketika miner menemukan hash valid, mereka telah memecahkan "teka-teki" dan dapat menyiarkan bloknya ke jaringan. Miner pertama yang menemukan solusi valid memenangkan block reward (saat ini 3.125 BTC setelah halving April 2024) ditambah semua biaya transaksi dalam blok.
Proof of Stake (Ethereum)
Ethereum menggunakan proof of stake, di mana validator dipilih secara acak untuk mengusulkan blok berdasarkan jumlah ETH yang mereka stake (dikunci sebagai jaminan). Prosesnya secara fundamental berbeda:
- Seorang validator dipilih secara pseudo-acak untuk mengusulkan blok pada setiap slot 12 detik.
- Pengusul membuat blok dan menyiarkannya.
- Komite validator attests (memberi suara) bahwa blok valid.
- Setelah attestation yang cukup terkumpul, blok dianggap justified dan pada akhirnya finalized.
Proof of stake menghilangkan komputasi hash yang boros energi dari proof of work sambil tetap menjaga keamanan melalui insentif ekonomi — validator berisiko kehilangan ETH yang mereka stake (slashing) jika bertindak jahat.
Untuk perbandingan yang lebih mendalam, lihat panduan kami tentang Consensus Mechanisms.
Langkah 6: Propagasi Blok
Setelah blok valid diproduksi, blok tersebut harus didistribusikan ke seluruh jaringan.
Propagasi Jaringan
Miner atau validator yang berhasil menyiarkan blok baru ke peer-nya, yang kemudian memvalidasi blok tersebut dan meneruskannya lebih lanjut. Propagasi blok biasanya memerlukan 1 hingga 10 detik untuk mencapai mayoritas jaringan, tergantung ukuran blok dan kondisi jaringan.
Compact Block Relay (BIP 152)
Bitcoin menggunakan Compact Block Relay untuk mempercepat propagasi. Karena sebagian besar node sudah memiliki transaksi di mempool mereka, blok baru hanya perlu mengirim ringkasan kompak (ID transaksi pendek), bukan data transaksi penuh. Node dapat merekonstruksi blok penuh dari mempool mereka, mengurangi kebutuhan bandwidth sekitar 90%.
Orphan Blocks
Terkadang, dua miner menemukan blok valid hampir pada waktu yang sama, menciptakan fork sementara. Jaringan menyelesaikannya secara alami: rantai mana pun yang menerima blok berikutnya lebih dulu menjadi rantai terpanjang, dan blok lainnya menjadi orphan (atau stale block). Transaksi dalam orphan block dikembalikan ke mempool dan biasanya dimasukkan ke blok berikutnya pada rantai pemenang.
Langkah 7: Validasi Blok dan Perpanjangan Rantai
Saat node menerima blok baru, node memvalidasi seluruh blok secara independen sebelum menerimanya.
Validasi Penuh
Node memverifikasi:
- Validitas block header: Format benar, previous block hash valid, proof of work memenuhi difficulty target (atau tanda tangan validator valid di PoS).
- Validitas transaksi: Setiap transaksi dalam blok lolos pemeriksaan validasi yang sama seperti dijelaskan pada Langkah 3.
- Konsistensi Merkle root: Merkle root yang dihitung cocok dengan yang ada di block header.
- Ukuran/bobot blok: Blok tidak melebihi batas protokol.
- Validitas coinbase: Block reward dan pengumpulan biaya benar sesuai aturan protokol saat ini.
- Rentang timestamp: Timestamp blok berada dalam batas yang dapat diterima.
Jika semua pemeriksaan lolos, node menambahkan blok ke salinan lokal blockchain dan memperbarui set UTXO-nya (atau state trie di Ethereum). Node lalu meneruskan blok ke peer-nya.
Langkah 8: Konfirmasi Transaksi
Begitu transaksi Anda dimasukkan ke dalam blok yang valid, transaksi tersebut menerima konfirmasi pertama. Setiap blok berikutnya yang ditambahkan di atas blok transaksi Anda menambah satu konfirmasi lagi.
Mengapa Banyak Konfirmasi Itu Penting
Satu konfirmasi berarti transaksi Anda ada di blockchain, tetapi blok tersebut secara teori masih bisa menjadi orphan jika rantai pesaing menyalipnya. Setiap konfirmasi tambahan membuat reorganisasi menjadi jauh lebih kecil kemungkinannya:
| Confirmations | Bitcoin Wait Time | Security Level |
|---|---|---|
| 0 (unconfirmed) | — | Rentan terhadap double-spend |
| 1 | ~10 menit | Cocok untuk jumlah kecil |
| 3 | ~30 menit | Keamanan wajar |
| 6 | ~60 menit | Standar untuk jumlah signifikan |
| 12+ | ~2 jam | Keamanan sangat tinggi |
Standar yang umum disebut 6 konfirmasi untuk Bitcoin berarti probabilitas keberhasilan reorganisasi rantai (dan karena itu double-spend) sangat kecil secara astronomis — ini memerlukan penyerang menguasai lebih dari 50% hash power jaringan dan mempertahankannya selama lebih dari satu jam.
Ethereum memberikan finalitas lebih cepat. Dalam kondisi normal, transaksi mencapai finality (tidak dapat dibalik tanpa membakar setidaknya sepertiga dari seluruh ETH yang di-stake) dalam sekitar 12 hingga 15 menit.
Jenis Finalitas
- Probabilistic finality (Bitcoin): Transaksi menjadi semakin sulit dibalik pada setiap konfirmasi, tetapi tidak ada titik absolut tak dapat dibatalkan. Enam konfirmasi adalah ambang praktis yang diterima luas.
- Economic finality (Ethereum PoS): Setelah finalization, membalik transaksi akan memerlukan pembakaran ETH yang di-stake senilai miliaran dolar — tidak rasional secara ekonomi bagi penyerang mana pun.
- Absolute finality (beberapa chain berbasis BFT): Transaksi tidak dapat dibatalkan segera setelah konfirmasi blok. Chain seperti jaringan berbasis Tendermint memberikan properti ini.
Gambaran Lengkap: Perjalanan Sebuah Transaksi
Untuk merangkum seluruh siklus:
- Anda memulai transfer dari wallet Anda.
- Wallet Anda menyusun transaksi, memilih input dan output (UTXO) atau menentukan jumlah transfer (model akun).
- Private key Anda menandatangani transaksi, membuktikan bahwa Anda mengotorisasinya.
- Transaksi yang ditandatangani disiarkan ke jaringan P2P.
- Node memvalidasi transaksi dan menambahkannya ke mempool mereka.
- Miner/validator memilih transaksi Anda dari mempool dan memasukkannya ke kandidat blok.
- Blok diproduksi melalui proof of work atau proof of stake.
- Blok baru menyebar ke seluruh jaringan.
- Node memvalidasi dan menerima blok, memperpanjang rantai.
- Transaksi Anda mendapatkan konfirmasi saat blok baru dibangun di atasnya.
Seluruh proses ini — dari pembuatan hingga konfirmasi pertama — memakan waktu sekitar 10 menit untuk Bitcoin dan 12 detik untuk Ethereum, meski transaksi Anda bisa menghabiskan waktu tambahan di mempool sambil menunggu dipilih.
Keamanan transaksi Anda dimulai dari key Anda. Gunakan SafeSeed Seed Phrase Generator untuk membuat seed phrase BIP-39 yang aman secara kriptografis. Setiap langkah dalam proses blockchain — dari menandatangani transaksi hingga membuktikan kepemilikan — bergantung pada keamanan private key Anda, yang diturunkan dari seed phrase Anda.
Konsep Lanjutan
Transaction Malleability
Pada versi awal Bitcoin, ID transaksi (txid) bisa dimodifikasi tanpa membuatnya tidak valid — properti yang disebut transaction malleability. Hal ini sebagian besar diselesaikan oleh peningkatan Segregated Witness (SegWit) pada 2017, yang memisahkan data tanda tangan dari data transaksi, memastikan txid tidak dapat diubah setelah ditandatangani.
Replace-By-Fee (RBF)
Bitcoin mendukung Replace-By-Fee, yang memungkinkan pengirim mengirim ulang transaksi dengan biaya lebih tinggi untuk mempercepat konfirmasi. Transaksi baru menggantikan transaksi asli di mempool. Ini berguna saat jaringan padat dan biaya awal Anda terlalu rendah. Wallet yang mendukung RBF menandai transaksi sebagai dapat diganti, dan versi berbiaya lebih tinggi diprioritaskan.
Transaction Batching
Exchange dan pengirim besar sering melakukan batch beberapa pembayaran ke satu transaksi dengan banyak output. Ini lebih efisien ruang daripada mengirim transaksi satu per satu, sehingga mengurangi total biaya dan penggunaan ruang blok.
FAQ
Berapa lama transaksi blockchain berlangsung?
Waktu transaksi bervariasi menurut blockchain. Bitcoin rata-rata menghasilkan satu blok setiap 10 menit, tetapi transaksi Anda bisa menunggu di mempool sebelum dimasukkan. Ethereum memproduksi blok setiap 12 detik. Solusi Layer 2 seperti Lightning Network dapat menyelesaikan pembayaran dalam milidetik. Total waktu dari pengiriman hingga konfirmasi pertama bergantung pada kepadatan jaringan dan biaya yang Anda bayarkan.
Apa yang terjadi jika saya mengirim ke alamat yang salah?
Transaksi blockchain tidak dapat dibatalkan. Jika Anda mengirim cryptocurrency ke alamat yang salah, tidak ada otoritas pusat yang bisa membalikkan transaksi. Jika alamat itu milik seseorang, Anda harus menghubungi mereka langsung dan berharap dana dikembalikan. Jika alamat tidak valid atau tidak dimiliki siapa pun, dana tersebut secara efektif hilang selamanya. Selalu periksa ulang alamat sebelum mengirim.
Apakah transaksi blockchain bisa gagal?
Di Bitcoin, transaksi yang disusun dan ditandatangani dengan benar pada akhirnya akan dikonfirmasi (meskipun bisa sangat lama jika biayanya sangat rendah). Di Ethereum, transaksi dapat gagal (revert) jika eksekusi smart contract mengalami error atau kehabisan gas. Dalam kedua kasus, biaya transaksi tetap terpakai. Beberapa wallet menyediakan simulasi transaksi untuk memprediksi apakah transaksi akan berhasil sebelum Anda mengirimkannya.
Apa itu transaction hash (txid)?
Transaction hash (txid atau transaction ID) adalah pengenal unik yang diberikan ke setiap transaksi. Ini dihasilkan dengan meng-hash data transaksi. Anda dapat menggunakan txid untuk melacak transaksi di block explorer (seperti mempool.space untuk Bitcoin atau etherscan.io untuk Ethereum). Txid diberikan segera saat transaksi dibuat dan tidak berubah setelah dikonfirmasi.
Mengapa biaya transaksi berubah-ubah?
Biaya transaksi ditentukan oleh penawaran dan permintaan ruang blok. Ketika banyak pengguna bertransaksi secara bersamaan, mereka bersaing memperebutkan ruang blok terbatas dengan menawarkan biaya lebih tinggi. Saat periode sepi, biaya turun. Ruang blok Bitcoin tetap (bobot 4 MB per blok setiap 10 menit), sehingga biaya bisa melonjak tajam saat permintaan tinggi. EIP-1559 Ethereum memberikan base fee yang lebih dapat diprediksi dan menyesuaikan secara algoritmis berdasarkan pemakaian jaringan.
Apa perbedaan transaksi confirmed dan unconfirmed?
Transaksi unconfirmed berada di mempool tetapi belum dimasukkan ke dalam blok. Statusnya masih pending dan secara teori bisa diganti atau dihapus. Transaksi confirmed sudah dimasukkan ke dalam blok dan ditambahkan ke blockchain. Dengan setiap blok tambahan di atasnya, jumlah konfirmasi meningkat dan transaksi semakin sulit dibalik.
Apakah miner bisa memilih untuk tidak memasukkan transaksi saya?
Ya. Miner dan validator dapat memilih transaksi mana yang dimasukkan ke dalam blok mereka. Mereka tidak wajib memasukkan transaksi tertentu. Namun, insentif ekonomi sangat mendorong mereka untuk memasukkan sebanyak mungkin transaksi berbayar. Dalam praktiknya, transaksi valid apa pun dengan biaya memadai pada akhirnya akan dimasukkan oleh miner, meskipun beberapa memilih mengabaikannya.