Bagaimana SHA256 Dan Penambangan Melindungi Jaringan Bitcoin Intelijen Data Blockchain. Pencarian Vertikal. ai.

Bagaimana SHA256 Dan Penambangan Melindungi Jaringan Bitcoin

Bagaimana Bitcoin dipertahankan oleh energi? Dan apa itu nonce? Pertanyaan-pertanyaan ini dan lebih banyak lagi dijawab dalam!

Cara kerja penambangan sangat menarik. Ketika saya menjelaskannya kepada orang-orang, saya senang melihat wajah mereka saat pikiran mereka meledak. Saya akan menjelaskannya di sini, tetapi ketahuilah, saya membayangkan semua wajah Anda saat pikiran Anda meledak!

Saya harus mulai dengan fungsi hash. Tanpa fungsi hash, Bitcoin tidak akan mungkin. Mari saya jelaskan apa yang pertama, tidak hanya agar Anda dapat terdengar keren di pesta, tetapi juga karena ini sangat penting untuk memahami cara kerja Bitcoin โ€” khususnya penambangan tetapi juga transaksi โ€” di bawah tenda.

Anda tidak perlu memahami cara kerja Bitcoin untuk mendapatkan manfaat darinya, seperti halnya Anda tidak perlu memahami cara kerja TCP/IP untuk menggunakan internet. Tapi lanjutkan, karena ini cukup menarik dan saya akan membuatnya mudah dimengerti, saya janji.

Fungsi Hash

Mari kita mulai dengan skema yang akan saya jelaskan di bawahโ€ฆ

Bagaimana SHA256 Dan Penambangan Melindungi Jaringan Bitcoin Intelijen Data Blockchain. Pencarian Vertikal. ai.
(Grafis/@jirols_btc)

Di sebelah kiri adalah input, pusat adalah fungsi, dan di sebelah kanan adalah output. Inputnya bisa data apa saja, asalkan digital. Ukurannya bisa berapa saja, asalkan komputer Anda bisa menanganinya. Data diteruskan ke fungsi SHA256. Fungsi mengambil data dan menghitung angka yang tampak acak, tetapi dengan properti khusus (dibahas nanti).

Secure Hash Algorithm (SHA) pertama awalnya dikembangkan oleh NSA dan ada banyak versi yang berbeda sekarang (Bitcoin menggunakan SHA256). Ini adalah serangkaian instruksi tentang cara mengacak data dengan cara yang sangat rumit tetapi ditentukan. Petunjuknya bukan rahasia dan bahkan mungkin melakukannya dengan tangan, tetapi sangat membosankan.

Untuk SHA256, outputnya adalah angka 256-bit (bukan kebetulan).

Angka 256-bit berarti angka biner dengan panjang 256 digit. Biner berarti nilai diwakili dengan dua simbol, baik 0 atau 1. Angka biner dapat dikonversi ke format lain, misalnya angka desimal, yang kita kenal.

Meskipun fungsi mengembalikan bilangan biner 256 digit, nilainya biasanya dinyatakan dalam format heksadesimal, panjang 64 digit.

Heksadesimal berarti bahwa alih-alih 10 simbol yang mungkin seperti yang biasa kita gunakan dengan desimal (0 hingga 9), kita memiliki 16 simbol (Sepuluh simbol yang biasa kita gunakan, 0-9, ditambah huruf a, b, c, d, e, dan f; yang memiliki nilai 11 sampai dengan 15). Sebagai contoh, untuk mewakili nilai desimal 15 dalam heksadesimal, kita cukup menulis โ€œfโ€ dan nilainya sama. Ada banyak informasi yang tersedia secara online dengan pencarian Google yang cepat jika Anda membutuhkan penjelasan lebih lanjut.

Untuk mendemonstrasikan SHA256 beraksi, saya dapat mengambil nomor 1 dan menjalankannya melalui sebuah kalkulator hash online, dan dapatkan output ini (dalam heksadesimal):

Bagaimana SHA256 Dan Penambangan Melindungi Jaringan Bitcoin Intelijen Data Blockchain. Pencarian Vertikal. ai.

