Penjelasan : Bagaimana Cara Blockchain bekerja

By | October 17, 2020

Pada 2017, Bitcoin benar-benar meledak dan menarik perhatian banyak orang. Setelah bertahun-tahun tidak bersuara, harga Bitcoin tiba-tiba meningkat pesat dari sekitar $ 1.000 menjadi hampir $ 20.000. Banyak orang yang merasa diri mereka adalah seorang trader profesional ketika momen ini terjadi.

Ya, seseorang bisa mengdapatkan sekarung uang waktu yang singkat. Tetapi sekarang saatnya semua sadar, bahwa pesta telah berakhir.

Dibalik itu semua ada fakta menarik yang mana tidak di ketahui banyak orang, bahwa ada teknologi blockchain yang menopang aktivitas penggunaan Bitcoin selama ini. Dan teknologi ini, mungkin masih memiliki potensi besar di masa mendatang.

Banyak project mulai bermunculan dengan mengadopsi teknologi blockchain dengan inspirasi mereka masing masing. Tetapi inspirasi semacam itu akan membutuhkan pemahaman yang lebih baik mengenai cara kerja teknologi terlebih dahulu. Sayangnya, sebagian besar penjelasan saat ini di luar sana masih dangkal, kurang mendalam dan kurang detail, tidak satupun dari penjelasan yang bertebaran di internet mengarah pada pemahaman yang jelas.

Jadi mulai dari mana?

Saya menyarankan sobat untuk mulai di sini. Luangkan waktu sepuluh hingga lima belas menit , saya pasti akan menjelaskan apa yang dimaksud teknologi revolusioner ini secara clear dan mudah dipahami. Dan ilmu ini tentu saja akan sangat berharga untuk sobat disini , jadi Nikmatilah!

Apa sebenarnya Blockchain?

Blockchain adalah konsep digital untuk menyimpan data. Data ini memiliki dalam bentuk blok, jadi bayangkan sebuah blok yang berisi data dan terdistribusi secara digital. Blok-blok ini dirangkai bersama, sehingga membuat datanya tidak dapat diubah. Ketika satu blok data dirantai ke blok lain, datanya tidak akan pernah bisa diubah lagi. Blok ini akan bisa diakses untuk umum bagi siapa saja yang ingin melihatnya, dan datanya adalah persis seperti yang pernah ditambahkan ke blockchain. Itu cukup revolusioner, karena memungkinkan kita untuk menyimpan rekam jejak hampir semua hal yang dapat kita pikirkan (untuk beberapa nama: hak milik, identitas, saldo uang, catatan medis), tanpa risiko catatan itu akan rusak.

Jika saya membeli rumah sekarang dan menambahkan foto hak milik ke blockchain, saya akan selalu dan selamanya dapat membuktikan bahwa saya memiliki hak tersebut pada saat itu. Tidak ada yang dapat mengubah informasi itu setelah ada di blockchain (yah, ada satu cara, tetapi ini adalah materi lanjutan jadi saya sarankan sobat membacanya nanti, sobat dapat menemukannya di sini). Jadi – Blockchain adalah cara untuk menyimpan data dan membuatnya tidak dapat diubah. Kedengarannya bagus, tapi pertanyaan besarnya tentu saja: Bagaimana cara kerjanya?

Langkah Pertama : Transaksi Data

Baiklah, mari kita mulai dengan sebuah contoh: blockchain milik Bitcoin. Blockchain milik Bitcoin adalah blockchain tertua yang ada. Blok-blok di blockchain milik Bitcoin masing-masing terdiri dari sekitar data berukuran 1 MB (MegaByte). Pada saat penulisan ini menghitung sekitar 653.000 blok, yang berarti kira-kira total 653.000 MB telah disimpan di blockchain ini. Data di blockchain milik Bitcoin secara eksklusif berasal dari data transaksi yang terkait dengan transaksi Bitcoin. Ini adalah sebuah history data yang besar yang berisi semua transaksi Bitcoin yang pernah terjadi, dimulai dari transaksi Bitcoin pertama kalinya. Pada artikel ini kita akan berasumsi bahwa blockchain menyimpan data transaksi.

