Bagaimana protokol Bitcoin bekerja?

Penulis:Mimpi kecil, Dibuat: 2017-01-19 18:04:02, Diperbarui: 2017-01-19 18:11:24

Bagaimana protokol Bitcoin bekerja?

Saya menulis 5 ide tentang Bitcoin di sini tahun lalu, yang tampaknya menjadi artikel pertama tentang Bitcoin di sini, dan hari ini saya akan menjelaskan protokol Bitcoin di sini.

Artikel ini adalah terjemahan dari artikel Michael Nielsen tentang protokol Bitcoin, yang menurut penerjemah merupakan artikel yang paling jelas yang pernah ditulis oleh penerjemah tentang bagaimana protokol Bitcoin bekerja. Michael Nielsen adalah ilmuwan, penulis, dan programmer terdepan yang mempelajari perhitungan kuantum. Untuk detailnya, silakan lihat pengantarannya sendiri. Artikel ini diterjemahkan karena penerjemah berpendapat bahwa artikel tentang Bitcoin dan perdebatan tentang Bitcoin memiliki banyak, banyak dukungan. Tetapi sebagian besar berhenti pada pemikiran konseptual, harga, dan subjektif.

Nakamoto sendiri tidak pernah pergi untuk meyakinkan orang lain, tetapi memposting artikel ke internet, dan membiarkan orang lain untuk menilai sendiri. Kata Nakamoto sendiri It would help to condense the article and make it less promotional sounding as soon as possible. Just letting people know what it is, where it fits into the electronic money space, not trying to convince them that its good.

  • Berikut adalah teks aslinya:

    Ribuan artikel telah mencoba menjelaskan Bitcoin, mata uang online "peer-to-peer". Sebagian besar artikel telah mengutip protokol yang mendasarinya dan meninggalkan banyak detail. Bahkan artikel yang sangat mendalam juga terjebak di tempat-tempat penting. Tujuan artikel ini adalah untuk menjelaskan poin di balik protokol Bitcoin dengan cara yang jelas dan mudah dimengerti.

    Memahami protokol ini secara mendalam sulit karena mudah untuk menganggap Bitcoin sebagai sesuatu yang diberikan, dan berpikir tentang bagaimana menggunakannya untuk menghasilkan uang secara spekulatif, berpikir apakah itu gelembung, berpikir apakah Bitcoin berarti akhir dari pajak, dll. Ini menarik untuk dipikirkan, tetapi ide-ide ini sangat membatasi pemahaman Anda. Memahami protokol Bitcoin sendiri akan membuka perspektif yang tidak dapat dicapai oleh saluran lain. Misalnya, bahwa protokol ini adalah dasar dari bahasa skrip yang dibangun di dalam Bitcoin, bahasa skrip yang memungkinkan Anda membuat instrumen keuangan baru seperti kontrak pintar dengan Bitcoin.

    Saya akan menjelaskan skrip bitcoin dan kontrak pintar di artikel selanjutnya. Artikel ini saya akan fokus pada detail spesifik protokol bitcoin. Untuk memahami artikel ini, Anda mungkin perlu akrab dengan kata sandi kunci publik dan tanda tangan digital yang terkait, dan mungkin juga akrab dengan fungsi hash (mengubah input panjang arbitrer menjadi output panjang tetap).

    Bitcoin didasarkan pada kriptografi, yang mungkin mengejutkan Anda, bukankah Bitcoin adalah mata uang? Apakah itu adalah cara untuk mengirim pesan rahasia? Sebenarnya, sebagian besar masalah yang ingin diselesaikan oleh Bitcoin adalah tentang melindungi transaksi agar tidak ada yang mencuri dari orang lain atau meniru orang lain, dll. Di dunia fisik yang terdiri dari atom, kita menjamin keamanan dengan kunci, tanda tangan, kotak asuransi bank, dll. Di dunia informasi, kita menjamin keamanan dengan kriptografi. Itulah mengapa protokol kriptografi inti Bitcoin.

    Strategi artikel ini adalah membangun Bitcoin satu per satu. Kami akan memulai dengan mata uang digital yang sangat sederhana, yang akan kami sebutkan sebagai "Infocoin" untuk sementara, untuk membedakannya dari Bitcoin. Tentu saja versi pertama kami dari Infocoin akan memiliki banyak kekurangan, jadi kami akan melakukan beberapa iterasi, dan setiap iterasi akan memperkenalkan satu atau dua konsep baru.

    Cara ini agak lebih lambat daripada menjelaskan Bitcoin secara langsung dari awal. Tetapi bahkan jika Anda dapat memahami apa yang dimaksud dengan Bitcoin, Anda akan sulit memahami mengapa Bitcoin dirancang seperti ini. Keuntungan dari penjelasan iteratif langkah demi langkah yang lambat adalah bahwa hal itu memungkinkan Anda untuk memiliki pemahaman yang lebih jelas tentang setiap elemen Bitcoin.

    Akhirnya, saya harus mengatakan bahwa saya relatif baru di dunia Bitcoin. Saya memiliki perhatian kasar pada tahun 2011, tetapi saya benar-benar serius mempelajari detailnya pada awal tahun 2013.

  • Langkah 1: Tandatangani Surat Keinginan

    • Bagaimana cara merancang mata uang?

      Dari sudut pandang luar, mata uang digital terdengar mustahil. Misalkan seseorang yang kita sebut Alice memiliki beberapa mata uang digital yang ingin dia habiskan. Jika Alice dapat menggunakan satu string karakter sebagai uang, bagaimana kita bisa mencegahnya menggunakan karakter yang sama berulang kali?

      Ini hanya dua dari banyak masalah yang harus diselesaikan dengan informasi sebagai mata uang. Dalam versi pertama Infocoin, kami mencoba untuk meminta Alice untuk memberikan sebuah string sebagai uang, dan mencari cara untuk melindungi itu dari pemalsuan. Misalkan Alice ingin memberikan sebuah infocoin kepada orang lain, Bob. Alice perlu menulis pesan berikut:

      Cara ini tidak begitu terkenal, tetapi masih memiliki beberapa keuntungan. Siapa pun di dunia dapat menggunakan kunci publik Alice untuk memverifikasi bahwa Alice memang orang yang menandatangani. Tidak ada yang lain yang dapat menghasilkan hasil tanda tangan itu. (Tanda tangan ini hanya dapat dihasilkan dari kunci pribadi yang dimiliki Alice, prinsipnya lihat tanda tangan digital yang disebutkan di atas), sehingga Alice tidak bisa mengatakan tidak, saya tidak memberikan Bob infocoin).

      Saya belum mengatakan apa sebenarnya uang dalam protokol ini. Yang jelas: uang sebenarnya adalah pesan itu sendiri. Artinya, tanda tangan generasi itu mewakili karakter yang akan diberikan oleh Alice kepada Bob. Protokol selanjutnya akan mirip dalam hal ini, yaitu semua mata uang digital hanyalah karakter pesan yang semakin rinci.

  • Dengan menggunakan nomor deret untuk memberikan identifikasi unik pada mata uang

    Masalah dari versi pertama Infocoin kami adalah apakah Alice dapat mengirim pesan yang sama yang ditandatangani berulang kali ke Bob. Misalkan Bob menerima 10 pesan seperti "Saya, Alice, ingin memberikan satu infocoin kepada Bob". Apakah itu bahwa Alice memberikan 10 infocoin yang berbeda kepada Bob? Atau apakah Alice memberi Bob satu infocoin, hanya dengan tidak sengaja mengulangi pesan?

    Yang kami inginkan adalah agar infocoin memiliki logo yang unik. Ini membutuhkan tag atau nomor seri. Alice dapat menandatangani infocoin dengan nomor seri 8740348 di pesan yang dikirim oleh Alice kepada Bob. Kemudian jika Alice menandatangani infocoin dengan nomor seri 8770431 di pesan yang dikirim oleh Alice, Alice dapat memberikan infocoin dengan nomor seri 8770431 kepada Bob, sehingga Bob dan orang lain tahu bahwa ini adalah dua infocoin yang berbeda.

    Untuk membuat program ini berhasil, kita harus memiliki sumber nomor seri yang dapat diandalkan. Salah satu cara untuk menghasilkan nomor seri adalah dengan membangun lembaga seperti bank. Bank ini akan menghasilkan nomor seri untuk infocoin, mencatat siapa yang memiliki infocoin, dan memverifikasi keaslian transaksi.

    Lebih rinci lagi, katakanlah Alice pergi ke sebuah bank dan berkata, "Aku akan mengambil sebuah infocoin dari rekeningku". Bank ini mengurangi satu infocoin dari rekeningnya, lalu memberinya nomor seri baru yang belum pernah digunakan, katakanlah 1234567. Kemudian, ketika Alice ingin mengirim sebuah infocoin ke Bob, dia menandatangani pesan baru itu.

  • Jadilah Bank untuk Semua Orang

    Solusi di atas tampaknya memiliki potensi besar. Namun, kita bisa melakukan hal yang lebih ambisius. Kita bisa menghapus bank dari perjanjian ini. Ini sangat mengubah sifat mata uang itu sendiri. Ini berarti tidak akan ada organisasi yang terpisah yang bertanggung jawab atas mata uang itu.

    Cara ini adalah dengan membuat semua orang bekerja sama untuk menjadi bank. Secara khusus, kita berasumsi setiap orang yang menggunakan infocoin menyimpan catatan lengkap, termasuk catatan yang mana infocoin milik siapa. Anda dapat membayangkan itu sebagai buku ledger terbuka bersama yang mencatat catatan transaksi semua infocoin.

    Sekarang, misalkan Alice ingin memberikan sebuah infocoin kepada Bob. Dia akan mengirim pesan kepada saya. Alice akan mengirim pesan kepada Bob dengan tanda tangan pada infocoin bernomor seri 1234567. Dan akan mengirim pesan yang ditandatangani kepada Bob, dan Bob dapat memeriksa dengan rantai bloknya sendiri. OK, itu adalah infocoin yang diberikan Alice kepada saya.

    Kami masih memiliki masalah tentang dari mana nomor deretnya berasal, tetapi hal ini sebenarnya mudah diselesaikan, jadi saya akan menjelaskan nanti. Masalah yang lebih sulit adalah bahwa protokol ini memungkinkan Alice untuk berulang kali menghabiskan infocoin-nya. Dia dapat mengirim pesan yang ditandatangani. Alice akan memberikan Bob nomor deretnya 1234567. Dia juga dapat mengirim pesan yang ditandatangani.

    Kami menyebut masalah ini sebagai masalah double spending, yang pada awalnya tampaknya sulit untuk berhasil. Setelah semua, jika Alice mengirim pesan kepada Bob terlebih dahulu, maka Bob mengirim pesan kepada semua orang lain, termasuk Charlie, dan orang lain memperbarui blockchain mereka. Pada saat ini, Charlie tidak akan ditipu oleh Alice. Jadi tampaknya pengeluaran ganda hanya mungkin dalam waktu singkat. Namun, bahkan jika waktu itu singkat, masalah ini tidak diinginkan.

    Bagaimana cara mengatasi masalah ini? Cara termudah adalah bahwa ketika Alice mengirim infocoin kepada Bob, Bob tidak harus memeriksa transaksi itu sendiri. Sebaliknya, dia harus mempublikasikan transaksi yang sedang menunggu ini ke seluruh jaringan infocoin dan membiarkan orang lain membantu menilai apakah transaksi itu wajar. Jika mereka bersama-sama memutuskan bahwa transaksi itu wajar, maka Bob dapat menerima infocoin itu, dan kemudian semua orang memperbarui blockchain mereka. Protokol semacam ini dapat mencegah kembang ganda, karena jika Alice ingin mengirim infocoin yang sama ke Bob dan Charlie pada saat yang sama, orang lain di jaringan akan memperhatikan dan memberi tahu Bob dan Charlie bahwa transaksi itu bermasalah, maka transaksi itu tidak diizinkan untuk dilewati.

    Lebih khusus lagi, misalkan Alice ingin memberikan sebuah infocoin kepada Bob. Seperti sebelumnya, dia memberikan tanda tangan pada sebuah pesan, dan Alice akan memberikan sebuah tanda tangan pada sebuah infocoin dengan nomor seri 1234567 kepada Bob, dan akan memberikan tanda tangan pada sebuah pesan yang baik kepada Bob. Seperti sebelumnya, Bob menggunakan blockchainnya sendiri untuk melakukan pemeriksaan, dan koin itu memang milik Alice. Namun, protokolnya berbeda, Bob tidak menerima ini secara langsung, tetapi mengumumkan pesan Alice ke seluruh jaringan.

    Protokol ini sekarang masih memiliki banyak faktor yang tidak pasti. Misalnya, apa artinya jika cukup banyak orang mempublikasikan berita ini, berapa banyak orang yang cukup? Tidak mungkin seluruh jaringan infocoin karena kita tidak tahu terlebih dahulu siapa yang berada di jaringan infocoin. Juga, tidak bisa menjadi bagian tetap dari pengguna. Kami tidak terburu-buru untuk mencari tahu masalah ini sekarang.

  • Proof-of-work

    Misalkan Alice ingin menggandakan protokol di atas, dia perlu mengendalikan seluruh jaringan infocoin. Misalkan dia menggunakan sistem otomatis untuk membuat banyak akun dengan identitas yang berbeda di jaringan infocoin, misalkan ada satu miliar. Seperti sebelumnya, dia mencoba melakukan menggandakan, memberikan infocoin yang sama kepada Bob dan Charlie, tetapi ketika Bob dan Charlie meminta jaringan infocoin untuk memeriksa transaksi ini, kuda-kuda Alice membanjiri seluruh jaringan, memberi tahu Bob dan Charlie bahwa mereka dapat melalui transaksi ini, dan mungkin menipu salah satu dari mereka atau keduanya untuk menerima transaksi ini.

    Ada cara yang cerdas, menggunakan metode yang disebut Proof-of-work of a brick. Metode ini tidak intuitif dan membutuhkan kombinasi dari dua konsep, 1) membuat proses pemeriksaan transaksi secara manual menghabiskan biaya komputasi yang lebih besar; 2) memberi hadiah kepada mereka yang membantu memeriksa transaksi tersebut. Menggunakan metode penghargaan untuk memotivasi orang-orang di jaringan untuk memverifikasi transaksi. Keuntungan dari peningkatan biaya verifikasi transaksi adalah bahwa verifikasi tidak lagi dikendalikan oleh orang yang memiliki banyak akun, tetapi hanya dikendalikan oleh kemampuan komputasi total yang dapat dia berikan.

    Tapi untuk benar-benar memahami sertifikat kerja, kita perlu masuk ke dalam detail yang lebih spesifik.

    Katakanlah bahwa Alice akan memberikan Bob sebuah infocoin dengan nomor urutan 1234567. Ketika orang lain di jaringan mendengar pesan ini, semua orang akan menambahkannya ke dalam daftar transaksi yang belum disetujui oleh seluruh jaringan. Katakanlah bahwa seseorang di jaringan yang bernama David mungkin memiliki daftar transaksi yang tertunda berikut:

    img

    David memeriksa blokchainnya sendiri dan melihat bahwa transaksi tersebut masuk akal. Dia ingin membantu menyebarkan pesan verifikasi ini ke seluruh jaringan. Namun, sebelum itu, protokol verifikasi transaksi membutuhkan David untuk memecahkan sebuah teka-teki komputasi yang sulit, yaitu bukti kerja. Jika dia tidak mendapatkan solusi untuk teka-teki tersebut, anggota lain di jaringan tidak akan menerima verifikasinya.

    Untuk menjelaskan hal ini, kita menggunakan hash function yang diketahui oleh semua orang di jaringan untuk memasukkannya ke dalam protokol itu sendiri. Bitcoin menggunakan hash function SHA-256 yang terkenal, tetapi setiap hash function kriptografi dapat digunakan di sini. Kami memberi label transaksi tertunda untuk kelompok ini, L, untuk referensi selanjutnya. Kumpulan transaksi tertunda ini juga setara dengan blok di dalam blockchain.

    img

    Masalah yang akan diselesaikan oleh David adalah mencari x yang acak, dan ketika kita menambahkan x ini ke L dan hash ini, hasil yang diperoleh dimulai dengan beberapa nol awal. Kesulitan dari masalah ini dapat diatur dengan menyesuaikan jumlah nol awal. Sebuah pembuktian kerja yang sederhana membutuhkan hanya 3 atau 4 hash dengan awal nol, dan pembuktian kerja yang sulit mungkin membutuhkan lebih banyak hash dengan awal nol, misalnya 15 nol berturut-turut. Dalam kasus di atas, hash yang mencapai x = 0 tidak berhasil karena hasilnya tidak dimulai dengan 0.

    Jadi kita bisa melihat bahwa x tidak sama dengan 1.

    img

    Kemudian kita coba x = 2, kemudian x = 3, 4, 5... dan akhirnya kita menemukan bahwa x = 4350.

    img

    Jumlah x yang acak ini memberi kita hasil empat hash yang dimulai dengan nol. Ini cukup untuk memecahkan sebuah masalah sederhana untuk membuktikan hash.

    Hal yang membuat masalah ini sulit untuk diselesaikan adalah bahwa hasil dari hash fungsi kata sandi selalu acak, dan setiap perubahan kecil pada nilai input akan mengubah hasil dari seluruh hash fungsi sehingga sulit untuk diprediksi. Jadi jika kita ingin output harus dimulai dari 10 0, maka David akan membutuhkan rata-rata 1610 ≈ 1012 x yang berbeda untuk menemukan nilai yang tepat. Ini adalah tugas yang sangat menantang dan membutuhkan banyak kemampuan komputasi.

    Jelas, kita dapat mengontrol tingkat kesulitan dari masalah pembuktian kerja dengan menetapkan berapa banyak nol yang dibutuhkan. Sebenarnya, protokol Bitcoin memiliki kontrol yang lebih baik atas tingkat kesulitan dari masalah pembuktian kerja dengan sedikit mengubah bukti kerja di atas. Tidak lagi ditentukan berapa banyak nol awal yang dibutuhkan, tetapi ditentukan bahwa hasil hash blok kurang dari atau sama dengan nilai target, nilai target yang disesuaikan secara otomatis, untuk memastikan bahwa setiap blok bitcoin (blok) membutuhkan waktu rata-rata 10 menit untuk dipecahkan.

    Baiklah, anggaplah David beruntung dan menemukan x yang cocok, dan selamatkan dia! (dia akan diberi hadiah untuk menemukan jawabannya). Dia akan mengumumkan bahwa dia telah membuktikan bahwa transaksi di dalam blok itu sah, dan pada saat yang sama mempublikasikan nilai x yang dia temukan, peserta lain di infocoin dapat membuktikan bahwa pembuktian kerja x itu valid.

    Untuk menunjukkan bahwa program ini bekerja, peserta jaringan harus membutuhkan insentif untuk membantu verifikasi transaksi. Tanpa insentif, tidak ada yang mau menghabiskan tenaga komputer mereka untuk membantu verifikasi transaksi. Jika peserta jaringan tidak mau menghabiskan tenaga komputasi, maka seluruh sistem tidak akan berfungsi. Oleh karena itu, kita dapat memberi hadiah kepada siapa pun yang berhasil memverifikasi transaksi dengan cara memberi mereka beberapa infocoin. Jika memberi mereka insentif infocoin yang cukup besar, mereka dapat dianjurkan untuk berpartisipasi dalam verifikasi.

    Dalam protokol Bitcoin, proses verifikasi ini disebut penggalian tambang. Pada saat itu, pemenang verifikasi dari setiap blok transaksi akan menerima Bitcoin sebagai hadiah. Pada awalnya, hadiah 50 bitcoin. Namun, setiap 210.000 blok yang diverifikasi (sekitar setiap 4 tahun), hadiahnya akan berkurang setengahnya. Namun, hal ini hanya terjadi sekali, yaitu saat ini, verifikasi block yang diperoleh adalah 25 bitcoin. Proses pengurangan setengahnya akan berlangsung hingga sekitar 2140; pada saat itu, hadiah penambangan akan berkurang menjadi 10-8 bitcoin.

    Anda dapat menganggap bukti kerja sebagai proses transaksi verifikasi yang kompetitif. Setiap peserta akan menghabiskan sebagian dari kekuatan komputer. Peluang pemenang seorang penambang mungkin sama dengan rasio ukuran kekuatan komputasi yang mereka kendalikan terhadap kekuatan komputasi seluruh jaringan. Misalnya, jika seorang penambang mengendalikan satu persen dari kekuatan komputasi seluruh jaringan, maka kemungkinannya untuk menang juga mungkin satu persen.

    Tentu saja, bahkan jika para penambang yang tidak jujur memiliki peluang kecil untuk merusak seluruh blockchain, kita tidak cukup percaya diri untuk menggunakannya sebagai mata uang.

    Saya akan segera menganalisis masalah bunga dua, tetapi sebelum itu, saya ingin menambahkan detail penting dalam konsep Infocoin. Idealnya, kita ingin jaringan Infocoin dapat menyatuan urutan transaksi yang terjadi. Jika kita tidak memiliki urutan yang seragam, maka tidak jelas siapa yang memiliki infocoin pada waktu tertentu. Untuk membantu menyelesaikan ini.

    img

    Dalam kasus kebetulan, sebuah blockchain akan menghasilkan cabang. Hal ini terjadi karena, terkadang, dua penambang memverifikasi transaksi blok hampir secara bersamaan. Mereka mempublikasikan ke jaringan pada saat yang sama, beberapa orang memperbarui blockchain mereka dengan satu cara, dan beberapa orang memperbarui blockchain mereka dengan cara lain.

    img

    Hal ini menyebabkan situasi yang ingin kita hindari, di mana urutan transaksi tidak jelas, dan siapa yang memiliki infocoin tidak jelas. Untungnya, ada cara sederhana untuk memindahkan cabang. Aturan adalah: jika situasi cabang terjadi, orang-orang di jaringan terus mempertahankan dua cabang, dan dalam setiap kasus, penambang hanya bekerja pada blockchain terpanjang.

    Misalkan kita memiliki cabang, beberapa penambang menerima blok A terlebih dahulu, dan beberapa penambang lainnya menerima blok B terlebih dahulu. Para penambang yang menerima blok A akan terus menambang di sepanjang cabang mereka, sementara yang lain akan menambang di sepanjang cabang B. Misalkan para penambang di cabang B berhasil menambang blok berikutnya:

    img

    Ketika mereka menerima pesan ini, orang-orang di cabang A akan memperhatikan bahwa sekarang cabang B adalah yang terpanjang, sehingga mereka akan beralih ke cabang B. Pekerjaan di cabang A akan berhenti dengan cepat, sehingga semua orang akan bekerja di blokchain dalam urutan yang sama. Kemudian blok A akan diabaikan. Tentu saja, semua transaksi tertunda di blok A akan tetap tertunda, dan kemudian akan ditempatkan di cabang B ke blok baru, sehingga semua transaksi akhirnya akan diverifikasi.

    Dengan cara yang sama, jika penambang di cabang A menambang blok berikutnya terlebih dahulu, maka orang yang bekerja di cabang B berhenti dan beralih ke cabang A.

    Apapun hasilnya, proses ini memastikan bahwa blockchain memiliki urutan yang seragam. Dalam Bitcoin, transaksi tidak dapat dihitung sebagai konfirmasi sampai 1) itu ada di blok yang paling panjang di cabang, dan 2) setidaknya ada 5 blok yang telah diverifikasi yang terverifikasi di belakangnya. Dalam hal ini, kita mengatakan bahwa transaksi tersebut memiliki 6 verifikasi berturut-turut.

    Sekarang kita memahami urutan waktu, maka kita kembali memikirkan apa yang akan terjadi jika seseorang yang tidak jujur ingin menghabiskan dua kali lipat. Misalkan Alice memberikan Bob dan Charlie transaksi yang sama pada saat yang sama. Satu kemungkinan adalah meminta dia untuk memverifikasi sebuah blok dengan dua transaksi pada saat yang sama. Misalkan dia memiliki satu persen kemampuan komputasi, maka dia mungkin lebih beruntung untuk memverifikasi satu blok. Sayangnya, biaya ganda ini akan segera ditemukan dan ditolak oleh orang lain, meskipun dia memecahkan masalah sulit dalam pembuktian kerja. Jadi kemungkinan ini tidak perlu kita khawatirkan.

    Tapi kemungkinan lain adalah bahwa dia mencoba untuk mempublikasikan dua transaksi secara terpisah. Dia mungkin mempublikasikan satu transaksi kepada satu kelompok penambang dan yang lain kepada kelompok penambang lainnya, dan dia ingin kedua transaksi tersebut diverifikasi. Untungnya, dalam kasus ini, seperti yang baru saja kami katakan, jaringan akhirnya hanya akan mengkonfirmasi satu transaksi. Jadi, ini juga bukan masalah.

    Alternatif lainnya adalah, Alice = Bob, yang berarti Alice mencoba untuk memberikan koin kepada Charlie, dan pada saat yang sama dia memberikan koin itu untuk dirinya sendiri, karena dia sendiri dapat memiliki beberapa akun. Dalam hal ini, strategi Alice adalah menunggu sampai Charlie menerima Infocoin, yang mungkin setelah transaksi dikonfirmasi 6 kali di blockchain terpanjang. Dia kemudian mencoba untuk menyelesaikan cabang blok lain yang memiliki transaksi yang dia kirimkan kepadanya.

    img

    Sayangnya, pada saat ini, Alice sudah 6 langkah lebih lambat dari blockchain terpanjang. Dia sulit untuk mengikuti cabang terpanjang. Para penambang lain tidak akan membantunya karena mereka semua harus bekerja di cabang terpanjang untuk mendapatkan hadiah. Kecuali jika Alice dapat bergabung lebih cepat daripada orang lain di jaringan saat memecahkan pekerjaan yang terbukti (yaitu, dia mungkin memiliki lebih dari 50% kemampuan komputasi seluruh jaringan).

    Tentu saja, ini tidak terlalu ketat untuk mengatakan bahwa Alice pasti tidak bisa menggandakan uang. Ini hanya kesimpulan yang masuk akal. Buku putih Bitcoin tidak melakukan analisis keamanan yang ketat, tetapi hanya kesimpulan informal yang mirip dengan yang saya lakukan di sini.

    Terjemahan, ini adalah bagian pertama, bagian kedua penulis Michael meninggalkan konsep Infocoin untuk menjelaskan protokol Bitcoin secara lebih rinci melalui pandangan transaksi Bitcoin. Jika Anda melihatnya di sini, Anda dapat mengikuti microblog saya, dan blog saya.

    Selain itu, jika Anda merasa membantu, saya sarankan Anda memberi tip kepada penulis artikel ini, Michael Nielsen, yang alamatnya adalah 17ukkKt1bNLAqdJ1QQv8v9Askr6vy3MzTZ, Anda juga dapat mengikuti dia di Twitter.

Artikel-artikel ini dikutip dari majalah Young People's Bible


Lebih banyak