Hashing
Cari tahu apa itu Hashing, fungsi, contoh, cara kerja dan berbagai hal lainnya yang saling berkaitan hanya di Kamus Investasi Nanovest
![article author image](/_next/image?url=https%3A%2F%2Fstorage.googleapis.com%2Fnanovest-prod-news-public-assets%2Fdefault_avatar_f6327db5b0%2Fdefault_avatar_f6327db5b0.webp&w=828&q=75)
Kiki • Jul 1, 2024
Apa Itu Hashing/Hash?
Hash adalah sebuah fungsi matematika yang mengubah sebuah input dengan panjang yang berubah-ubah menjadi sebuah output terenkripsi dengan panjang yang tetap. Dengan demikian, berapa pun jumlah data asli atau ukuran file yang terlibat, hash uniknya akan selalu berukuran sama. Selain itu, hash tidak dapat digunakan untuk merekayasa balik input dari output hash karena fungsi hash bersifat satu arah. Akan tetapi, jika menggunakan fungsi tersebut pada data yang sama, hash-nya akan identik, sehingga dapat memvalidasi bahwa data tersebut sama (yaitu, tidak diubah) jika sudah mengetahui hash-nya. Hashing juga penting untuk manajemen blockchain dalam kripto.
Bagaimana Hash Bekerja
Fungsi hash yang umum mengambil input dengan panjang variabel untuk mengembalikan output dengan panjang tetap. Fungsi hash kriptografi menggabungkan kemampuan pengiriman pesan dari fungsi hash dengan properti keamanan. Fungsi hash adalah algoritma yang menentukan bagaimana informasi dienkripsi. Sebagai contoh, Secure Hashing Algorithm 256 (SHA-256) melalui proses untuk mengenkripsi input yang diterimanya:
- Mengubahnya menjadi biner
- Membuat nilai hash
- Menginisialisasi konstanta
- Memotong data menjadi beberapa bit
- Membuat jadwal pesan
- Menjalankan perulangan kompresi
- Memodifikasi nilai akhir
Dengan menggunakan SHA-256, kata "Hello" akan menghasilkan output dengan jumlah karakter yang sama (64) dengan "Hello world" dan "Hello John." Namun, hash akan sangat berbeda untuk ketiganya - perlu diingat bahwa huruf kapital juga mengubah hash:
- Hello: 185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969
- Hello world: 64ec88ca00b268e5ba1a35678a1b5316d212f4f366b2477232534a8aeca37f3c
- Hello John: a8119595d77342cc73c93697a7f70920d3f4ded5d458e31907607e997ff76868
Fungsi yang digunakan untuk menghasilkan hash bersifat deterministik, yang berarti fungsi ini akan menghasilkan hasil yang sama setiap kali input yang sama digunakan. SHA 256 dapat menghasilkan output hash dalam milidetik dengan daya komputasi yang sangat kecil, tetapi juga menyulitkan dalam menentukan input. Hal ini membuat hashing menjadi ideal untuk mengamankan mata uang digital karena dibutuhkan ribuan tahun untuk membalikkan enkripsi untuk menentukan input asli dengan teknologi modern. Fungsi hash merupakan struktur data yang umum digunakan dalam sistem komputasi untuk tugas-tugas seperti memeriksa integritas pesan dan mengautentikasi informasi. Fungsi hash kriptografi menambahkan fitur keamanan, membuat pendeteksian isi pesan atau informasi menjadi lebih sulit. Secara khusus, fungsi hash kriptografi menunjukkan tiga sifat ini:
Mereka bebas tabrakan: Ini berarti tidak ada dua hash input yang berbeda yang dapat dipetakan ke hash output yang sama.
Disembunyikan: Sulit untuk mengetahui nilai input fungsi hash dari outputnya.
Mereka harus ramah teka-teki: Sulit untuk memilih input yang memberikan output yang sudah ditentukan sebelumnya. Oleh karena itu, input harus berasal dari distribusi yang seluas mungkin.
Hashing dan Kripto
Tulang punggung kripto adalah blockchain, yang merupakan buku besar terdistribusi secara global yang dibentuk dengan menghubungkan setiap blok data transaksi melalui hashing. Blockchain hanya berisi transaksi yang tervalidasi, yang mencegah transaksi penipuan dan penggunaan mata uang secara ganda. Penambangan dan validasi kripto melibatkan proses hashing ini. Memecahkan hash mata uang digital dimulai dengan menggunakan header blok dari blok sebelumnya sebagai input dan menghasilkan hash. Setiap header blok berisi nomor versi, stempel waktu, hash yang digunakan pada blok sebelumnya, hash dari akar Merkle, nonce, dan hash target. Tujuannya adalah untuk menghasilkan hash yang sama atau kurang dari hash target jaringan. Di dalam hash terdapat urutan angka yang disebut nonce, atau angka yang digunakan satu kali. Program penambangan berfokus pada nonce, yang pada percobaan pertama dimulai dari nol. Jika usaha gagal, program akan menambahkan 1 pada nonce, dan menghasilkan hash lagi. Program akan menambahkan 1 pada setiap percobaan yang gagal sampai menghasilkan hash yang kurang dari atau sama dengan hash target, lalu hash tersebut diterima sebagai solusi. Memecahkan hash mengharuskan penambang untuk terus mencoba menghasilkan nilai yang tepat, yang membutuhkan banyak sekali percobaan dan kesalahan. Penambang yang berhasil memecahkan hash akan mendapatkan reward, dan blok tersebut akan ditambahkan ke dalam blockchain. Sangat tidak mungkin seorang penambang akan berhasil menghasilkan nonce yang benar pada percobaan pertama, yang berarti bahwa penambang berpotensi untuk menguji sejumlah besar pilihan nonce sebelum berhasil melakukannya dengan benar. Semakin besar tingkat kesulitannya sebuah ukuran seberapa sulit untuk membuat sebuah hash yang memenuhi persyaratan hash target-maka semakin lama waktu yang dibutuhkan untuk menghasilkan sebuah solusi.
Apa yang Dimaksud dengan Fungsi Hash?
Fungsi hash adalah algoritme yang mengubah atau memetakan sekumpulan data tertentu menjadi string bit dengan ukuran tetap, yang juga dikenal sebagai hash.
Bagaimana Hash dihitung?
Fungsi hash menggunakan algoritme kompleks yang mengubah data dengan panjang yang berubah-ubah menjadi data dengan panjang yang tetap (misalnya, 256 karakter). Jika mengubah satu bit di mana saja pada data asli, seluruh nilai hash akan berubah, sehingga berguna untuk memverifikasi keaslian file digital dan data lainnya.
Untuk Apa Hash Digunakan dalam Blockchain?
Hash digunakan di beberapa bagian sistem blockchain. Setiap header blok berisi hash blok sebelumnya, yang memastikan bahwa tidak ada yang dirusak saat blok baru ditambahkan. Blockchain mata uang digital menggunakan hash untuk mengamankan informasi dan membuat buku besar tidak dapat diubah. Dalam blockchain kripto, hash adalah angka heksadesimal yang bersifat deterministik. Artinya, berapa pun jumlah karakter yang dimasukkan, hash akan selalu memiliki jumlah karakter yang sama. Contohnya, hash Bitcoin selalu terdiri dari 64 digit. Hash digunakan untuk mengamankan informasi-dalam kasus mata uang digital, hash digunakan untuk memastikan data yang terdapat dalam blok pada blockchain tidak diubah. Informasi yang dienkripsi oleh fungsi hash divalidasi oleh peserta jaringan ketika mereka mencoba untuk menghasilkan hash kurang dari target jaringan. Ketika target hash tercapai, jaringan akan menutup blok-konsensus tercapai setelah blok ditutup karena jaringan terus memvalidasi transaksi dan memblokir informasi setelah hash diselesaikan. Berinvestasi dalam mata uang kripto dan Initial Coin Offerings ("ICO") lainnya sangat berisiko dan spekulatif, karena situasi setiap individu itu unik, seorang profesional yang berkualifikasi harus selalu dikonsultasikan sebelum membuat keputusan keuangan apa pun.