Apa Itu Hashing & Digital Signature Dalam Teknologi Blockchain? - Market Demon

Thursday, March 15, 2018

Apa Itu Hashing & Digital Signature Dalam Teknologi Blockchain?




Hashing merujuk kepada konsep mengambil apa sahaja nilai data input, mengaplikasikan algorithm kepada data tersebut, dan melahirkan output data "fixed-size" yang dipanggil 'Hash'. Input tersebut boleh jadi dalam segala bentuk nilai seperti nilai sa atau satu, sebuah fail MP3, sebuah novel, sekeping transkrip bank, malah seluruh internet sekalipun.

Maksudnya disini, input data tersebut boleh jadi sebesar yang mungkin ataupun infiniti. Algorithm hashing boleh dipilih berdasarkan keperluan kita sendiri. Malah terdapat banyak algorithm hashing yang terdapat secara terbuka "public". Untuk meringkaskannya lagi, algortihm boleh diambil dalam apa bentuk atau infiniti bits untuk input data, aplikasikan beberapa pengiraan algortihm, dan menghasilkan output data yang finit atau terbatas.
Sebagai contoh, 256 bits.

Apa kegunaan hashing? Kegunaan hashing yang kebiasaannya dalam seharian kita ialah untuk menghasilkan cap jari fail "fingerprint files", atau boleh dikenali sebagai zon semak "check zone". Ini bermaksud hash digunakan untuk mengesahkan fail itu tidak ditukar atau digubah tanpa izin "author" atau developer. Sebagai contoh, Wikileaks, mereka mengeluarkan satu report atau fail dengan MD5 hashes mereka, jadi sesiapa yang memuat turun fail tersebut dapat mengesahkan bahawa fail itu datang dari Wikileaks dengan mengira algortihm MD5 hash mereka dalam fail tersebut. Jika hash yang dikira tidak sama dengan hash MD5 Wikileaks, bermaksud fail yang dimuat turun itu telah diubah atau digodam oleh seseorang dalam apa cara sekalipun.

Disini dapat kita lihat bahawa penggunaan hash dalam teknologi blockchain sangat penting dan kritikal. Bagaimana blockchain dapat mengoptimumkan penggunaan hash? Hash atau ('hashes' kata jamak) digunakan dalam blockchain untuk menunjukkan situasi sebenar dunia sekarang. Data input adalah keseluruhan blockchain, bermaksud semua transaksi yang telah berlaku setakat ini menghasilkan data output yang mewakili keadaan blockchain tersebut. Hash itu digunakan untuk semua pihak bersetuju bahawa keadaan dunia blockchain ini adalah satu dan sama. Tetapi bagaimana cara untuk mengira hash ini?

Hash yang pertama dikira untuk blok yang pertama atau blok Genesis "Genesis block" menggunakan transaksi di dalam blok.


 Susunan untuk transaksi awal digunakan untuk mengira satu hash blok untuk blok Genesis.

Untuk setiap blok baru yang dihasilkan selepas itu, blok hash sebelum ini dan juga transaksi blok tersebut digunakan sebagai data input untuk menentukan hash blok yang baru itu.




Inilah cara bagaimana blok dihasilkan, setiap hash blok yang baru akan merujuk kepada hash blok yang datang sebelum itu. Sistem hashing ini memberi jaminan dimana tiada transaksi dalam sejarah atau history boleh ditukar kerana jika ada bahagian transaksi ditukar, hash blok tersebut akan bertukar seiringan sekali dengan hash blok sebelum yang lain.




Dengan cara ini, kita dapat melihat sebarang pertukaran dengan cara perbandingan hashes sahaja. Sistem ini sangat menarik kerana semua orang dari seluruh pelosok dunia di dalam blockchain hanya perlu bersetuju yang 256 bits untuk mewakili keseluruhan blockchain. Anda boleh rujuk video mengenai hashing dengan lebih lanjut disini : https://youtu.be/SSo_EIwHSd4

Blockchain Ethereum sekarang mempunyai berpuluh gigabyte, tapi keadaan blockchain ethereum berdasarkan rekod ialah hash hexadecimal (perenambelasan) mewakili 256 bits.


hexadecimal hash


Bagaimana pula dengan Digital Signature? Digital signature pula, seperti signature atau tandatangan, ialah method atau cara untuk membuktikan dimana seseorang itu adalah orang yang dinyatakan, tetapi disini ia menggunakan kriptografi (cryptography) atau matematik, dimana ia adalah lebih secure atau selamat daripada tandatangan tradisional yang boleh ditiru atau diciplak. Digital signature ialah cara untuk membuktikan bahawa mesej atau konteks itu berasal daripada satu orang yang spesifik dan bukan orang lain seperti hacker.

Tanpa kita sedar, kita menggunakan digital signature setiap hari dalam kehidupan kita. Bila anda menggunakan website melalui HTTPS, anda menggunakan SSL, dimana digital signature digunakan untuk menyalurkan trust atau kepercayaan di antara anda dan juga server. Sebagai contoh, bila anda melawati lawan sesawang Facebook.com, browser anda akan menyemak digital signature yang datang daripada Facebook untuk memastikan bahawa laman sesawang yang anda buka itu datang dari Facebook dan bukan berasal dari tempat lain atau hacker.



Dalam sistem "assymetric encryption", pengguna menghasilkan sesuatu yang dipanggil "key pair" atau kunci berkembar, dimana public key dan private key menggunakan algorithm yang sama. Hubungan antara kedua-duanya adalah berkait rapat secara matematik.



Public key - Digunakan untuk disebarkan dalam bentuk address atau alamat untuk terima mesej pengguna lain, seperti IP address atau alamat rumah.

Private key - Digunakan untuk disimpan secara rahsia dan juga menandatangani mesej anda secara digital apabila mesej itu diserahkan kepada orang lain. Tandatangan di dalam mesej itu digunakan untuk cross check atau semak semula dengan public key.

Dengan cara ini, penerima akan memastikan bahawa hanya satu pengirim yang tertentu yang memberi mesej itu. Menjana kunci berkembar "key pair" adalah sama dengan membuat akaun di blockchain, tetapi tanpa perlu mendaftar di mana-mana platform. Menarik bukan? Selain itu, setiap transaksi yang dilakukan di dalam blockchain ditandatangani secara digital oleh pengirim dengan menggunakan private key. Tandatangan atau signature ini akan memastikan hanya tuan empunya akaun sahaja yang boleh mengeluarkan duit dari akaun tanpa memerlukan pihak ketiga.

Jadi secara ringkasannya, blockchain tidak akan dapat dicipta tanpa hash dan digital signature. Hashing menyediakan cara dan jalan untuk semua orang di dalam blockchain bersetuju "agree" dengan keadaan dunia blockchain itu, sementara digital signature menyediakan cara untuk memastikan kesemua transaksi hanya boleh dibuat oleh tuan akaun sahaja. Kita semua memerlukan kedua-duanya untuk memastikan bahawa blockchain itu tidak boleh korup atau terjejas kredibilitinya.


sumber:
1) https://blockgeeks.com/what-is-hashing-digital-signature-in-the-blockchain/
2) https://www.youtube.com/watch?v=Y6GGzzKm2Ig