hash
Apa Itu Hash?
Hash adalah fungsi matematika yang mengubah input dengan panjang sewenang-wenang menjadi output terenkripsi dengan panjang tetap. Jadi terlepas dari jumlah asli data atau ukuran file yang terlibat, hash uniknya akan selalu berukuran sama. Lebih-lebih lagi, hash tidak dapat digunakan untuk "merekayasa balik" input dari output hash, karena fungsi hash adalah "satu arah" (seperti penggiling daging; Anda tidak bisa memasukkan daging giling kembali ke steak). Tetap, jika Anda menggunakan fungsi seperti itu pada data yang sama, hashnya akan identik, sehingga Anda dapat memvalidasi bahwa datanya sama (mis., tidak berubah) jika Anda sudah mengetahui hashnya.
Hashing juga penting untuk manajemen blockchain dalam cryptocurrency.
Takeaways Kunci
- Hash adalah fungsi yang memenuhi tuntutan terenkripsi yang diperlukan untuk menyelesaikan komputasi blockchain.
- Panjang hash tetap karena hampir tidak mungkin untuk menebak panjang hash jika seseorang mencoba memecahkan blockchain.
- Data yang sama akan selalu menghasilkan nilai hash yang sama.
- Sebuah hash, seperti nonce atau solusi, adalah tulang punggung jaringan blockchain.
- Sebuah hash dikembangkan berdasarkan informasi yang ada di header blok.
Bagaimana Hash Bekerja
Fungsi hash tipikal mengambil input dengan panjang variabel untuk mengembalikan output dengan panjang tetap. Fungsi hash kriptografis menggabungkan kemampuan penyampaian pesan dari fungsi hash dengan properti keamanan.
Fungsi hash biasanya digunakan struktur data dalam sistem komputasi untuk tugas, seperti memeriksa integritas pesan dan mengotentikasi informasi. Meskipun secara kriptografi dianggap "lemah" karena dapat diselesaikan dalam waktu polinomial, mereka tidak mudah diuraikan.
Fungsi hash kriptografi menambahkan fitur keamanan ke fungsi hash biasa, sehingga lebih sulit untuk mendeteksi isi pesan atau informasi tentang penerima dan pengirim.
Secara khusus, fungsi hash kriptografi menunjukkan tiga properti ini:
- Mereka "bebas tabrakan." Ini berarti bahwa tidak ada dua hash input yang harus dipetakan ke hash output yang sama.
- Mereka bisa disembunyikan. Seharusnya sulit untuk menebak nilai input untuk fungsi hash dari outputnya.
- Mereka harus ramah teka-teki. Seharusnya sulit untuk memilih input yang memberikan output yang telah ditentukan. Dengan demikian, input harus dipilih dari distribusi yang seluas mungkin.
Karena fitur hash, mereka digunakan secara luas dalam keamanan online—dari melindungi kata sandi hingga mendeteksi pelanggaran data hingga memeriksa integritas file yang diunduh.
Hashing dan Cryptocurrency
Tulang punggung cryptocurrency adalah blockchain, yang merupakan buku besar global yang dibentuk dengan menghubungkan blok-blok individual dari data transaksi. Blockchain hanya berisi transaksi yang divalidasi, yang mencegah transaksi penipuan dan pengeluaran ganda mata uang. Nilai terenkripsi yang dihasilkan adalah rangkaian angka dan huruf yang tidak menyerupai data aslinya dan disebut hash. Penambangan Cryptocurrency melibatkan bekerja dengan hash ini.
Hashing membutuhkan pemrosesan data dari blok melalui fungsi matematika, yang menghasilkan keluaran dengan panjang tetap. Menggunakan output dengan panjang tetap meningkatkan keamanan karena siapa pun yang mencoba mendekripsi hash tidak akan dapat mengetahui berapa lama atau pendek input hanya dengan melihat panjang output.
Memecahkan hash dimulai dengan data yang tersedia di header blok dan pada dasarnya memecahkan masalah matematika yang kompleks. Setiap header blok berisi nomor versi, stempel waktu, hash yang digunakan di blok sebelumnya, hash dari akar Merkle, nonce, dan hash target.
Penambang berfokus pada nonce, serangkaian angka. Nomor ini ditambahkan ke konten hash dari blok sebelumnya, yang kemudian di-hash. Jika hash baru ini kurang dari atau sama dengan hash target, maka itu diterima sebagai solusi, penambang diberi hadiah, dan blok ditambahkan ke blockchain.
Proses validasi untuk transaksi blockchain bergantung pada data yang dienkripsi menggunakan hashing algoritmik.
Pertimbangan Khusus
Memecahkan hash mengharuskan penambang untuk menentukan string mana yang akan digunakan sebagai nonce, yang itu sendiri membutuhkan sejumlah besar trial-and-error. Ini karena nonce adalah string acak. Sangat tidak mungkin seorang penambang akan berhasil menemukan nonce yang benar pada percobaan pertama, artinya penambang berpotensi menguji sejumlah besar opsi nonce sebelum melakukannya dengan benar. Semakin besar kesulitannya—ukuran seberapa sulitnya membuat hash yang memenuhi persyaratan hash target—semakin lama waktu yang dibutuhkan untuk menghasilkan solusi.
Contoh Hash
Hashing kata "halo" akan menghasilkan output yang sama panjangnya dengan hash untuk "Saya pergi ke toko." Fungsi yang digunakan untuk menghasilkan hash adalah deterministik, artinya akan menghasilkan hasil yang sama setiap kali input yang sama digunakan. Ini dapat menghasilkan input hash secara efisien; itu juga membuat penentuan input menjadi sulit (mengarah ke penambangan), serta membuat perubahan kecil pada hasil input yang tidak dapat dikenali, hash yang sama sekali berbeda.
Memproses fungsi hash yang diperlukan untuk mengenkripsi blok baru membutuhkan kekuatan pemrosesan komputer yang besar, yang bisa mahal. Untuk menarik individu dan perusahaan, disebut sebagai penambang, untuk berinvestasi dalam teknologi yang dibutuhkan, jaringan cryptocurrency menghadiahi mereka dengan token cryptocurrency baru dan biaya transaksi. Penambang diberi kompensasi hanya jika mereka adalah yang pertama membuat hash yang memenuhi persyaratan yang diuraikan dalam hash target.
Pertanyaan yang Sering Diajukan
Apa itu fungsi hash?
Fungsi hash adalah fungsi matematika yang mengubah atau "memetakan" sekumpulan data tertentu menjadi string bit dengan ukuran tetap, juga dikenal sebagai "nilai hash."
Bagaimana nilai hash dihitung?
Fungsi hash menggunakan algoritme matematika kompleks yang mengubah data dengan panjang sembarang menjadi data dengan panjang tetap (misalnya, 256 karakter). Jika Anda mengubah satu bit di mana pun dalam data asli, seluruh nilai hash berubah, membuatnya berguna untuk memverifikasi fidelitas file digital dan data lainnya.
Untuk apa hash digunakan dalam blockchain?
Hash digunakan di beberapa bagian sistem blockchain. Pertama, setiap blok berisi hash dari header blok dari blok sebelumnya, memastikan bahwa tidak ada yang dirusak saat blok baru ditambahkan. Penambangan mata uang kripto menggunakan proof-of-work (PoW), lebih-lebih lagi, menggunakan hashing dari angka yang dihasilkan secara acak untuk sampai pada nilai hash tertentu yang berisi serangkaian angka nol di depan. Fungsi arbitrer ini membutuhkan banyak sumber daya, mempersulit aktor jahat untuk menyalip jaringan.
Blockchain
-
Pohon Merkle
Apa itu Pohon Merkle? Pohon Merkle adalah struktur data yang digunakan dalam aplikasi ilmu komputer. Dalam bitcoin dan cryptocurrency lainnya, Merkle tree berfungsi untuk mengkodekan data blockchain...
-
Coinbase memberi tahu 6.000 pelanggan tentang pelanggaran data
Coinbase telah mengirimkan surat kepada 6.000 pelanggan yang memberi tahu mereka tentang pelanggaran data yang menyebabkan peretas menghapus akun cryptocurrency. Surat itu dikirim beberapa bulan sete...