Kotak atas adalah input, kotak bawah adalah output yang dihasilkan.

Perhatikan bahwa semua komputer di dunia akan menghasilkan output yang sama, asalkan inputnya sama dan fungsi SHA256 digunakan.

Output angka heksadesimal, jika dikonversi ke desimal, adalah (perhatikan dibutuhkan lebih banyak digit untuk menulis):

48,635,463,943,209,834,798,109,814,161,294,753,926,839,975,257,569,795,305,637,098,542,720,658,922,315

Dan dikonversi ke biner itu adalah:

11010111000011010110010011100111111111100110100111111001110000110011101011010111000000001001110111111110101101000111111010101110100011110101101101001001110101010100010001011110001110101001001110000000001111001010010110111011011011110000111010110110100101111010111001101011100110101110011010111001101011100110101110011010111001101011100111

Hanya karena tertarik, ini nilai yang sama di basis 64.

1w1k5/5p+cM61wCd/rR+ro9bSdVEXjqTgDylu28OtpY=

Perhatikan bahwa nilai terkecil yang mungkin dapat dikembalikan SHA256 adalah nol, tetapi PANJANGnya masih 256 bit. Ini adalah bagaimana nol diwakili:

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Dan nilai terbesar yang mungkin adalah:

1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111

Dalam desimal, yaitu:

115,792,089,237,316,195,423,570,985,008,687,907,853,269,984,665,640,564,039,457,584,007,913,129,639,935

Dalam heksadesimal, itu adalah:

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Perhatikan ada persis 64 F.

Nol dalam heksadesimal dapat dengan mudah ditulis sebagai satu nol tunggal, tetapi untuk keluaran hash, 64 di antaranya harus memenuhi persyaratan keluaran ukuran tetap:

0000000000000000000000000000000000000000000000000000000000000000

Berikut adalah ringkasan beberapa fakta tentang fungsi hash yang penting untuk dipahami:

  • Input tidak dapat ditentukan dari output
  • Inputnya bisa berapa saja
  • Outputnya selalu sama panjang
  • Output akan selalu direproduksi secara identik jika Anda memberikan input yang sama.
  • Setiap perubahan pada input, tidak peduli seberapa kecil, akan menyebabkan output yang tidak terduga dan sangat berbeda
  • Outputnya tampaknya acak, tetapi sebenarnya deterministik (artinya dihitung dan dapat direproduksi)
  • Keluarannya tidak dapat diprediksi. Itu hanya dapat dihitung dan ini membutuhkan sejumlah pekerjaan yang terukur oleh komputer (dan berjam-jam dengan pensil dan kertas! Jangan lakukan itu.)

Sekarang setelah Anda memahami konsep dasar tentang apa itu hash, Anda dapat memahami penjelasan tentang cara kerja penambangan Bitcoin.

Tetapi sebelum Anda melanjutkan, saya sarankan Anda pergi ke kalkulator hash online dan bermain dengannya sedikit dan menguji sendiri apa yang saya katakan tentang fungsi hash. Saya suka yang ini.

Pertambangan

Saya akan mulai dengan mendemonstrasikan konsep kerja, dari situlah โ€œbukti kerjaโ€ dalam Bitcoin berasal.

Buka kalkulator hash online dan ketik "Saya membuat 50 bitcoin dan membayar sendiri jumlah ini."

Ketik dengan tepat, peka huruf besar/kecil, termasuk titik. Anda harus mendapatkan output ini:

Bagaimana SHA256 Dan Penambangan Melindungi Jaringan Bitcoin Intelijen Data Blockchain. Pencarian Vertikal. ai.

Sekarang, mari buat aturan yang mengatakan agar pesan pembayaran ini valid, kita perlu hash untuk memulai dengan satu nol. Untuk melakukan itu, kita harus mengubah input entah bagaimana. Namun, seperti yang telah Anda pelajari, tidak dapat diprediksi seperti apa output untuk input yang diberikan. Modifikasi apa yang dapat kita lakukan untuk memastikan hash dimulai dengan nol?

