Apa itu Hashing?

Anda mungkin kerap mendengar istilah hash atau hashing ketika membaca artikel terkait teknologi blockchain. Dalam terminologi sederhana, hashing adalah proses menghasilkan data keluaran (output data) yang panjangnya tetap dan sama, dari data masukan (input data) yang panjangnya berbeda-beda. Dalam konteks Bitcoin, hashing data masukan menggunakan algoritma hashing Secure Hash Algorithm (SHA)-256, yang merupakan varian dari standar umum SHA-2. Gunanya adalah untuk pengamanan data dengan metode penyandian (enkripsi).

SHA-256 dirancang oleh National Security Agency (NSA) Amerika Serikat (AS) dan dipatenkan pada tahun 2004 oleh National Institute of Standards and Technology (NIST). Kemudian oleh Pemerintah federal AS varian dari SHA-2, termasuk SHA-256, paten itu dilensikan kepada publik tanpa royalti, pada tahun 2001.

Anda bisa merasakan sendiri bagaimana prosesnya. Silahkan buka website ini. Ke dalam kotak yang tersedia silahkan ketik karakter apa saja. Misalnya saya ketikkan “Triv” (tanpa tanpa petik). Seketika di bagian bawah hasil hash-nya muncul. Berapun jumlah karakter yang Anda masukkan (input), panjang karakter output-nya tetap sama, yakni 64 karakter, termasuk ada perbedaan output antara input “t” dengan input “T”. Silahkan coba sendiri dengan memasukkan data sepanjang 64 karakter atau lebih. Hasilnya tetap 64 karakter dan SHA-256. Jikalau antar kata ada spasi, itu juga dihitung.

Output Hash
Triv A3B56C052D0CB495237B951B77D1271BE03E09E775E28FB6AA11465F77C129E8
t E3B98A4DA31A127D4BDE6E43033F66BA274CAB0EB7EB1C70EC41402BF6273DD8
T E632B7095B0BF32C260FA4C539E9FD7B852D0DE454E9BE26F24D0D6F91D069D3
Hash A91069147F9BD9245CDACAEF8EAD4C3578ED44F179D7EB6BD4690E62BA4658F2
Bitcoin B4056DF6691F8DC72E56302DDAD345D65FEAD3EAD9299609A826E2344EB63AA4
Silahkan coba sendiri 424E4736C989808E96476FEE28E919E03639E611CA8AF57C2308966818A3A656
[1 kali SPASI] 36A9E7F1C95B82FFB99743E0C5C4CE95D83C9A430AAC59F84EF3CBFAB6145068
[10 kali SPASI] E91772CCB5E6CE5F932D6417EACD9A1E031B957101CDB68BE76D417DEFA7FD28

 

Dari sini kita sudah tahu manfaatnya. Daripada kita mengingat data masukan yang berjumlah besar, kita cukup merekam hash-nya saja, sehingga memudahkan proses pelacakan data. Tetapi, bukan berarti data keluaran dapat menentukan data masukan, karena SHA bersifat deterministik (tujuan tunggal atau linear).

Nah, jikalau hashing dapat menciptakan karakter yang unik dari setiap data masukan, berapa banyak kombinasi hashing yang bisa terbentuk? Nah satuan ukuran data di dunia komputer disebut bit, maka ada dua kemungkinan dalam bilangan binari, yakni 0 dan 1 (basis 2). Kalau misalnya angka binari 1001011, ia memiliki panjang 7 bit. Jadi, pada SHA-256 ada 2256  (2 pangkat 256) kemungkinan kombinasi!

Artinya, peretas perlu kombinasi kata sandi sebanyak itu mencuri data di dalam sebuah sistem. Oleh komputer super yang ada saat ini pun mustahil dilakukan. Nah, dalam sistem Bitcoin, kemustahilan itu diperkuat dengan pendistribusian data identik di setiap simpul jaringan (node), di mana setiap simpul yang jumlahnya ribuan bisa berperan sebagai server sekaligus client.

Jadi, katakanlah ada 10 ribu node, maka peretas perlu merusak semua data di 100 ribu node itu pada saat yang bersamaan. Semakin lampau data yang ingin diretas, maka semakin sulit data dipecahkan, karena semua data dalam blok saling terkait. [vins]

 

 

Be the first to write a comment.

Your feedback