Connect with us

Academy

Apa Itu Hash?

Published

on

Apa Itu Hash. Sumber: Binance Academy.

Banyak pengiat blockchain belum mengerti apa itu hash? Proses hash merujuk pada langkah pembuatan keluaran dengan ukuran tetap dari masukan yang memiliki ukuran berbeda-beda. Proses ini dijalankan dengan memanfaatkan rumus matematika yang disebut fungsi hash (diterapkan sebagai algoritma hashing).

Walaupun tidak semua fungsi hash terkait dengan penggunaan dalam bidang kriptografi, yang menjadi pusat perhatian dalam konteks kripto adalah fungsi hash kriptografi. Kehadiran fungsi ini memainkan peran utama dalam mata uang kripto, seperti yang terlihat dalam teknologi blockchain dan sistem terdistribusi lainnya, dengan dampak signifikan terhadap integritas data dan keamanan.

Fungsi hash konvensional dan hash kriptografi memiliki kesamaan dalam sifatnya yang deterministik. Sifat deterministik ini berarti bahwa selama masukan tidak berubah, algoritma hashing akan selalu menghasilkan keluaran yang sama, juga dikenal sebagai digest atau hash.

Secara khusus, algoritma hashing yang digunakan dalam mata uang kripto dirancang sebagai fungsi satu arah. Ini berarti bahwa algoritma ini sulit untuk diinverskan dengan mudah, memerlukan waktu dan sumber daya yang besar. Dengan kata lain, meskipun mudah untuk menghasilkan hash dari masukan, sangat sulit untuk melakukan sebaliknya (menghasilkan masukan dari hash). Secara umum, semakin sulit untuk menemukan masukan yang menghasilkan hash tertentu, semakin aman algoritma hash tersebut.

Bagaimana Fungsi Hash Bekerja

Berbagai fungsi hash akan menghasilkan keluaran dengan ukuran yang berbeda-beda, tetapi ukuran keluaran dari setiap algoritma hashing selalu tetap. Sebagai contoh, algoritma SHA-256 selalu menghasilkan keluaran berukuran 256 bit, sementara SHA-1 selalu menghasilkan digest 160 bit.

Sebagai ilustrasi, kita akan menjalankan kata “Binance” dan “binance” melalui algoritma hashing SHA-256 (yang digunakan dalam Bitcoin).

Perubahan kecil (misalnya, ukuran huruf pertama) menghasilkan hash yang sangat berbeda. Namun, karena menggunakan SHA-256, keluaran akan selalu berukuran 256 bit (atau 64 karakter) tanpa memperhatikan ukuran masukan. Terlebih lagi, berapa kali pun kedua kata ini dijalankan melalui algoritma, keluaran tetap sama.

Sebaliknya, jika menggunakan algoritma hashing SHA-1, hasilnya akan seperti berikut:

Secara spesifik, akronim SHA mengacu pada Secure Hash Algorithms. Ini mencakup algoritma SHA-0 dan SHA-1, serta kelompok SHA-2 dan SHA-3. SHA-256 termasuk dalam kelompok SHA-2, bersama dengan SHA-512 dan variasi lainnya. Saat ini, hanya kelompok SHA-2 dan SHA-3 yang dianggap aman.

Pentingnya Konsep Ini

Fungsi hash konvensional memiliki berbagai manfaat, termasuk dalam pencarian basis data, analisis data besar, dan pengelolaan data. Di sisi lain, fungsi hash kriptografi memiliki penerapan yang luas dalam keamanan informasi, seperti autentikasi pesan dan sidik jari digital. Dalam konteks Bitcoin, fungsi hash kriptografi memainkan peran penting dalam proses penambangan dan dalam pembuatan alamat serta kunci baru.

Keunggulan sebenarnya dari fungsi hash terlihat saat memproses informasi dalam jumlah besar. Sebagai contoh, kita bisa menjalankan berkas besar atau kumpulan data melalui fungsi hash dan menggunakan keluaran hash untuk dengan cepat memverifikasi akurasi dan integritas data. Hal ini dimungkinkan karena sifat deterministik fungsi hash: masukan selalu menghasilkan keluaran (hash) yang sederhana dan ringkas. Pendekatan semacam ini menghilangkan kebutuhan untuk menyimpan dan mengingat data dalam jumlah besar.