Kita harus menambahkan data menggunakan trial-and-error. Tetapi kami juga tidak ingin mengubah arti dari pesan input. Jadi, mari buat bidang (bagian yang dialokasikan) yang disebut "nonce" yang akan menyimpan nilai yang tidak masuk akal.

Kata "Nonce" seharusnya berasal dari "angka yang hanya digunakan sekali", tapi aku tidak melihatnya.

Perhatikan di bawah ini bagaimana menambahkan "Nonce:" sebagai judul bidang tambahan mengubah output hash.

Bagaimana SHA256 Dan Penambangan Melindungi Jaringan Bitcoin Intelijen Data Blockchain. Pencarian Vertikal. ai.

Outputnya masih tidak dimulai dengan "0", jadi mari kita tambahkan beberapa omong kosong (saya menambahkan "x" yang tidak berarti):

Bagaimana SHA256 Dan Penambangan Melindungi Jaringan Bitcoin Intelijen Data Blockchain. Pencarian Vertikal. ai.

Itu masih tidak dimulai dengan nol. Saya mencoba beberapa karakter lagi hingga hash dimulai dengan nol:

Bagaimana SHA256 Dan Penambangan Melindungi Jaringan Bitcoin Intelijen Data Blockchain. Pencarian Vertikal. ai.

Di sana kita pergi. Sekarang, menurut aturan sewenang-wenang yang saya tetapkan untuk versi Bitcoin yang berpura-pura ini, teks di jendela input adalah blok yang valid dengan satu transaksi yang membayar saya 50 bitcoin.

Perhatikan bahwa blok Bitcoin pada dasarnya adalah halaman buku besar. Setiap blok diberi nomor dan membuat bitcoin baru, bersama dengan daftar transaksi antar pengguna. Catatan ini adalah tempat tinggal bitcoin.

Sekarang aturan baru. Untuk blok berikutnya, hash dari blok sebelumnya harus disertakan. Saya akan menambahkan sedikit kerumitan dan menambahkan beberapa bidang lagi untuk mendekati apa yang dimiliki blok Bitcoin yang sebenarnya.

Bagaimana SHA256 Dan Penambangan Melindungi Jaringan Bitcoin Intelijen Data Blockchain. Pencarian Vertikal. ai.

Hash dimulai dengan "f" bukan "0", jadi saya harus mencoba beberapa nilai di bidang nonce:

Bagaimana SHA256 Dan Penambangan Melindungi Jaringan Bitcoin Intelijen Data Blockchain. Pencarian Vertikal. ai.

Kali ini saya lebih beruntung dan menemukan nonce yang cocok setelah hanya empat kali mencoba. Ingatlah bahwa untuk blok pertama dibutuhkan 22 percobaan. Ada beberapa keacakan di sini, tetapi umumnya tidak terlalu sulit untuk menemukan hash yang valid jika semua yang kita coba dapatkan adalah satu nol. Ada 16 kemungkinan nilai untuk digit hash pertama jadi saya memiliki peluang 1 banding 16 bahwa setiap modifikasi yang saya buat pada bidang input akan menghasilkan digit hash pertama menjadi "0."

Perhatikan bahwa bidang Bitcoin seperti ini, tetapi ada lebih banyak detail yang belum saya tambahkan. Ini hanya untuk mengilustrasikan suatu hal, tidak harus merinci persis seperti apa blok Bitcoin itu.

Saya akan menambahkan bidang waktu ke blok berikutnya karena saya membutuhkannya untuk menjelaskan "penyesuaian kesulitan" selanjutnya:

Bagaimana SHA256 Dan Penambangan Melindungi Jaringan Bitcoin Intelijen Data Blockchain. Pencarian Vertikal. ai.

Di atas adalah blok nomor tiga. Ini termasuk hash blok sebelumnya dan sekarang saya juga mulai memasukkan waktu. Nonce yang saya temukan berhasil membuat hash dimulai dengan nol (saya terus mengetik "1" hingga target hash terpenuhi).

Sudah cukup di sini sekarang saya bisa mulai menjelaskan beberapa konsep menarik tentang blockchain dan penambangan Bitcoin.

Memenangkan Blok

