Lewati ke isi
CakraKoin

#205 Blok pendukung

Proof of Work Langkah demi Langkah: Hash, Nonce, dan Tingkat Kesulitan

Proof of work terdengar abstrak sampai Anda melihat hash-nya sendiri berubah. Artikel ini memakai contoh hitungan nyata, termasuk alat kecil untuk mencoba menambang blok mainan di peramban.

Redaksi CakraKoinDitinjau 28 Sep 2026±4 menit baca

Kubus hitam berpendar hijau yang ditumpuk menjadi menara

Bahan dasar: fungsi hash

Proof of work berdiri di atas satu alat: fungsi hash kriptografis. Bitcoin memakai SHA-256, dan menjalankannya dua kali berturut-turut. Fungsi ini menerima data sepanjang apa pun dan mengeluarkan 64 karakter heksadesimal. Ada tiga sifat yang membuatnya berguna:

  • Masukan yang sama selalu menghasilkan keluaran yang sama.
  • Perubahan sekecil apa pun pada masukan menghasilkan keluaran yang sama sekali berbeda.
  • Tidak ada jalan pintas untuk menebak masukan dari keluarannya; satu-satunya cara adalah mencoba.

Lihat buktinya. Kalimat di bawah hanya berbeda satu titik di ujungnya, tetapi hash SHA-256-nya tidak punya kemiripan:

"CakraKoin blok 7 | Andi kirim 2 koin ke Sari"
1d2b68b3a99f173920a0f67ef8f3b71cdfb300d2cd2f5044bfcc72f9a2ff0d36

"CakraKoin blok 7 | Andi kirim 2 koin ke Sari."
edebd333a3baffb43735001acd25a192ea01d9a00d88bd3749df9cca422f450b

Nonce: angka yang diubah-ubah

Penambang tidak bisa mengubah isi transaksi sesuka hati. Yang boleh diubah adalah nonce, sebuah angka di kepala blok. Tugasnya: temukan nonce yang membuat hash blok lebih kecil dari target, yang dalam tampilan heksadesimal terlihat sebagai deretan nol di depan. Tabel berikut dihitung sungguhan dengan SHA-256 (satu putaran, untuk kesederhanaan) atas teks contoh di atas yang disambung angka nonce:

Nonce pertama yang memenuhi syarat untuk tiap tingkat kesulitan mainan
Syarat awalanNonce ditemukanHash yang dihasilkan
0410c7fed6fb13342f1cda9cd3418ef00e6f0fd6239b577d6da2eb5aa6bfad8436a
0056003b7b1f708a5efe3ad91bcf46f35b5a6b5d7fdd5ca88b8ac11758fd436f5cd4
0002.41700069d7379123ca954eab998360e5d6b9bb89d052dbd7cd0a9858dde5a066691
000079.2210000b31cf010226a9775c907964b6ed4d58f2440a726bcb8870d07a9f7e48b73

Setiap tambahan satu nol heksadesimal membuat rata-rata jumlah percobaan naik 16 kali lipat: sekitar 16, 256, 4.096, lalu 65.536 percobaan. Angka nonce di tabel kadang lebih kecil atau lebih besar dari rata-rata karena faktor keberuntungan. Target jaringan Bitcoin sungguhan jauh lebih ketat, sehingga seluruh penambang di dunia bersama-sama butuh sekitar sepuluh menit untuk menemukan satu jawaban.

Coba menambang blok mainan

Alat di bawah menjalankan SHA-256 di peramban Anda. Ketik isi blok, pilih jumlah nol, lalu tekan tombol. Hash dihitung dengan menyambung teks dan angka nonce, persis seperti tabel di atas.

sim://pow Penambang mainan

Nonce: 2.417 · Percobaan: 2.418

00069d7379123ca954eab998360e5d6b9bb89d052dbd7cd0a9858dde5a066691

Yang sebenarnya di-hash: kepala blok 80 byte

Pada Bitcoin, penambang tidak meng-hash seluruh isi blok berulang-ulang. Yang di-hash hanyalah kepala blok berukuran 80 byte, yang terdiri dari enam kolom:

Susunan kepala blok Bitcoin
KolomUkuranIsi
Versi4 byteVersi aturan blok
Hash blok sebelumnya32 bytePengikat ke blok sebelumnya
Merkle root32 byteRingkasan semua transaksi dalam blok
Waktu4 byteCap waktu
Target (bits)4 byteTingkat kesulitan dalam bentuk ringkas
Nonce4 byteAngka yang diubah-ubah penambang

Nonce 4 byte hanya menyediakan sekitar 4,29 miliar kemungkinan, jumlah yang habis dicoba mesin modern dalam waktu sangat singkat. Karena itu penambang juga mengubah bagian lain, misalnya data tambahan di transaksi coinbase yang otomatis mengubah Merkle root, lalu mulai lagi dari nonce nol. Karena setiap transaksi ikut menentukan Merkle root, mengubah satu transaksi saja akan membatalkan seluruh kerja pada blok itu.

Tingkat kesulitan yang menyesuaikan diri

Jika semakin banyak mesin bergabung, jawaban akan ditemukan lebih cepat. Untuk menjaga ritme, Bitcoin menghitung ulang target setiap 2.016 blok, kira-kira dua minggu. Logikanya bisa dihitung sederhana:

  • 2.016 blok × 10 menit = 20.160 menit, atau tepat 14 hari. Inilah waktu yang diharapkan.
  • Misalkan 2.016 blok terakhir selesai dalam 12 hari. Jaringan terlalu cepat, sehingga kesulitan dinaikkan kira-kira 14 ÷ 12, atau sekitar 16,7%.
  • Jika selesai dalam 16 hari, kesulitan diturunkan kira-kira 14 ÷ 16, atau sekitar 12,5%.

Mekanisme inilah yang membuat pendapatan penambang tidak otomatis naik ketika mereka membeli mesin baru: pesaing juga membeli, dan target ikut mengetat. Dampaknya bagi hitungan biaya dibahas di mining kripto.

Aturan rantai dengan kerja terbanyak

Kadang dua penambang menemukan blok hampir bersamaan, sehingga jaringan sempat punya dua versi ujung rantai. Node menyelesaikannya dengan aturan sederhana: ikuti rantai yang mengandung akumulasi kerja terbanyak. Begitu blok berikutnya ditambang di atas salah satu versi, versi itu menjadi lebih berat dan yang lain ditinggalkan. Karena itulah transaksi dianggap makin aman setelah ditimpa beberapa blok; jumlah blok penimpa ini yang tampil sebagai “konfirmasi” di block explorer.

Mengapa kerja ini disebut keamanan

Untuk menulis ulang sejarah, penyerang harus mengulang kerja semua blok yang ingin diubah dan menyalip rantai jujur yang terus bertambah. Itu hanya realistis jika ia menguasai lebih dari separuh daya hash jaringan, kondisi yang dikenal sebagai serangan 51%. Pada jaringan besar, biayanya luar biasa mahal. Pada jaringan kecil dengan sedikit penambang, ancaman ini jauh lebih nyata.

Inilah pertukaran utama proof of work: keamanan dibeli dengan energi. Pendekatan lain menggantinya dengan modal yang dikunci, yang dijelaskan di proof of stake. Hadiah yang membayar kerja penambang pun menyusut terjadwal, seperti diuraikan di halving Bitcoin.

Blok berikutnya untuk dibaca