Hash adalah sidik jari dari data. Masukkan input apa pun ke dalam fungsi hash dan Anda akan mendapatkan string karakter dengan panjang tetap. Input yang sama selalu menghasilkan hash yang sama. Ubah satu karakter dalam input dan hash akan berubah sepenuhnya. Sifat ini membuat hash berguna untuk verifikasi. Anda dapat memeriksa bahwa sebuah file belum diubah dengan membandingkan hash-nya dengan nilai yang diketahui valid. Bitcoin menggunakan SHA-256. Ethereum menggunakan Keccak-256. Setiap blok berisi hash dari blok sebelumnya, yang menghubungkan rantai tersebut.
Hash bersifat satu arah. Anda tidak dapat menelusuri kembali dari hash ke input asli. Itulah mengapa hash digunakan untuk kata sandi dan bukti. Penambang bersaing untuk menemukan hash di bawah target tertentu. Mereka mengubah nonce, melakukan hashing pada header blok, dan memeriksa hasilnya. Proses ini adalah tebak-dan-periksa dalam skala besar. Menemukan hash yang valid membuktikan bahwa pekerjaan telah dilakukan. Memverifikasinya hampir tidak membutuhkan usaha. Asimetri itulah yang menjadi dasar dari proof-of-work. Fungsi hash juga digunakan untuk menghasilkan alamat dompet dan memverifikasi integritas transaksi.
Properti fungsi hash
- Deterministik — input yang sama selalu memberikan output yang sama.
- Komputasinya cepat — verifikasinya murah.
- Tahan terhadap preimage — tidak dapat membalikkan hash.
- Efek longsoran salju — perubahan input kecil, output yang sangat berbeda.
Hash bukanlah enkripsi. Ini adalah digest satu arah. Tidak ada kunci dan tidak ada cara untuk mendekripsi.
Comments
No comments yet. Be the first to share a thought.
Leave a comment