Proses penambangannya kompetitif. Siapa pun yang menghasilkan blok yang valid terlebih dahulu akan membayar sendiri hadiah blok yang ditetapkan. Seorang penambang yang menghasilkan nomor blok yang sama sedikit kemudian tidak mendapatkan apa-apa โ€” blok itu ditolak. Menjelaskan mengapa itu akan menyebabkan terlalu banyak pengalihan sekarang, jadi saya akan menjelaskannya di lampiran.

Setelah blok tiga ditemukan dan disiarkan ke semua orang (semua node Bitcoin), semua penambang berhenti mengerjakan apa yang akan menjadi versi blok tiga mereka. Mereka mulai membangun di atas blok tiga yang berhasil itu (dengan menarik hash bloknya ke depan ke blok baru) dan mulai bekerja untuk menemukan nonce yang cocok untuk blok empat. Pemenang mempublikasikan hasilnya dan kemudian semua orang mulai mengerjakan blok lima, dst.

Dengan setiap blok, bitcoin baru sedang dibuat dan secara kolektif membuat total pasokan sejauh ini. Jika ada banyak penambang, maka secara statistik kita harus berharap bahwa blok akan diproduksi lebih cepat, dan karena itu bitcoin akan dibuat lebih cepat. Masalah, kan?

Mencari pasokan bitcoin yang terbatas dengan penerbitan yang dapat diprediksi dari waktu ke waktu, Satoshi Nakamoto memikirkan masalah ini dan memperkenalkan loop umpan balik negatif untuk menjaga produksi blok pada interval rata-rata 10 menit. Bagaimana? Lihat apakah Anda bisa memikirkan cara. Berhentilah sejenak dan renungkan โ€” lihat apakah Anda dapat menemukan solusi jenius yang sama dan terus membaca ketika Anda menyerah.

NODES: Saya menyebutkan blok "valid". Terus? Siapa yang memeriksa? Node Bitcoin adalah. Node Bitcoin menyimpan salinan blockchain sejauh ini dan mengikuti serangkaian aturan untuk memeriksa apakah blok baru berada dalam aturan dan menolak yang tidak. Dimana aturannya? Dalam kode. Komputer yang mengunduh kode Bitcoin adalah sebuah node.

Penyesuaian Kesulitan

Waktu rata-rata untuk membuat blok Bitcoin baru dihitung oleh setiap node setiap 2016 blok (inilah mengapa bidang waktu diperlukan). Ini adalah bagian dari protokol dan aturan yang diikuti oleh node. Rumus diterapkan untuk menyesuaikan jumlah nol yang harus dimulai setiap hash blok agar valid.

Sebenarnya, bukan jumlah nol yang disesuaikan tetapi nilai target hash harus di bawah, tetapi memikirkan angka nol di depan lebih mudah untuk dijelaskan.

Jika blok diproduksi terlalu cepat, maka target hash disesuaikan menurut aturan yang telah ditentukan sebelumnya yang diikuti oleh semua node secara identik (ada dalam kode mereka).

Sederhananya untuk contoh saya, katakanlah orang lain bersaing dengan saya, blok terjadi terlalu cepat, dan sekarang blok keempat membutuhkan dua nol, bukan satu, menurut perhitungan imajiner.

Ini akan membawa saya sedikit lebih lama untuk mendapatkan dua nol, tapi kami membayangkan bahwa ada banyak orang lain yang bersaing dengan saya sehingga total waktu yang dibutuhkan bagi siapa pun untuk menemukan blok disimpan ke target.

Ini blok selanjutnya:

Bagaimana SHA256 Dan Penambangan Melindungi Jaringan Bitcoin Intelijen Data Blockchain. Pencarian Vertikal. ai.

Perhatikan waktu. Lebih dari 10 menit berlalu sejak blok sebelumnya (saya hanya meluangkan waktu untuk mendemonstrasikan). Target 10 menit adalah probabilistik; tidak pernah diketahui secara pasti kapan blok berikutnya akan ditemukan.

