Fungsi hash: mesin senyap di balik segala hal dalam kripto

·4 mnt baca·Oleh SSP Editorial Team
Sampul SSP Academy: cara kerja fungsi hash dalam kripto

Fungsi hash: mesin senyap di balik segala hal dalam kripto

Bila Anda membongkar rantai blok hingga ke bagian-bagian intinya, Anda akan menemukan dua jenis kriptografi yang mengerjakan hampir semua pekerjaan. Tanda tangan digital menentukan siapa yang boleh membelanjakan. Fungsi hash menyatukan segala hal lainnya — blok, alamat, penambangan, ID transaksi, bahkan cara dompet mengurai apa yang hendak Anda tandatangani.

Fungsi hash jarang dijelaskan, karena jarang disadari. Ia layak diberi sepuluh menit, sebab begitu Anda memahaminya, sebagian besar kripto yang mengejutkan tak lagi tampak seperti sihir.

Apa yang dilakukan fungsi hash

Fungsi hash mengambil masukan apa pun — sepatah kata, sebuah berkas, seluruh blok transaksi — dan menghasilkan sidik jari berukuran tetap. SHA-256, yang dipakai Bitcoin, selalu menghasilkan 256 bit, biasanya ditulis sebagai 64 karakter heksadesimal, entah Anda memberinya satu huruf atau satu gigabita.

Tiga sifat membuatnya berguna:

Deterministik. Masukan yang sama selalu memberi keluaran yang sama. Siapa pun, di mana pun, bisa menghitung ulang dan memeriksanya.

Satu arah. Dari sebuah sidik jari, tak ada cara praktis untuk mundur ke masukannya. Satu-satunya cara adalah menebak masukan sampai ada yang cocok, dan untuk hash yang baik itu mustahil.

Tahan tabrakan. Mustahil menemukan dua masukan berbeda dengan sidik jari yang sama. Ubah satu karakter saja, dan keluarannya berubah total dan tak terduga.

Hanya itulah hash: sidik jari yang pendek, dapat diperiksa, dan tak dapat dipalsukan dari sesuatu yang lebih besar.

Di mana Anda menjumpai hash tanpa sadar

ID transaksi. Txid hanyalah hash dari sebuah transaksi. Itulah sebabnya ia unik, dan itulah yang Anda tempelkan ke penjelajah blok — ia menunjuk tepat satu transaksi, dan tak seorang pun bisa menghasilkan transaksi lain dengan ID yang sama.

Rantainya sendiri. Setiap blok memuat hash blok sebelumnya. Ubah apa pun di blok lama dan hash-nya berubah, memutus tautan ke setiap blok sesudahnya. Rangkaian sidik jari itulah yang membuat setiap perusakan sejarah terlihat.

Penambangan. Bukti kerja adalah undian hash: penambang meng-hash kepala blok berulang-ulang, mengubah sebuah angka tiap kali, sampai menemukan hasil di bawah sasaran. Karena hash tak terduga, tak ada jalan pintas — hanya lebih banyak percobaan, dan itulah sebabnya bukti kerja memakan energi sungguhan dan ongkos itu membeli keamanan.

Alamat. Sebagian besar alamat adalah hash dari sesuatu. Alamat Bitcoin klasik adalah hash dari kunci publik. Alamat Bitcoin SSP adalah P2WSH: hash SHA-256 dari skrip saksi yang menggambarkan aturan pembelanjaan 2-dari-2. Yang tertera di rantai sebelum Anda membelanjakan adalah sidik jari itu, bukan kunci-kuncinya.

Hash di dalam dompet

Hashing bukan hanya konsep di tingkat rantai. Ia muncul di perangkat lunak yang Anda pakai untuk menandatangani.

Saat SSP Key mengurai transaksi Ethereum sebelum Anda menyetujuinya, ia mengenali apa yang dilakukan panggilan itu lewat penyeleksi fungsi — empat bita pertama dari hash Keccak-256 atas tanda tangan fungsi. transfer(address,uint256) menghasilkan nilai yang diawali a9059cbb; approve(address,uint256) yang diawali 095ea7b3. Saat pengurai melihat empat bita itu di awal transaksi, ia tahu fungsi mana yang dipanggil dan bisa menunjukkan kepada Anda dalam bahasa biasa bahwa Anda sedang mengirim token atau memberi persetujuan.

Itu ilustrasi yang indah tentang kegunaan hash: sidik jari yang ringkas dan tak ambigu dari sesuatu yang lebih panjang. Itu juga pengingat akan batasnya, karena empat bita begitu pendek sehingga dua fungsi berbeda bisa berbagi satu penyeleksi. Itulah salah satu alasan pengurai sengaja gagal dengan menutup — segala yang tak terduga kembali ke data mentah alih-alih tebakan yang percaya diri.

Yang tak bisa dilakukan hash

Ia tak menyembunyikan masukan kecil. Hash bersifat satu arah, tetapi bila masukan berasal dari himpunan kemungkinan yang kecil, penyerang bisa meng-hash setiap kemungkinan lalu membandingkan. Itulah sebabnya PIN atau kata sandi pendek yang di-hash memberi perlindungan sangat kecil, dan sebabnya frasa pemulihan berupa kata-kata panjang acak, bukan sesuatu yang mudah diingat.

Ia tak membuktikan apa pun tentang makna. Hash membuktikan dua hal identik. Ia tak berkata apa pun tentang apakah salah satunya jujur. Hash yang terverifikasi sempurna dari transaksi jahat tetaplah transaksi jahat.

Ia bukan enkripsi. Anda tak bisa «mendekripsi» hash untuk mendapatkan aslinya kembali. Apa pun yang mengaku membalik hash sedang menebak.

Mengapa ini penting bagi Anda

Anda jarang akan menghitung hash dengan tangan. Tetapi memahaminya menjelaskan beberapa hal yang kalau tidak terasa seperti aturan untuk dihafal:

Mengapa txid membuktikan sebuah pembayaran ada. Mengapa Anda tak bisa menyunting transaksi yang sudah terkonfirmasi. Mengapa penambangan memakan energi. Mengapa alamat yang belum dibelanjakan menyingkap sidik jari, bukan kunci Anda. Mengapa frasa yang panjang dan acak aman, sedangkan yang pendek dan cerdik tidak.

Fungsi hash adalah bagian kripto yang bekerja begitu saja, dengan senyap, miliaran kali sehari. Mengetahui apa yang dijaminnya — dan apa yang tidak — adalah salah satu cara termurah untuk memahami sistem yang Anda percayai dengan uang Anda.

Bagikan artikel ini

Artikel terkait