Langkah Kedua : Merangkai blok (dengan hash)

Bayangkan sekumpulan blok yang berisi data transaksi.

Contoh sekumpulan blok pada blockchain

Tiga blok, semuanya berisi data transaksi. Sobat bisa membandingkannya layaknya beberapa dokumen word yang berdiri sendiri yang hanya menjelaskan transaksi apa yang telah terjadi dan bagaimana hal tersebut memengaruhi saldo tertentu. Dokumen pertama akan menjelaskan secara kronologis transaksi pertama yang terjadi hingga 1 MB, kemudian transaksi berikutnya akan dijelaskan dalam dokumen kedua hingga MB lain, dan seterusnya. Dokumen-dokumen ini adalah blok data. Blok-blok ini sekarang dihubungkan (alias dirantai) bersama. Untuk melakukan ini, setiap blok mendapat tanda tangan (digital) unik yang sama persis dengan string data di blok itu. Jika sesuatu di dalam blok berubah, bahkan hanya satu digit yang berubah, blok tersebut akan mendapatkan tanda tangan baru. Bagaimana cara kerjanya? Ini terjadi melalui mekanisme hashing dan akan dijelaskan secara menyeluruh nanti di langkah 3.

Katakanlah blok 1 mendaftarkan dua transaksi, transaksi 1 dan transaksi 2. Bayangkan bahwa transaksi ini membuat total data 1 MB . Blok yang berisi data ini sekarang mendapat tanda tangan digital untuk string data khusus ini. Misalkan tanda tangannya adalah ‘X32’. Seperti inilah tampilannya:

Ingat, satu digit perubahan pada data di blok 1 sekarang akan menyebabkannya mendapatkan tanda tangan berbeda! Data di blok 1 sekarang terhubung ke blok 2 dengan menambahkan tanda tangan blok 1 ke data blok 2. Tanda tangan blok 2 sekarang sebagian didasarkan pada tanda tangan blok 1, karena termasuk dalam rangkaian data di blok 2. Berikut tampilannya:

Tanda tangan ini menghubungkan blok satu sama lain, menjadikannya rantai blok. Mari kita bayangkan menambahkan blok lain ke rantai blok ini; sebagai contoh blok 3. Berikut tampilannya:

Sekarang bayangkan jika data di blok 1 diubah. Katakanlah bahwa transaksi antara Damian dan George diubah dan Damian sekarang seharusnya mengirim 500 Bitcoin ke George, bukan 100 Bitcoin. String data di blok 1 sekarang berbeda, artinya blok tersebut juga mendapat tanda tangan baru. Tanda tangan yang sesuai dengan kumpulan data baru ini tidak lagi X32. Katakanlah sekarang ‘W10’ sebagai gantinya. Inilah yang terjadi sekarang:

Tanda tangan W10 tidak lagi cocok dengan tanda tangan yang sebelumnya yang telah ditambahkan ke blok 2. Blok 1 dan 2 sekarang dianggap tidak lagi dirantai satu sama lain. Ini menunjukkan kepada pengguna lain (publik) dari blockchain ini bahwa beberapa data di blok 1 telah diubah, dan karena blockchain seharusnya tidak dapat diubah, mereka menolak perubahan ini dengan mengembalikan ke catatan sebelumnya dari blockchain di mana semua blok masih dirantai bersama (catatan dimana Damian mengirim 100 BTC ke George). Satu-satunya cara agar perubahan tetap tidak terdeteksi, adalah jika semua blok tetap dirantai satu sama lain. Ini berarti agar perubahan tidak terdeteksi, tanda tangan baru dari blok 1 harus menggantikan yang lama pada data blok 2. Tetapi jika data blok 2 berubah, ini akan menyebabkan blok 2 memiliki tanda tangan yang berbeda juga. Misalkan tanda tangan blok 2 sekarang adalah ‘PP4’, bukan 9BZ. Sekarang blok 2 dan 3 tidak lagi dirangkai bersama.

