Pratinjau gratis8 mnt membaca

Apa yang Dilakukan Fungsi Hash

Fungsi hash menerima input apa pun (sebuah kata, sebuah file, satu blok transaksi utuh) dan menghasilkan output pendek dengan panjang tetap, yang disebut hash atau digest. SHA-256, yang digunakan Bitcoin, selalu menghasilkan 256 bit, biasanya ditulis sebagai 64 karakter heksadesimal, baik inputnya satu huruf maupun sebuah film panjang.

Sifat-sifat yang penting

  • Deterministik: input yang sama selalu menghasilkan hash yang sama, di komputer mana pun.
  • Cepat dihitung: meng-hash file besar hanya butuh sepersekian detik.
  • Satu arah: dari hash saja, tidak ada cara praktis untuk menemukan input yang menghasilkannya, selain menebak.
  • Efek longsoran (avalanche effect): ubah satu karakter input, dan sekitar separuh bit output ikut berubah, sehingga input yang mirip menghasilkan hash yang sama sekali tidak berkaitan.

Sifat lainnya, ketahanan terhadap tabrakan (collision resistance), berarti tidak ada yang bisa menemukan dua input berbeda dengan hash yang sama. Tabrakan pasti ada, karena jumlah input yang mungkin lebih banyak daripada jumlah output, tetapi pada fungsi yang dirancang dengan baik, menemukannya akan membutuhkan daya komputasi yang melebihi semua yang ada.

Di mana Anda bertemu hash dalam kripto

  • Setiap blok mencatat hash dari blok sebelumnya, sehingga setiap perubahan pada riwayat lama dapat terdeteksi.
  • Merkle tree meng-hash setiap transaksi dalam satu blok hingga menjadi satu root hash, sehingga keberadaan sebuah transaksi di dalam blok dapat dibuktikan tanpa mengunduh seluruh blok.
  • Penambang Proof of Work mencari hash blok yang nilainya di bawah angka target, dan itu hanya bisa dilakukan dengan mencoba input satu demi satu.
  • Alamat Ethereum diambil dari potongan hash Keccak-256 sebuah public key.

Di mana hash berhenti melindungi Anda

Hash membuktikan bahwa data tidak berubah sejak di-hash. Hash tidak mengatakan apa pun tentang apakah data itu benar sejak awal. Dan sifat satu arah hanya berlaku jika inputnya sulit ditebak. Jika Anda meng-hash sebuah PIN empat digit, siapa pun dapat membaliknya dengan meng-hash semua 10.000 kemungkinan PIN lalu membandingkannya. Kata sandi, dan seed phrase yang dikarang sendiri oleh orang, gagal karena alasan yang sama: perlindungannya berasal dari jumlah kemungkinan input, bukan dari hash-nya.

Hash adalah segel pada sebuah dokumen, bukan penilaian atas isi dokumen itu.