Saya mengotak-atik keyboard selama satu menit sampai dua angka nol muncul. Ini secara eksponensial lebih sulit daripada menemukan satu nol. Peluang menemukan dua angka nol berturut-turut adalah 1 banding 162, atau peluang 1 banding 256.

Jika lebih banyak orang bergabung dalam penambangan dan persaingan untuk mendapatkan bitcoin baru, maka pada akhirnya akan dibutuhkan tiga angka nol.

Saya baru saja mencari blok Bitcoin asli terakhir, yang berisi hash dari blok sebelumnya. hashnya adalah:

000000000000000000084d31772619ee08e21b232f755a506bc5d09f3f1a43a1

Itu 19 nol! Ada 1 dari 1619 kesempatan untuk menemukan blok seperti itu dengan setiap upaya. Penambang Bitcoin melakukan banyak, banyak upaya per detik, secara kolektif di seluruh dunia.

Jumlah upaya per detik dikenal sebagai "tingkat hash." Saat ini, perkiraan tingkat hash dunia hanya di bawah 200 juta terahash per detik (satu terahash adalah satu triliun hash). Dengan banyak upaya per detik, blok dengan hash dimulai dengan 19 nol ditemukan sekitar setiap 10 menit.

Di masa depan, karena lebih banyak penambang bergabung, tingkat hash akan naik, blok akan ditemukan lebih cepat, dan kesulitan Bitcoin akan menyesuaikan dengan membutuhkan 20 nol, yang akan mendorong produksi blok kembali turun menjadi sekitar 10 menit.

Yang terbelah dua

Ketika Bitcoin pertama kali dimulai, 50 bitcoin diproduksi dengan setiap blok. Aturan blockchain Bitcoin menentukan bahwa setelah setiap 210,000 blok, hadiah akan dipotong setengahnya. Momen ini dikenal sebagai "membelah dua," dan terjadi kira-kira setiap empat tahun. Halving, dikombinasikan dengan penyesuaian kesulitan menjaga blok pada interval 10 menit, berarti bahwa sekitar tahun 2140, hadiah blok akan menjadi 0.00000001, atau 1 satoshi, unit terkecil dari bitcoin, dan tidak dapat dibagi dua lagi. Penambangan tidak akan berhenti, tetapi hadiah blok akan menjadi nol. Sejak saat itu, tidak ada bitcoin baru yang akan dibuat ke depan dan jumlah bitcoin dapat dihitung secara matematis dan cukup mendekati 21 juta koin. Ini adalah bagaimana total pasokan diketahui โ€” itu diatur secara terprogram.

Bahkan dengan hadiah blok nol, para penambang masih akan diberi insentif untuk terus bekerja untuk mendapatkan biaya transaksi.

Bagaimana tepatnya hadiah blok dipotong menjadi dua? Itu ada dalam kode yang dipegang oleh node. Mereka tahu untuk menolak setiap blok baru setelah 210,000 di mana seorang penambang membayar dirinya sendiri lebih dari 25 bitcoin. Dan kemudian menolak blok apa pun setelah 420,000 di mana seorang penambang membayar dirinya sendiri lebih dari 12.5 bitcoin, dan seterusnya.

Biaya Transaksi

Sejauh ini saya hanya menunjukkan blok imajiner dengan satu transaksi โ€” transaksi di mana penambang mendapat bayaran. Ini disebut โ€œtransaksi basis koin.โ€

Itu tidak dinamai perusahaan, Conbase, maksud saya Coinbase. Perusahaan menamakan dirinya setelah transaksi coinbase, bukan sebaliknya. Jangan bingung.

Selain transaksi coinbase, ada transaksi orang yang saling membayar. Berikut adalah contoh yang dibayangkan:

Bagaimana SHA256 Dan Penambangan Melindungi Jaringan Bitcoin Intelijen Data Blockchain. Pencarian Vertikal. ai.

Saya tidak repot-repot menemukan hash nyata kali ini (Ini sebenarnya hash nyata yang dilaporkan di blok 200,001). Nonce yang baru saja saya buat untuk bersenang-senang, tetapi perhatikan sebuah pesan dapat disematkan di sana.