Blok di blockchain tersedia untuk umum bagi siapa saja. Jadi, jika ada perubahan yang tidak tidak terdeteksi di blockchain, semua blok harus tetap dirantai dengan benar (jika tidak, orang dapat mengetahui bahwa blok tertentu tidak ditautkan dengan benar satu sama lain). Ini berarti bahwa mengubah satu blok memerlukan tanda tangan baru untuk setiap blok lain yang muncul setelahnya hingga akhir rantai. Hal ini dianggap hampir mustahil bagi siapa saja untuk mengubah data secara rahasia. Untuk memahami alasannya, sobat perlu memahami bagaimana tanda tangan dibuat.

Langkah Ketiga : Bagaimana tanda tangan (hash) dibuat

Jadi, mari kita bayangkan satu blok lagi; blok 1. Blok 1 adalah catatan hanya satu transaksi yaitu catatan mengenai Thomas mengirim 100 Bitcoin ke David. String data khusus ini sekarang membutuhkan tanda tangan. Di blockchain, tanda tangan ini dibuat menggunakan fungsi hash kriptografi. Fungsi hash kriptografi adalah rumus yang sangat rumit yang mengambil string masukan apa pun dan mengubahnya menjadi string keluaran 64 digit yang unik. Misalnya, sobat dapat memasukkan kata ‘Jinglebells’ ke dalam fungsi hash ini (ada juga varian lain dari algoritme hashing, tetapi saya menggunakan yang ini untuk contoh ), dan sobat akan melihat bahwa keluaran untuk string data khusus ini adalah:

761A7DD9CAFE34C7CDE6C1270E17F773025A61E511A56F700D415F0D3E199868

Jika satu digit input berubah entah sengaja atau tidaks engaja, termasuk spasi, mengubah huruf kapital atau menambahkan titik misalnya, outputnya akan sangat berbeda. Jika sobat menambahkan titik ke kata ini dan menjadikannya ‘Jinglebells.’, sobat akan melihat bahwa keluaran untuk string data khusus ini adalah:

B9B324E2F987CDE8819C051327966DD4071ED72D998E0019981040958FEC291B

Jika sekarang kita menghapus titi-nya lagi, kita akan mendapatkan hasil yang sama seperti sebelumnya:

761A7DD9CAFE34C7CDE6C1270E17F773025A61E511A56F700D415F0D3E199868

Fungsi hash kriptografi selalu memberikan keluaran yang sama untuk masukan yang sama, tetapi selalu menghasilkan keluaran yang berbeda untuk masukan yang berbeda. Fungsi hash kriptografi ini digunakan oleh blockchain Bitcoin untuk memberikan tanda tangan pada blok. Input dari fungsi hash kriptografi dalam hal ini adalah data di blok, dan outputnya adalah tanda tangan yang berhubungan dengan itu. Mari kita lihat blok 1 lagi. Thomas mengirim 100 Bitcoin ke David.

Sekarang bayangkan string data dari blok ini terlihat seperti ini:

Block 1 Thomas -100 David +100

Jika string data ini dimasukkan ke dalam algoritma hashing, output (tanda tangan) akan menjadi ini:

BAB5924FC47BBA57F4615230DDBC5675A81AB29E2E0FF85D0C0AD1C1ACA05BFF

Tanda tangan ini sekarang ditambahkan ke data blok 2. Katakanlah David sekarang mentransfer 100 Bitcoin ke Jimi. Blockchain sekarang terlihat seperti ini:

Block 2 David -100 Jimi +100

BAB5924FC47BBA57F4615230DDBC5675A81AB29E2E0FF85D0C0AD1C1ACA05BFF

Jika string data ini dimasukkan ke dalam algoritma hashing, output (tanda tangan) akan menjadi ini:

25D8BE2650D7BC095D3712B14136608E096F060E32CEC7322D22E82EA526A3E5