Secara khusus, teknologi hash sangat berperan dalam teknologi blockchain. Dalam blockchain Bitcoin, berbagai tahapan melibatkan penggunaan hash, terutama dalam proses penambangan. Hampir semua protokol mata uang kripto bergantung pada hash untuk menghubungkan transaksi-transaksi ke dalam blok-blok, serta untuk membentuk tautan kriptografi antar-blok, yang pada akhirnya membentuk struktur efektif dari blockchain.

Advertisement

Fungsi-Fungsi Hash Kriptografi

Sekali lagi, fungsi hash yang melibatkan teknik-teknik kriptografi dapat didefinisikan sebagai fungsi hash kriptografi. Pada umumnya, meretas fungsi hash kriptografi memerlukan upaya yang sangat besar, seperti pendekatan brute-force. Jika seseorang berupaya untuk “membalikkan” fungsi hash kriptografi, mereka harus secara berulang kali menerka inputnya melalui metode percobaan dan kesalahan hingga menghasilkan output yang cocok. Namun, terdapat situasi di mana berbagai input menghasilkan output yang serupa, yang dikenal sebagai “benturan”.

Dalam konteks teknis, sebuah fungsi hash kriptografi harus memenuhi tiga sifat untuk dianggap aman dan efektif. Kita dapat merangkum ini menjadi tiga kalimat singkat berikut.

  • Kekebalan Benturan (Collision Resistance): Tidak mudah untuk menemukan dua input yang berbeda menghasilkan hash yang sama sebagai output.
  • Kekebalan Pra-Gambar (Preimage Resistance): Tidak mudah “membalikkan” fungsi hash (menemukan input dari output yang diberikan).
  • Kekebalan Pra-Gambar Kedua (Second Preimage Resistance): Tidak mudah menemukan input kedua yang berkolisi dengan input yang sudah diketahui.

Collision resistance

Seperti yang telah dijelaskan, benturan terjadi saat berbagai input menghasilkan hash yang sama. Dengan demikian, fungsi hash dianggap tahan benturan hingga titik di mana benturan ditemukan. Harap dicatat bahwa benturan akan selalu ada dalam setiap fungsi hash karena jumlah kemungkinan input tidak terbatas, sementara jumlah kemungkinan output terbatas.

Dengan kata lain, fungsi hash dikatakan tahan benturan ketika kemungkinan menemukan benturan sangat rendah, menghabiskan jutaan tahun untuk menghitungnya. Oleh karena itu, walaupun tidak ada fungsi hash yang bebas benturan, beberapa di antaranya sangat kuat dan dianggap tahan (seperti SHA-256).

Dalam berbagai algoritma SHA, kelompok SHA-0 dan SHA-1 tidak lagi dianggap aman karena benturan telah ditemukan. Pada saat ini, kelompok SHA-2 dan SHA-3 dianggap tahan terhadap benturan.

Preimage resistance

Kekebalan pra-gambar berkaitan dengan konsep fungsi satu arah. Fungsi hash dianggap memiliki kekebalan pra-gambar jika probabilitas menemukan input yang menghasilkan output tertentu sangatlah rendah.

Harap dicatat bahwa ini berbeda dari sifat sebelumnya karena penyerang akan mencoba menebak input yang cocok dengan melihat output yang ada. Di sisi lain, benturan terjadi ketika dua input yang berbeda menghasilkan output yang sama, tanpa memedulikan input mana yang digunakan.

Preimage resistance kedua

Sederhananya, kekebalan pra-gambar kedua adalah sifat yang berada di antara dua sifat sebelumnya. Serangan pra-gambar kedua terjadi ketika seseorang berhasil menemukan input tertentu yang menghasilkan output yang sama dengan output lain yang berasal dari input berbeda yang sudah diketahui.