Satoshi terkenal memasukkan kata-kata, "Kanselir di Brink of Second Bailout for Banks" di blok Bitcoin pertama (The Genesis Block), setelah berita utama surat kabar hari itu.

Bagaimana SHA256 Dan Penambangan Melindungi Jaringan Bitcoin Intelijen Data Blockchain. Pencarian Vertikal. ai.

Intinya di sini ada 132 transaksi yang disertakan (tidak semuanya ditampilkan). Lihat transaksi #132 โ€“ 2.3 bitcoin dari sebuah alamat membayar 2.1 bitcoin ke alamat lain dan juga ke alamat kedua sejumlah 0.1 bitcoin (saya telah menggunakan titik untuk mempersingkat panjang alamat).

Jadi sumber 2.3 bitcoin membayar total 2.2 bitcoin (2.2 + 0.1 = 2.2). Apakah ada 0.1 bitcoin yang hilang? Tidak, perbedaannya diklaim oleh penambang, seperti yang akan saya jelaskan.

Penambang diizinkan untuk membayar dirinya sendiri 25 bitcoin sebagai hadiah blok (karena 210,000 blok telah berlalu sehingga hadiahnya telah dibagi dua dari 50 menjadi 25). Namun jika dilihat, transaksi coinbase adalah 27.33880022. Bitcoin tambahan 2.33880022 berasal dari 132 transaksi lain di blok โ€“ semua input akan sedikit lebih besar dari total output. Jadi penambang dapat mengklaim bitcoin yang "ditinggalkan" ini sebagai pembayaran untuk dirinya sendiri. Ini dianggap sebagai biaya transaksi yang dibayarkan kepada penambang.

Ruang blok terbatas. Ketika Bitcoin masih baru, pengguna dapat mengirim transaksi tanpa biaya dan para penambang akan memasukkan transaksi tersebut ke dalam blok. Tapi sekarang ada lebih banyak pengguna dan karena masuk ke blok berikutnya kompetitif, pengguna memasukkan biaya dalam transaksi untuk menarik penambang untuk memilih transaksi mereka daripada yang lain.

Jadi ketika hadiah blok terus turun, berkurang setengahnya setiap empat tahun dan akhirnya menjadi nol, penambang masih dibayar dengan cara ini.

Beberapa orang menyarankan bahwa suatu hari hadiah untuk penambang tidak akan cukup dan akan menyebabkan Bitcoin gagal. Kekhawatiran ini telah sepenuhnya dibantah dan saya tidak akan mengulanginya di sini.

Bisakah Sebuah Blok Ditulis Ulang?

Ini sangat tidak mungkin dan perlu dipahami alasannya. Anda kemudian akan menghargai mengapa transaksi Bitcoin tidak dapat diubah (tidak dapat diubah).

Saya jelaskan sebelumnya bahwa hash dari blok sebelumnya termasuk dalam blok saat ini. Itu berarti setiap pengeditan transaksi di blok lama mengubah hash blok yang diedit itu. Tetapi hash itu dicatat di blok berikutnya, jadi itu berarti bahwa blok berikutnya juga perlu diperbarui. Tetapi jika Anda mengubah hash yang direkam di blok berikutnya, maka hashnya perlu diubah, dan seterusnya.

Perhatikan bahwa setiap kali hash diubah, Anda kehilangan semua nol yang indah ini dan hanya akan dibiarkan dengan hash yang tampak acak โ€” dan harus melakukan semua pekerjaan lagi untuk mendapatkan nol kembali. Jika Anda melakukannya untuk blok yang Anda coba edit, Anda harus mengulang pekerjaan untuk blok berikutnya, dan blok berikutnya sampai ke blok terbaru. Anda tidak bisa berhenti begitu saja di blok lama, karena aturan Bitcoin sedemikian rupa sehingga rantai blok terpanjang adalah rekor Bitcoin yang sebenarnya. Jika Anda kembali dan mengedit blok 10 blok yang lalu, Anda tidak lagi memiliki rantai terpanjang. Anda harus menambahkan 10 blok lagi dan kemudian sedikit lagi karena saat Anda membuat 10 blok itu, rantai sebenarnya mungkin menjadi sedikit lebih panjang. Anda harus berlomba untuk menyalip rantai yang sebenarnya. Jika berhasil, maka versi baru menjadi versi sebenarnya.