Jadi, ini adalah tanda tangan dari blok 2. Fungsi hash kriptografi digunakan untuk membuat tanda tangan digital untuk setiap blok unik. Ada banyak variasi fungsi hash, tetapi fungsi hashing yang digunakan oleh blockchain Bitcoin adalah algoritma hashing SHA-256. Hanya hash (tanda tangan) yang memenuhi persyaratan tertentu yang diterima di blockchain. Ini adalah proses penambangan dan dijelaskan pada langkah 4.

Langkah Keempat : Kapan tanda tangan memenuhi syarat, dan siapa yang menandatangani blok?

Tanda tangan tidak selalu memenuhi syarat. Sebuah blok hanya akan diterima di blockchain jika tanda tangan digitalnya dimulai dengan – misalnya – angka nol yang berurutan. Sebagai contoh; hanya blok dengan tanda tangan yang dimulai dengan setidaknya sepuluh angka nol berturut-turut yang memenuhi syarat untuk ditambahkan ke blockchain. Namun, seperti yang dijelaskan di langkah ketiga, setiap string data hanya memiliki satu hash unik yang terikat padanya. Bagaimana jika tanda tangan (hash) blok tidak dimulai dengan sepuluh nol? Nah, untuk menemukan blok sebuah tanda tangan yang memenuhi persyaratan, string data dari sebuah blok perlu diubah berulang kali hingga string data tertentu itu mengarah ke tanda tangan yang dimulai dengan sepuluh angka nol. Karena data transaksi dan metadata (nomor blok, stempel waktu, dan lain-lain) harus tetap seperti itu, sebagian kecil data ditambahkan ke setiap blok yang tidak memiliki tujuan kecuali untuk diubah berulang kali untuk menemukan tanda tangan yang memenuhi syarat. Bagian data ini disebut nonce dari sebuah blok. Nonce adalah rangkaian angka yang benar-benar acak (catatan: gambar juga menampilkan digit lain, tetapi nonce hanya bisa berupa angka). Untuk meringkas apa yang baru saja dijelaskan, satu blok sekarang berisi; 1) data transaksi, 2) tanda tangan dari blok sebelumnya, dan 3) nonce. Proses berulang kali mengubah nonce dan mencirikan data blok untuk menemukan tanda tangan yang memenuhi syarat disebut penambangan dan itulah yang dilakukan penambang. Penambang menghabiskan listrik dalam bentuk daya komputasi dengan terus-menerus mengubah komposisi blok (nonce) dan melakukan hashing hingga mereka menemukan tanda tangan (keluaran) yang memenuhi syarat. Semakin besar kekuatan komputasi yang mereka miliki, semakin cepat mereka dapat mencirikan komposisi blok yang berbeda dan semakin besar kemungkinan mereka menemukan tanda tangan yang memenuhi syarat lebih cepat. Ini adalah bentuk coba-coba. Anda bisa membayangkannya seperti ini:

Setiap pengguna di jaringan blockchain dapat berpartisipasi dalam proses ini dengan mengunduh dan memulai perangkat lunak penambangan yang sesuai untuk blockchain tersebut. Ketika seorang pengguna melakukan ini, mereka hanya akan menggunakan kekuatan komputasi mereka untuk bekerja untuk mencoba menyelesaikan nonce pada sebuah blok. Berikut adalah contoh blok transaksi yang baru-baru ini ditambahkan ke blockchain Bitcoin, blok 653.128 :

