Detail SHA-256: Algoritma Hash Bitcoin Secara Mendalam

SHA-256 (Secure Hash Algorithm 256-bit) adalah fungsi hash kriptografi yang menghasilkan hash sepanjang 256 bit (64 karakter heksadesimal). Ini adalah bagian dari keluarga SHA-2, dirancang oleh NSA, dan digunakan dalam Bitcoin untuk Proof-of-Work. Berikut detail langkah-langkahnya:

Struktur Umum

  • Input: Data apa pun (teks, file, dll.).

  • Output: Hash 256-bit.

  • Blok: Memproses data dalam blok 512-bit.

  • Putaran: 64 putaran kompresi per blok.

SHA-256 menggunakan operasi bitwise seperti rotasi (ROTR), XOR, AND, serta penjumlahan modulo 2³² untuk mengacak data secara aman.

Langkah-Langkah SHA-256

1. Preprocessing

  • Konversi ke Biner: Input diubah ke bit. Misalnya, "abc" → 01100001 01100010 01100011 (24 bit).

Padding:

  • Tambah "1" di akhir: 01100001 01100010 01100011 1.

  • Tambah nol hingga panjang jadi kelipatan 512 bit, sisakan 64 bit untuk panjang.

  • Tambah panjang input (dalam bit) sebagai 64 bit terakhir. Untuk "abc" (24 bit): 00011000 (dengan nol di depan).

  • Total: 512 bit. Contoh:
01100001 01100010 01100011 1 000...0 [000...011000]

Pecah ke Blok: Input pendek seperti "abc" jadi 1 blok 512-bit.

2. Inisialisasi Nilai Awal (Hash Values)

SHA-256 mulai dengan 8 konstanta 32-bit (H0-H7), diambil dari akar kuadrat bilangan prima pertama:

  • H0 = 6a09e667

  • H1 = bb67ae85

  • H2 = 3c6ef372

  • H3 = a54ff53a

  • H4 = 510e527f

  • H5 = 9b05688c

  • H6 = 1f83d9ab

  • H7 = 5be0cd19

3. Pemrosesan Setiap Blok

Setiap blok 512-bit diproses sebagai berikut:

Pecah ke 16 Kata (W0-W15):

  • Blok dibagi jadi 16 potongan 32-bit.
  • Untuk "abc":

  • W0 = 61626380 (hex dari "abc" + "1" + nol).

  • W1-W14 = 00000000.

  • W15 = 00000018 (panjang 24 bit).

Ekspansi ke 64 Kata (W16-W63):

Gunakan rumus:

W[i] = W[i-16] + σ0(W[i-15]) + W[i-7] + σ1(W[i-2])

  • σ0(x) = (x ROTR 7) XOR (x ROTR 18) XOR (x SHR 3).

  • σ1(x) = (x ROTR 17) XOR (x ROTR 19) XOR (x SHR 10).

  • ROTR = rotasi ke kanan, SHR = geser ke kanan.

Contoh W16:

  • W16 = W0 + σ0(W1) + W9 + σ1(W14).

  • W1, W9, W14 = 00000000, jadi σ0 dan σ1 menghasilkan nol.

  • W16 = W0 = 61626380.
Inisialisasi Variabel Kerja:
  • a = H0, b = H1, c = H2, d = H3, e = H4, f = H5, g = H6, h = H7.
64 Putaran Kompresi:

Gunakan 64 konstanta (K0-K63) dari akar kubik bilangan prima, misalnya:
  • K0 = 428a2f98
  • K1 = 71374491, dll.
Tiap putaran:
T1 = h + Σ1(e) + Ch(e,f,g) + K[i] + W[i]
T2 = Σ0(a) + Maj(a,b,c)
  • Σ0(a) = (a ROTR 2) XOR (a ROTR 13) XOR (a ROTR 22).
  • Σ1(e) = (e ROTR 6) XOR (e ROTR 11) XOR (e ROTR 25).
  • Ch(e,f,g) = (e AND f) XOR ((NOT e) AND g).
  • Maj(a,b,c) = (a AND b) XOR (a AND c) XOR (b AND c).
Update:

h = g
g = f
f = e
e = d + T1
d = c
c = b
b = a
a = T1 + T2

Contoh Putaran 0 (untuk "abc"):
  • h = 5be0cd19, e = 510e527f, f = 9b05688c, g = 1f83d9ab.
  • W0 = 61626380, K0 = 428a2f98.
  • Σ1(e) = hitung rotasi e → (contoh bitwise kompleks).
  • Ch(e,f,g) = bitwise AND/XOR → (nilai spesifik).
  • T1 = h + Σ1(e) + Ch + K0 + W0.
  • Σ0(a) dan Maj(a,b,c) serupa.
  • Update a-h.
Update Hash Values:

  • Setelah 64 putaran:
  • H0 = H0 + a
  • H1 = H1 + b
          ....
  • H7 = H7 + h

4. Output Akhir
  • Gabungkan H0-H7 jadi 256-bit.
  • Untuk "abc": ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.
Operasi Bitwise (Detail)
  • ROTR(n): Rotasi bit ke kanan sebanyak n posisi.
  • Contoh: 1100 ROTR 1 = 0110.
  • SHR(n): Geser bit ke kanan, isi nol di kiri.
  • Contoh: 1100 SHR 1 = 0110.
  • XOR: Bitwise exclusive OR.
  • 1 XOR 1 = 0, 1 XOR 0 = 1.
  • AND: Bitwise AND.
  • 1 AND 1 = 1, 1 AND 0 = 0.