Mengulangi upaya hashing kolektif seluruh dunia dari blok yang diedit ke blok terbaru adalah penghalang untuk mengedit Bitcoin. Energi dikeluarkan untuk membuat hash dengan semua nol yang tidak mungkin dan pengeluaran energi itu harus diulang untuk mengedit Bitcoin. Inilah sebabnya mengapa energi yang digunakan untuk menambang Bitcoin tidak โ€œterbuangโ€; itu ada untuk mempertahankan Bitcoin dari suntingan, untuk membuat buku besar tidak berubah tanpa perlu mempercayai otoritas pusat.

Apa yang terjadi jika dua penambang menemukan balok secara bersamaan?

Ini benar-benar terjadi sesekali, dan selalu muncul dengan sendirinya sebagai berikut:

Setiap node akan menerima salah satu dari blok baru yang hampir bersamaan terlebih dahulu dan akan menerima yang itu dan menolak yang datang beberapa saat kemudian. Ini menghasilkan pemisahan jaringan, tetapi bersifat sementara.

Sebagai ilustrasi, sebut saja salah satu blok berwarna biru dan yang lainnya merah (mereka tidak memiliki warna, bersabarlah).

Penambang kemudian bekerja di blok berikutnya, tetapi akan ada pemisahan dari blok mana mereka memperpanjang rantai.

Katakanlah penambang yang menang menemukan blok menggunakan rantai biru. Mereka akan mengirim blok baru ke semua node dan rantai terpanjang akan terlihat. Node yang telah menerima rantai merah kemudian akan menjatuhkannya dan mengadopsi rantai biru.

Semua penambang yang bekerja di rantai merah akan berhenti dan sekarang akan bekerja di rantai yang lebih panjang, yaitu rantai biru. Rantai merah mati.

Lampiran

Mengapa Blok Penambang Runner Up Tidak Valid

Misalkan blok 700,000 baru saja ditambang oleh MINER-A. Tiga puluh detik kemudian, MINER-B juga membuat versi berbeda dari blok 700,000. Ketika MINER-B menyiarkan alternatif ini, setiap node akan menolaknya karena mereka telah melihat dan menerima blok oleh MINER-A. Terlebih lagi, dalam 30 detik itu, misalkan MINER-C menemukan blok 700,001. Mengingat bahwa blok 700,000 MINER-B yang bersaing tidak memperpanjang rantai saat ini (yang mencapai 700,001), blok tersebut juga ditolak karena alasan itu.

Yang lebih menarik adalah bahwa jika MINER-B telah mengerjakan blok 700,001 alih-alih versi 700,000 yang bersaing, mereka akan memiliki peluang yang sama untuk menambang blok 700,001 yang valid karena mereka akhirnya harus menemukan blok alternatif 700,000. Jadi, begitu setiap penambang melihat blok baru, mereka harus berusaha keras di blok berikutnya.

Namun, jika Miner-B menemukan blok 700,000 satu detik setelah MINER-A menemukannya, maka ada kemungkinan bahwa beberapa node melihat blok MINER-A terlebih dahulu sementara yang lain melihat blok MINER-B terlebih dahulu, tergantung pada lokasi geografis dan kecepatan internet. Dalam hal ini, ada garpu sementara, dan beberapa penambang akan bekerja untuk memperpanjang satu versi sementara penambang lain akan bekerja untuk memperpanjang yang lain. Seperti yang dijelaskan sebelumnya dengan menggunakan deskriptor "rantai biru" dan "rantai merah", akhirnya salah satu versi akan diperluas lebih jauh sebelum yang lain dan menjadi versi yang valid dengan suara bulat.

Ini adalah posting tamu oleh Arman The Parman. Pendapat yang diungkapkan sepenuhnya milik mereka sendiri dan tidak mencerminkan pendapat BTC Inc atau Majalah Bitcoin.

Stempel Waktu:

Lebih dari Majalah Bitcoin