Transaksi dasar Bitcoin adalah struktur data yang ditandatangani dan mendasar yang merekam transfer nilai. Transaksi ini memindahkan nilai dari output transaksi yang belum digunakan (UTXO) ke output baru, yang kemudian menjadi UTXO baru yang tersedia untuk pengeluaran di masa depan. Jaringan secara kriptografis memvalidasi transaksi ini, memastikan bahwa transaksi tersebut tercatat dengan akurat di buku besar terdistribusi, yaitu blockchain.
Membedah Transaksi Bitcoin: Fondasi Transfer Nilai Digital
Pada intinya, Bitcoin beroperasi pada sistem transfer nilai yang sederhana namun dirancang dengan sangat cerdik. Berbeda dengan perbankan tradisional di mana akun menyimpan saldo, Bitcoin berfungsi lebih seperti sistem uang tunai digital, di mana setiap unit nilai dilacak melalui serangkaian transaksi. Mekanisme fundamental ini, yang sering disebut sebagai "transaksi dasar," adalah landasan utama di mana seluruh jaringan Bitcoin dibangun. Memahami bagaimana transaksi ini disusun, divalidasi, dan dicatat sangat penting untuk memahami keamanan, integritas, dan prinsip operasional dari mata uang kripto pertama dan terbesar di dunia ini.
Model Unspent Transaction Output (UTXO): Uang Tunai Digital dalam Aksi
Untuk memahami cara kerja transaksi Bitcoin, seseorang harus terlebih dahulu memahami konsep Unspent Transaction Output, atau UTXO. Model ini merupakan pergeseran paradigma dari sistem berbasis akun tradisional dan merupakan pusat dari desain Bitcoin.
Bayangkan uang tunai fisik di dompet Anda: Anda tidak memiliki "saldo akun" uang tunai; sebaliknya, Anda memiliki lembaran uang kertas tertentu dengan berbagai nominal (misalnya, selembar Rp10.000, selembar Rp20.000). Saat Anda ingin membayar sesuatu, Anda menggunakan lembaran uang spesifik tersebut. Jika suatu barang berharga Rp15.000 dan Anda membayar dengan lembaran Rp20.000, Anda akan menerima kembalian Rp5.000 – sebuah lembaran uang baru.
Model UTXO Bitcoin beroperasi dengan cara yang serupa:
- Tidak Ada Saldo Akun: Dompet Bitcoin secara teknis tidak menyimpan "saldo" dalam pengertian konvensional. Sebaliknya, dompet mengelola kumpulan UTXO yang dapat "dibelanjakan" oleh kunci privat (private key) dompet tersebut.
- Unit Nilai yang Terpisah: Setiap UTXO mewakili jumlah Bitcoin tertentu yang belum dibelanjakan, yang merupakan output dari transaksi sebelumnya. Ini seperti lembaran uang atau koin digital.
- Membelanjakan UTXO: Saat Anda memulai transaksi, dompet Anda memilih satu atau lebih UTXO yang Anda miliki untuk menutupi jumlah yang ingin Anda kirim. UTXO yang dipilih ini dikonsumsi sepenuhnya (dibelanjakan) sebagai input untuk transaksi baru Anda.
- UTXO Baru Terbentuk: Transaksi tersebut kemudian menghasilkan UTXO baru sebagai output:
- Satu UTXO untuk penerima, berisi jumlah yang Anda kirim.
- Secara opsional, UTXO lain ("output kembalian" atau change output) yang dikirim kembali ke dompet Anda sendiri untuk sisa jumlah dari UTXO yang dikonsumsi yang tidak dikirim ke penerima atau tidak dibayarkan sebagai biaya (fee).
Model UTXO ini menawarkan beberapa keunggulan, termasuk privasi yang ditingkatkan (karena transaksi tidak secara eksplisit tertaut ke akun pengguna, hanya ke kunci publik), keamanan yang lebih baik terhadap pengeluaran ganda (double-spending), dan skalabilitas yang lebih besar melalui pemrosesan transaksi secara paralel. Hal ini memastikan bahwa setiap unit Bitcoin dipertanggungjawabkan dan dapat dilacak dari asalnya (penambangan) melalui seluruh riwayat transaksinya.
Anatomi Transaksi Bitcoin
Setiap transaksi Bitcoin adalah struktur data yang terdiri dari beberapa komponen utama. Struktur ini memastikan bahwa nilai dapat ditransfer dan diverifikasi dengan aman di seluruh jaringan.
Input Transaksi
Input menentukan dari mana Bitcoin yang dibelanjakan berasal. Setiap input merujuk pada UTXO tertentu dari transaksi sebelumnya.
- ID Transaksi (TXID) dari Output Sebelumnya: Identitas unik (hash) dari transaksi yang membuat UTXO yang sedang dibelanjakan.
- Indeks Output (Vout): Angka yang menunjukkan output spesifik mana dari transaksi sebelumnya yang sedang dibelanjakan (sebuah transaksi dapat memiliki banyak output).
- Skrip Pembuka Kunci (ScriptSig): Ini adalah bagian krusial yang membuktikan kepemilikan dan mengotorisasi pembelanjaan. Untuk transaksi standar pay-to-public-key-hash (P2PKH), ScriptSig biasanya berisi:
- Tanda Tangan Digital: Dihasilkan oleh kunci privat pengirim, menandatangani hash dari data transaksi saat ini. Ini membuktikan pengirim mengotorisasi transaksi tanpa mengungkapkan kunci privat mereka.
- Kunci Publik: Diturunkan dari kunci privat pengirim. Jaringan menggunakan ini untuk memverifikasi tanda tangan digital terhadap hash kunci publik yang tertanam dalam skrip pengunci UTXO sebelumnya.
Output Transaksi
Output menentukan ke mana Bitcoin dikirim dan dalam kondisi apa Bitcoin tersebut dapat dibelanjakan di masa depan.
- Nilai (Value): Jumlah Bitcoin (dalam satoshi, unit terkecil Bitcoin) yang dikirim ke output ini.
- Skrip Pengunci (ScriptPubKey): Juga dikenal sebagai "kondisi pembelanjaan" atau "script hash," skrip ini menentukan syarat-syarat yang harus dipenuhi agar output ini dapat dibelanjakan dalam transaksi di masa depan. Untuk output P2PKH standar, skrip ini biasanya berisi hash dari kunci publik penerima. Untuk membelanjakan output ini, penerima harus memberikan tanda tangan digital yang dihasilkan oleh kunci privat yang sesuai dengan hash kunci publik ini, beserta kunci publik mereka.
Bidang Transaksi Lainnya
Selain input dan output, transaksi Bitcoin mencakup informasi vital lainnya:
- Nomor Versi: Menunjukkan versi struktur data transaksi, memungkinkan pembaruan protokol di masa mendatang.
- Locktime (atau nLocktime): Bidang opsional yang menentukan waktu atau ketinggian blok (block height) sebelum transaksi dapat ditambahkan ke blok. Ini dapat digunakan untuk kontrak terkunci waktu (time-locked contracts). Locktime 0 (atau kurang dari 500 juta) berarti transaksi dapat segera dimasukkan.
- Data Saksi (Transaksi SegWit): Untuk transaksi yang menggunakan protokol Segregated Witness (SegWit), data tanda tangan (witness data) disimpan dalam struktur terpisah, yang membantu mengoptimalkan ruang blok dan memperbaiki masalah maleabilitas transaksi (transaction malleability).
Seluruh struktur data transaksi (tidak termasuk data saksi untuk SegWit) kemudian di-hash secara kriptografis untuk menghasilkan ID Transaksi (TXID), pengenal unik untuk transaksi spesifik tersebut.
Menyusun dan Menyiarkan Transaksi
Saat Anda memutuskan untuk mengirim Bitcoin, perangkat lunak dompet Anda melakukan beberapa langkah kritis di balik layar:
- Pemilihan UTXO: Dompet Anda memindai blockchain untuk mengidentifikasi semua UTXO yang dapat dibelanjakan oleh kunci privat Anda. Dompet kemudian memilih kombinasi UTXO yang total nilainya sama dengan atau lebih besar dari jumlah yang ingin Anda kirim, ditambah biaya transaksi.
- Pembuatan Output:
- Output utama dibuat untuk alamat penerima, berisi jumlah Bitcoin yang ditentukan.
- Jika total nilai UTXO yang dipilih melebihi jumlah yang dikirim ditambah biaya, "output kembalian" akan dihasilkan. Output ini mengirimkan sisanya kembali ke alamat baru yang dikendalikan oleh dompet Anda, meningkatkan privasi dengan tidak menggunakan kembali alamat yang sama.
- Perhitungan Biaya Transaksi: Selisih antara total nilai input dan total nilai output (penerima + kembalian) menjadi biaya transaksi, yang dikumpulkan oleh penambang yang memasukkan transaksi tersebut ke dalam blok. Dompet sering kali memperkirakan biaya berdasarkan kemacetan jaringan dan ukuran data transaksi.
- Penandatanganan Digital: Setiap input dalam transaksi harus ditandatangani secara digital oleh kunci privat yang sesuai dengan kunci publik yang mengendalikan UTXO tersebut. Proses penandatanganan ini menggunakan Elliptic Curve Digital Signature Algorithm (ECDSA), menghasilkan tanda tangan unik untuk setiap input berdasarkan data transaksi. Tanda tangan ini membuktikan bahwa pemilik mengotorisasi pembelanjaan tanpa mengungkapkan kunci privat mereka.
- Penyusunan Transaksi: Semua komponen ini – input yang dipilih, output yang dibuat, tanda tangan, dan bidang lainnya – disusun menjadi struktur data transaksi yang lengkap.
- Penyiaran (Broadcasting): Transaksi yang telah disusun dan ditandatangani sepenuhnya kemudian disiarkan ke jaringan Bitcoin.
Validasi Transaksi: Penjaga Gerbang Jaringan
Setelah menerima transaksi yang disiarkan, node penuh (full node) Bitcoin segera memulai proses validasi yang ketat sebelum meneruskannya ke node lain. Verifikasi multi-langkah ini sangat penting untuk menjaga integritas jaringan dan mencegah transaksi yang tidak valid atau berbahaya.
Berikut cara node memvalidasi transaksi:
-
Pemeriksaan Sintaksis dan Struktural:
- Format: Apakah transaksi diformat dengan benar sesuai dengan aturan protokol Bitcoin?
- Ukuran: Apakah transaksi mematuhi batas ukuran maksimum?
- Versi: Apakah nomor versi valid?
- Rentang Nilai: Apakah semua nilai (input, output) berada dalam rentang yang valid (misalnya, tidak negatif, tidak melebihi total pasokan Bitcoin)?
- Jumlah Tanda Tangan: Apakah jumlah tanda tangan benar untuk jenis skrip yang digunakan?
-
Keberadaan dan Status UTXO yang Dirujuk:
- Belum Dibelanjakan (Unspent): Untuk setiap input, UTXO yang dirujuk harus ada dan, yang terpenting, harus belum dibelanjakan. Ini adalah pertahanan utama terhadap pengeluaran ganda. Node memeriksa salinan lokal mereka dari set UTXO (database dari semua output yang saat ini belum dibelanjakan).
- Maturitas (Kematangan): Jika UTXO adalah hadiah coinbase (dari penambangan blok), ia harus sudah matang (biasanya 100 blok) sebelum dapat dibelanjakan.
-
Verifikasi Skrip:
- Untuk setiap input, node menjalankan proses verifikasi skrip. Node menggabungkan
ScriptSig (dari input) dengan ScriptPubKey (dari UTXO yang dirujuk). Skrip gabungan ini kemudian dieksekusi oleh interpreter Skrip Bitcoin.
- Skrip harus bernilai "TRUE" agar input transaksi dianggap valid. Di sinilah tanda tangan digital diverifikasi terhadap hash kunci publik yang ditentukan dalam skrip pengunci UTXO, yang membuktikan otorisasi.
-
Pemeriksaan Konsistensi Nilai:
- Input vs. Output: Jumlah semua nilai Bitcoin dalam input harus lebih besar dari atau sama dengan jumlah semua nilai dalam output.
- Tidak Ada Bitcoin Baru: Bitcoin baru tidak dapat diciptakan begitu saja. Selisih antara input dan output adalah biaya transaksi, yang diberikan kepada penambang.
-
Pemeriksaan Locktime: Jika nLocktime ditentukan, transaksi hanya dapat dimasukkan ke dalam blok setelah ketinggian blok atau waktu saat ini telah melampaui nilai nLocktime.
Hanya setelah lulus semua pemeriksaan ini, sebuah transaksi dianggap valid. Transaksi yang valid kemudian ditambahkan ke kolam memori (mempool) node dan diteruskan ke node terhubung lainnya.
Penyertaan dalam Blok: Jalan Menuju Konfirmasi
Transaksi yang tervalidasi menunggu di mempool untuk dimasukkan ke dalam blok. Di sinilah penambangan Bitcoin berperan:
- Pemilihan oleh Penambang: Penambang Bitcoin terus memantau mempool, memilih transaksi untuk dimasukkan ke dalam blok baru yang sedang mereka coba tambang. Penambang memprioritaskan transaksi dengan biaya per byte yang lebih tinggi, karena ini meningkatkan potensi imbalan mereka.
- Konstruksi Blok: Penambang menyusun blok kandidat yang berisi header (dengan detail seperti hash blok sebelumnya, stempel waktu, target kesulitan, dan Merkle root dari transaksi) dan transaksi yang dipilih.
- Bukti Kerja (Proof-of-Work): Penambang kemudian melakukan pekerjaan komputasi intensif, mencoba menemukan "nonce" (angka acak) yang, ketika digabungkan dengan data header blok dan di-hash, menghasilkan hasil di bawah target kesulitan jaringan saat ini. Ini adalah "Proof-of-Work" (PoW).
- Propagasi Blok: Begitu penambang menemukan nonce yang valid, mereka menyiarkan blok yang baru ditambang tersebut ke jaringan.
- Validasi Blok: Node lain menerima blok tersebut dan dengan cepat memverifikasi validitasnya:
- Apakah header blok berisi Proof-of-Work yang valid?
- Apakah semua transaksi dalam blok tersebut valid secara individual dan belum dibelanjakan (memeriksa terhadap set UTXO saat ini)?
- Apakah blok tersebut mematuhi semua aturan konsensus (misalnya, batas ukuran blok, transaksi coinbase yang valid)?
- Konfirmasi: Jika blok tersebut valid, node menambahkannya ke salinan blockchain mereka. Pada titik ini, transaksi di dalam blok tersebut menerima "konfirmasi" pertama mereka. Seiring bertambahnya blok yang ditambang di atas blok ini, transaksi tersebut mendapatkan konfirmasi lebih lanjut, menjadikannya semakin tidak dapat diubah (irreversible) dan aman. Pedagang dan bursa biasanya menunggu sejumlah konfirmasi tertentu (misalnya, 6) sebelum menganggap transaksi final.
Biaya Transaksi: Bahan Bakar Jaringan
Biaya transaksi adalah bagian integral dari ekosistem Bitcoin, yang melayani dua tujuan utama:
- Memberikan Insentif kepada Penambang: Biaya mengompensasi penambang atas upaya komputasi mereka dan mengamankan jaringan. Tanpa biaya, penambang akan memiliki lebih sedikit insentif untuk memproses transaksi begitu imbalan blok akhirnya berkurang.
- Mencegah Spam Jaringan: Biaya mencegah aktor jahat membanjiri jaringan dengan sejumlah besar transaksi kecil yang tidak signifikan secara ekonomi yang jika tidak dibatasi akan menghabiskan sumber daya jaringan.
Biaya transaksi tidak didasarkan pada jumlah Bitcoin yang ditransfer, melainkan pada ukuran data transaksi (dalam byte) dan kemacetan jaringan saat ini. Dompet biasanya menghitung biaya berdasarkan tarif "satoshi per byte". Ketika jaringan sibuk, tarif ini cenderung meningkat karena pengguna bersaing untuk mendapatkan ruang blok dengan menawarkan biaya yang lebih tinggi.
Contoh Ilustrasi: Alice Membayar Bob
Mari kita telusuri transaksi sederhana: Alice ingin mengirim 0,5 BTC ke Bob.
-
Pemindaian Dompet Alice: Dompet Alice mengidentifikasi bahwa ia memiliki dua UTXO:
- UTXO A: 0,3 BTC (dari transaksi sebelumnya dengan Charlie)
- UTXO B: 0,4 BTC (dari transaksi sebelumnya dengan David)
- Total yang dapat dibelanjakan: 0,7 BTC
-
Pemilihan UTXO: Untuk mengirim 0,5 BTC, dompetnya perlu menutupi jumlah tersebut ditambah biaya. Dompet memutuskan untuk menggunakan UTXO B (0,4 BTC) dan UTXO A (0,3 BTC), total 0,7 BTC.
-
Konstruksi Transaksi:
- Input:
- Input 1: Merujuk ke UTXO A (0,3 BTC), menyertakan tanda tangan Alice untuk UTXO A.
- Input 2: Merujuk ke UTXO B (0,4 BTC), menyertakan tanda tangan Alice untuk UTXO B.
- Output:
- Output 1: 0,5 BTC ke hash kunci publik Bob.
- Output 2 (Kembalian): Alice menghitung biaya. Jika tarif jaringan menyiratkan biaya 0,0001 BTC untuk ukuran transaksi ini, maka
0,7 BTC (input) - 0,5 BTC (ke Bob) - 0,0001 BTC (biaya) = 0,1999 BTC. 0,1999 BTC ini dikirim kembali ke alamat baru yang dikendalikan oleh dompet Alice.
-
Penandatanganan dan Penyiaran: Dompet Alice menandatangani transaksi secara kriptografis, lalu menyiarkannya ke jaringan Bitcoin.
-
Validasi Jaringan: Node penuh menerima transaksi:
- Mereka memverifikasi bahwa UTXO A dan UTXO B ada dan memang belum dibelanjakan.
- Mereka mengeksekusi skrip, memverifikasi tanda tangan Alice terhadap hash kunci publik dalam skrip pengunci asli UTXO A dan UTXO B.
- Mereka memeriksa bahwa input (0,7 BTC) >= output (0,5 BTC + 0,1999 BTC). Selisihnya, 0,0001 BTC, adalah biaya yang tersirat.
- Jika semua pemeriksaan lulus, transaksi ditambahkan ke mempool.
-
Penambangan dan Konfirmasi: Seorang penambang memilih transaksi ini (bersama dengan transaksi lainnya) untuk blok baru. Setelah menemukan Proof-of-Work yang valid, blok tersebut ditambahkan ke blockchain. Transaksi Alice menerima konfirmasi pertamanya, dan Bob sekarang memiliki 0,5 BTC sebagai UTXO baru.
Kekuatan Abadi Model Transaksi Bitcoin
Desain mekanisme transaksi dasar Bitcoin, yang berpusat pada UTXO dan validasi kriptografi yang kuat, memberikan keuntungan fundamental yang mendasari proposisi nilainya:
- Keamanan: Tanda tangan digital dan mekanisme Proof-of-Work memastikan transaksi benar-benar diotorisasi dan secara praktis tidak dapat dibatalkan setelah dikonfirmasi, mencegah penipuan dan pengeluaran ganda.
- Desentralisasi: Tidak ada entitas tunggal yang dapat secara sepihak menyetujui atau menolak transaksi. Node jaringan memvalidasi secara independen sesuai dengan aturan yang disepakati bersama.
- Transparansi dan Auditabilitas: Meskipun bersifat pseudonim (nama samaran), setiap transaksi dicatat secara publik di blockchain, memungkinkan siapa saja untuk memverifikasi pergerakan nilai.
- Pencegahan Pengeluaran Ganda: Model UTXO dan validasi output yang belum dibelanjakan di seluruh jaringan membuatnya sangat sulit untuk membelanjakan Bitcoin yang sama dua kali, sebuah masalah yang melekat pada mata uang digital sebelum adanya Bitcoin.
Interaksi teliti antara pemilihan UTXO, eksekusi skrip, penandatanganan kriptografi, dan validasi terdesentralisasi memastikan bahwa setiap transaksi Bitcoin adalah catatan transfer nilai yang aman, dapat diverifikasi, dan tidak dapat diubah, yang membentuk tulang punggung tangguh dari seluruh jaringan Bitcoin.