Seperti yang Anda lihat, hash (tanda tangan) dari blok ini dan hash dari blok sebelumnya, keduanya dimulai dengan sejumlah nol. Menemukan hash seperti itu tidaklah mudah, itu membutuhkan banyak tenaga dan waktu komputasi, atau banyak keberuntungan. Ya, kadang-kadang terjadi bahwa seorang penambang menjadi sangat beruntung dan menemukan tanda tangan yang cocok dengan daya komputasi yang sangat sedikit dalam hitungan menit. Sebuah contoh yang sangat langka baru-baru ini terjadi di blok 523.034. Seorang penambang yang sangat kecil dengan daya komputasi yang sangat sedikit menemukan tanda tangan yang memenuhi syarat dengan sangat cepat, sementara semua penambang lainnya digabungkan memiliki daya komputasi 7 triliun kali lebih besar. Sebagai perbandingan, peluang memenangkan jackpot lotere powerball adalah satu banding 292 juta, yang berarti 24.000 kali lebih mudah untuk memenangkan jackpot lotere Powerball daripada penambang ini untuk memenangkan kompetisi versus jaringan lainnya. Bicara tentang angka nol. Bagaimanapun, yang penting untuk dipahami dari bab ini adalah sulitnya menemukan tanda tangan yang memenuhi syarat.

Langkah kelima : Mengapa blockchain tidak dapat diubah?

Seperti yang telah dibahas sebelumnya di langkah ketiga, mengubah blok akan melepaskan rantai dari blok berikutnya. Agar blok yang diubah dapat diterima oleh seluruh jaringan, blok tersebut perlu dirantai lagi ke blok berikutnya. Lihat kemana arah ini? Telah dijelaskan sebelumnya bahwa ini membutuhkan setiap blok yang muncul setelahnya untuk mendapatkan tanda tangan baru. Dan tanda tangan itu harus memenuhi persyaratan! Memberi semua blok ini tanda tangan baru akan sangat mahal dan memakan waktu, meskipun tampaknya tidak mustahil. Inilah alasannya:

Katakanlah penambang yang korup telah mengubah blok transaksi dan sekarang mencoba menghitung tanda tangan baru untuk blok berikutnya agar jaringan lainnya menerima perubahannya. Masalahnya adalah, sisa jaringan juga menghitung tanda tangan baru untuk blok baru. Penambang yang korup harus menghitung tanda tangan baru untuk blok-blok ini juga karena mereka ditambahkan ke akhir rantai. Lagi pula, dia perlu menjaga agar semua blok tetap terhubung, termasuk blok yang baru terus ditambahkan. Kecuali penambang memiliki lebih banyak kekuatan komputasi daripada gabungan jaringan lainnya, dia tidak akan pernah mengejar sisa jaringan yang menemukan tanda tangan.

Penambang mencurigakan menghitung tanda tangan baru jauh lebih lambat daripada gabungan jaringan lainnya karena mereka memiliki kekuatan komputasi yang jauh lebih besar. Perubahannya tidak akan pernah bisa mengikuti seluruh jaringan dan akan diabaikan selamanya. Satu-satunya cara untuk mengejar ketinggalan adalah menghitung tanda tangan lebih cepat daripada gabungan semua pengguna lain.

Jutaan pengguna menambang BTC di blockchain Bitcoin, dan oleh karena itu dapat diasumsikan bahwa satu pelaku atau entitas jahat di jaringan tidak akan pernah memiliki kekuatan komputasi lebih dari gabungan jaringan lainnya, yang berarti jaringan tidak akan pernah menerima perubahan apa pun pada blockchain, membuat blockchain tidak berubah. Setelah data ditambahkan ke blockchain, itu tidak dapat diubah lagi. Namun ada pengecualian. Bagaimana jika aktor jahat memiliki kekuatan komputasi lebih dari gabungan seluruh jaringan? Secara teoritis ya, ini mungkin disebut serangan 51% dan telah terjadi di berbagai blockchain di masa lalu. Namun pada kenyataannya, serangan 51% pada blockchain Bitcoin akan jauh lebih mahal untuk dieksekusi daripada imbalannya. Hal ini tidak hanya membutuhkan sejumlah besar perangkat keras, peralatan pendingin, dan ruang penyimpanan untuk daya komputasi, tetapi juga melibatkan risiko penuntutan dan, yang lebih penting, akan secara dramatis merusak ekosistem dari blockchain yang sesuai itu sendiri, memberikan potensi pengembalian dalam Bitcoin untuk turun nilainya secara signifikan. Mencoba serangan 51% secara praktis mencoba melawan semua pengguna lain di blockchain hanya sendirian. Ini juga alasan mengapa semakin banyak pengguna berpartisipasi dalam proses penambangan, semakin aman sebuah blockchain. Selamat, Anda masih di sini! Semoga sekarang Anda mengerti mengapa blockchain dianggap tidak dapat diubah.