Simulasi untuk "abc"
1.Padding: 01100001 01100010 01100011 1 000...011000 (512 bit).

2. W0-W15: W0 = 61626380, W15 = 00000018, lainnya nol.

3. Putaran 0:
  • a = 6a09e667, e = 510e527f, dll.
  • T1 dan T2 dihitung (bitwise panjang).
  • Update a-h.
4. Hasil: Setelah 64 putaran, hash jadi ba7816bf....

Berikut blog dengan detail SHA-256 ditambahkan:

White Paper Bitcoin: Awal dari Revolusi Digital

Pada 31 Oktober 2008, Satoshi Nakamoto menerbitkan "Bitcoin: A Peer-to-Peer Electronic Cash System". White paper ini menjadi fondasi Bitcoin, cryptocurrency pertama di dunia. Tujuannya? Sistem uang digital tanpa bank atau pemerintah.

Apa yang Diusulkan Satoshi?
  • Tanpa Perantara: Transaksi langsung antar pengguna.
  • Blockchain: Buku besar publik terdesentralisasi.
  • Keamanan: Kriptografi untuk perlindungan.
  • Proof-of-Work: Mencegah double-spending.
  • Pasokan Terbatas: 21 juta Bitcoin.
Proof-of-Work: Jantung Keamanan Bitcoin

Proof-of-Work (PoW) adalah mekanisme konsensus Bitcoin. Ini adalah "bukti usaha" untuk memvalidasi transaksi.

Cara Kerja PoW
  1. Transaksi: Masuk ke mempool.
  2. Penambang: Memecahkan teka-teki hashing (SHA-256).
  3. Hash: Harus dimulai dengan nol tertentu.
  4. Imbalan: Blok ditambahkan, penambang dapat Bitcoin.
PoW aman tapi boros energi.

Hashing: Sidik Jari Digital

Hashing mengubah data jadi kode unik. Dalam Bitcoin, ini dilakukan dengan SHA-256.

Sifat Hash
  • Unik: Data berbeda = hash berbeda.
  • Satu Arah: Tidak bisa dibalik.
  • Konsisten: Data sama = hash sama.
SHA-256: Mesin Hash Bitcoin (Detail)

SHA-256 adalah inti PoW Bitcoin, menghasilkan hash 256-bit.

Cara Kerja SHA-256

1. Preprocessing:
  • Input "abc" → 01100001 01100010 01100011.
  • Padding: Tambah "1", nol, dan panjang (24 bit) → 512 bit.
  • Blok: 61626380 00000000 ... 00000018.
2. Inisialisasi:
  • H0 = 6a09e667, H1 = bb67ae85, dll.
3. Kompresi:
  • 16 Kata: W0 = 61626380, W15 = 00000018.
  • Ekspansi: W16 = W0 + σ0(W1) + W9 + σ1(W14).
  • 64 Putaran:
  • T1 = h + Σ1(e) + Ch(e,f,g) + K[i] + W[i].
  • T2 = Σ0(a) + Maj(a,b,c).
  • Update a-h setiap putaran.
  • Konstanta: K0 = 428a2f98, dll.
4. Output:
  • Hash "abc": ba7816bf8f01cfea....
Operasi Bitwise
  • ROTR: Rotasi bit (misalnya, 1100 ROTR 1 = 0110).
  • XOR: 1 XOR 0 = 1.
  • AND: 1 AND 1 = 1.
SHA-256 kompleks tapi efisien untuk keamanan.

SHA-3: Keamanan Generasi Baru

SHA-3 (Keccak) menggunakan struktur sponge.

Cara Kerja SHA-3
  1. Preprocessing: Padding ke 1088 bit.
  2. State: Matriks 1600-bit.
  3. Absorb: 24 putaran Keccak-f.
  4. Squeeze: Hash 256-bit.
Contoh
  • "abc" → 3a985da74fe225b2....
BLAKE2: Kecepatan dan Efisiensi

BLAKE2 cepat dan praktis.

Cara Kerja BLAKE2b
  1. Preprocessing: Blok 128-byte.
  2. Kompresi: 10 putaran G-function.
  3. Output: "abc" → 508c5e8c327c14e2....
Perbandingan BLAKE2 vs SHA-3
  • BLAKE2: Cepat, sederhana, praktis.
  • SHA-3: Aman, fleksibel, kompleks.
Kesimpulan
Bitcoin, PoW, dan hashing adalah fondasi dunia digital modern. SHA-256 adalah mesin Bitcoin,   SHA-3 untuk masa depan, dan BLAKE2 untuk efisiensi. Pilih sesuai kebutuhanmu!

Apa pendapatmu tentang teknologi ini? Tulis di kolom komentar! Untuk pertanyaan lebih lanjut, saya, Dicki Lesmana, siap membantu.

Komentar

Postingan populer dari blog ini

Sejarah Google dari Waktu ke Waktu: Dari Garasi ke Raksasa Digital

Sejarah Terciptanya HP dan Produk Xiaomi: Dari Nol Hingga Jadi Raksasa Teknologi

Lei Jun: Visioner di Balik Kesuksesan Xiaomi