Dengan kata lain, serangan pra-gambar kedua adalah mencari benturan, tetapi bukan dengan mencari dua input acak yang menghasilkan hash yang sama. Sebaliknya, mereka mencari input yang menghasilkan hash yang cocok dengan hash yang dihasilkan oleh input yang sudah diketahui.

Oleh karena itu, setiap fungsi hash yang tahan benturan juga akan tahan serangan pra-gambar kedua. Namun, serangan pra-gambar masih dapat terjadi pada fungsi yang tahan terhadap benturan karena ini juga berarti menemukan input tunggal dari output tunggal.

Penambangan

Terdapat berbagai tahap dalam proses penambangan Bitcoin yang melibatkan fungsi-fungsi hash, termasuk verifikasi saldo, menghubungkan transaksi input dan output, serta pembentukan Merkle Tree dari transaksi-transaksi dalam satu blok. Namun, salah satu alasan utama keamanan blockchain Bitcoin adalah fakta bahwa para penambang harus menjalankan operasi hash secara berulang untuk menemukan solusi yang valid untuk blok berikutnya.

Advertisement

Secara khusus, seorang penambang harus mencoba berbagai input yang berbeda untuk menghasilkan nilai hash bagi blok kandidatnya. Intinya, ia hanya dapat mengesahkan blok tersebut jika mampu menghasilkan keluaran hash yang dimulai dengan sejumlah angka nol tertentu. Jumlah angka nol ini menentukan tingkat kesulitan penambangan, yang berfluktuasi berdasarkan tingkat hash yang ada dalam jaringan.

Tingkat hash ini pada dasarnya mencerminkan seberapa besar daya komputasi yang digunakan dalam penambangan Bitcoin. Jika tingkat hash jaringan meningkat, protokol Bitcoin secara otomatis akan menyesuaikan tingkat kesulitan penambangan, sehingga rata-rata waktu yang dibutuhkan untuk menambang satu blok tetap mendekati 10 menit.

Namun, jika beberapa penambang memutuskan untuk berhenti, menyebabkan penurunan dramatis dalam tingkat hash, maka tingkat kesulitan penambangan akan menyesuaikan diri dengan menurun pula (hingga rata-rata waktu blok kembali ke 10 menit).

Penting untuk dipahami bahwa para penambang tidak perlu menemukan benturan hash (collision), karena ada banyak hash yang dapat menghasilkan keluaran yang valid (dimulai dengan sejumlah angka nol tertentu). Dalam hal ini, ada beberapa solusi yang memenuhi syarat untuk blok tertentu, dan para penambang hanya perlu menemukan salah satunya, sesuai dengan ambang batas yang ditetapkan oleh tingkat kesulitan penambangan.

Karena penambangan Bitcoin melibatkan biaya yang signifikan, para penambang tidak memiliki insentif untuk memanipulasi sistem, karena tindakan semacam itu akan berakibat pada kerugian finansial yang serius. Semakin banyak penambang yang berpartisipasi dalam jaringan blockchain, semakin besar dan kuat jaringan tersebut menjadi.

Kesimpulan

Tidak diragukan lagi bahwa fungsi-fungsi hash memiliki peranan sangat penting dalam ilmu komputer, terutama ketika menghadapi data dalam jumlah besar. Ketika dikombinasikan dengan kriptografi, algoritma hashing menjadi alat serba guna, memberikan keamanan dan otentikasi dalam berbagai konteks.

Dengan demikian, fungsi-fungsi hash kriptografi memiliki peranan yang krusial dalam hampir semua jaringan mata uang kripto. Oleh karena itu, memahami sifat-sifat dan mekanisme kerjanya menjadi sesuatu yang sangat berharga bagi siapa pun yang tertarik dengan teknologi blockchain.

Jika kamu ingin mengetahui lebih dalam mengenai aset kripto atau cryptocurrency, bisa baca artikel “Belajar Crypto untuk Pemula Mulai Dari Sini.”

Sumber: Binance Academy Indonesia

Advertisement

Popular