Langkah keenam : Bagaimana blockchain diatur? Siapa yang menentukan aturannya?

Blockchain Bitcoin mengikuti model pemerintahan demokrasi, dan oleh karena itu memperbarui catatan transaksinya sesuai dengan apa yang dikatakan sebagian besar penggunanya sebagai sebuah “kebenaran” atau lebih mudahnya ini bisa dikatakans sebagai kesepakatan jaringan. Protokol blockchain melakukan ini secara otomatis dengan selalu mengikuti catatan blockchain terpanjang yang dimilikinya, karena mengasumsikan bahwa rantai ini diwakili oleh mayoritas. Bagaimanapun, ini membutuhkan mayoritas(sebagian besar partisipan) daya komputasi untuk membuat versi blockchain terpanjang. Ini juga bagaimana blok yang diubah secara otomatis ditolak oleh sebagian besar jaringan. Mayoritas jaringan menolak blok yang diubah secara otomatis karena tidak lagi dirantai ke rantai terpanjang.

Di blockchain Bitcoin, semua riwayat transaksi dan saldo dompet bersifat publik (blockchain.info). Siapa pun dapat mencari dompet atau transaksi apa pun yang pernah terjadi sejak transaksi pertama yang dibuat (pada 3 Januari 2009). Meskipun saldo dompet dapat diperiksa oleh siapa pun secara publik, pemilik dompet tersebut sebagian besar tetap tidak diketahui.

Langkah terakhir (ke tujuh) – Cryptocurrency

Cryptocurrency pada dasarnya adalah bentuk Bitcoin yang diubah. Sebagian besar cryptocurrency dibangun di atas protokol blockchain mereka sendiri yang mungkin memiliki aturan berbeda dari blockchain Bitcoin. Bitcoin seharusnya menjadi media pertukaran dalam transksi, artinya secara eksplisit berfungsi sebagai uang. Monero adalah cryptocurrency dengan fungsi yang sama, tetapi protokol blockchainnya telah menerapkan beberapa aturan tambahan yang menjadikannya mata uang yang lebih privat (transaksi jauh lebih sulit dilacak). Namun Cryptocurrency dapat diberi nilai apa pun, tergantung pada penerbitnya. Mereka bisa disebut sebagai ‘token’. Token ini dapat memberi pemilik hak atas ‘sesuatu’, mulai dari lisensi permainan atau akses ke media sosial hingga listrik atau air, apa saja. Nilai apa pun dapat dilampirkan ke token ‘cryptocurrency’. Semua transaksi cryptocurrency ini terdaftar di berbagai blockchain dan dapat ditukar secara online melalui pertukaran cryptocurrency seperti Binance atau INDODAX. Ini adalah uang baru dari internet. Contoh industri yang mungkin terpengaruh atas keberadaan cryptocurrency adalah industri pasar saham. Ada kemungkinan besar bahwa saham perusahaan dan hak properti lainnya akan didaftarkan sebagai token di blockchain di masa mendatang. Tetapi blockchain tidak hanya terbatas pada mendaftarkan nilai materialistik dalam bentuk token. Blockchain juga berpotensi untuk mendaftarkan data dengan aman dalam bentuk rekam medis, identitas, catatan sejarah, catatan pajak dan masih banyak lagi. Inilah mengapa teknologinya sangat besar, dan saya bahkan belum menyebutkan desentralisasi (aspek besar lain dari blockchain).

Mungkin di artikel yang lainnya saya akan menjelaskan dengan mudah mengenai desetralisasi.

Leave a Reply

Your email address will not be published. Required fields are marked *