Daftar Isi:

Bagaimana sebenarnya blockchain bekerja
Bagaimana sebenarnya blockchain bekerja

Video: Bagaimana sebenarnya blockchain bekerja

Video: Bagaimana sebenarnya blockchain bekerja
Video: SAYA BERSUMPAH, SAYA TIDAK AKAN PERNAH MAU IKUT TUHAN ORANG KAFIR, SAYA BUANG LUDAH 3 KALI! 2024, Mungkin
Anonim

Posting ini dimaksudkan untuk memberi tahu semua orang mengapa blockchain ditemukan, bagaimana cryptocurrency bekerja dan mengapa itu adalah sistem yang paling indah dalam beberapa tahun terakhir dari sudut pandang logika.

Saya akan segera memperingatkan Anda bahwa di bawah potongan ada lembar teks BESAR dan jika Anda tidak siap untuk "menutup" pertanyaan tentang topik cryptocurrency sekali dan untuk semua, tambahkan entri ke favorit Anda sekarang dan pesan waktu)

Blockchain adalah teknologi, baru, aneh, tidak dapat dipahami, tetapi tampaknya mengubah dunia, berbeda dengan kisah-kisah Anda ini. Rupanya, dia bersama kami untuk waktu yang lama.

Postingan ini ditulis seolah-olah sedang diceritakan kepada orang-orang yang sangat jauh dari komputer dan hanya mengenalnya secara dangkal, misalnya bayangkan dia sedang mempersiapkan diri untuk orang tua Anda. Saya bahkan bisa melemparkannya ke sesama umat manusia dan memastikan mereka akan mengerti.

Dan Oleg akan membantu kita semua dalam masalah yang sulit ini. Bertemu!

Jika Anda tidak menyukai Oleg, saya akan mengusirnya.

Dasar-dasar: mengapa kita membutuhkan blockchain?

Blockchain dijelaskan dalam artikel Satoshi Nakamoto "Bitcoin: Sistem Uang Elektronik Peer-to-Peer". Di sana, hanya dalam delapan halaman, penulis menjelaskan dasar-dasar cryptocurrency Bitcoin, yang didasarkan pada algoritma Blockchain.

Daftar yang tidak dapat diubah

Blockchain - rantai blok atau dengan kata lain daftar tertaut. Dalam daftar seperti itu, setiap catatan berikutnya mengacu pada satu catatan sebelumnya, dan seterusnya ke bawah rantai ke yang pertama. Seperti gerbong kereta, masing-masing gerbong menyeret gerbong berikutnya. Mengenai daftar, ada artikel bagus oleh Nikita Likhachev di TJ, di mana hal yang sama dijelaskan untuk pemula sepenuhnya. Analogi sebagian diambil dari sana.

Mari kita ambil contoh

Teman-teman Oleg terus-menerus meminjam uang darinya. Oleg baik, tapi sangat pelupa. Seminggu kemudian, dia tidak ingat lagi siapa yang tidak mengembalikan hutang kepadanya, tetapi dia malu untuk menanyakannya kepada semua orang. Oleh karena itu, suatu hari dia memutuskan untuk mengakhiri ini dengan membuat daftar teman di papan tulis di rumahnya yang dia pinjam uang.

Sekarang Oleg selalu dapat pergi ke papan dan memastikan bahwa Max mengembalikan semuanya, tetapi Vanya belum memberikan 700 rubel. Suatu hari Oleg mengundang Vanya untuk minum di rumahnya. Saat Oleg pergi ke toilet, Vanya menghapus entri "Saya meminjam 200 rubel untuk Vanya" dan menulis sebagai gantinya "Vanya memberi 500 rubel".

Oleg, yang memercayai daftarnya, melupakan hutangnya dan kehilangan 700 rubel. Dia memutuskan untuk entah bagaimana melawannya. Tahun lalu, Oleg menghadiri kursus pemrograman, di mana dia diberi tahu tentang hashing. Dia ingat bahwa string apa pun dapat diubah menjadi serangkaian karakter yang tidak ambigu - hash, dan mengubah karakter apa pun dalam string akan sepenuhnya mengubahnya.

Menambahkan titik di akhir mengubah hash terakhir yang tidak dapat dikenali - Anda dapat menggunakannya.

Oleg mengambil hash SHA-256 yang terkenal dan meng-hash setiap record dengannya, menambahkan hasilnya di akhir. Sekarang Oleg dapat memastikan bahwa tidak ada yang mengubah catatannya dengan hashing mereka lagi dan membandingkannya dengan yang hijau.

Tetapi EVIL IVAN juga tahu cara menggunakan SHA-256 dan dapat dengan mudah mengubah entri beserta hash-nya. Terutama jika hash ditulis tepat di sebelahnya di papan tulis.

Oleh karena itu, untuk keamanan yang lebih besar, Oleg memutuskan untuk meng-hash tidak hanya catatan itu sendiri, tetapi juga menambahkannya bersama dengan hash dari catatan sebelumnya. Sekarang semua entri berikut bergantung pada entri sebelumnya. Jika Anda mengubah setidaknya satu baris, Anda harus menghitung ulang hash dari semua baris lainnya di bawah dalam daftar.

Tetapi suatu hari Ivan menyelinap di malam hari, mengubah entri yang dia butuhkan dan memperbarui hash untuk seluruh daftar sampai akhir. Butuh beberapa jam, tapi Oleg masih tertidur lelap dan tidak bisa mendengar. Di pagi hari, Oleg menemukan daftar yang benar-benar benar - semua hash cocok. Tapi Ivan tetap menipunya, meskipun dia menghabiskan malam tanpa tidur untuk itu. Bagaimana lagi Anda bisa melindungi diri dari Night Ivan?

Oleg memutuskan untuk memperumit hidupnya. Sekarang, untuk menambahkan entri baru ke daftar, Oleg akan memecahkan masalah kompleks yang terkait dengannya, misalnya, persamaan matematika. Dia akan menambahkan jawaban ke hash terakhir.

Oleg pandai matematika, tetapi bahkan butuh sepuluh menit untuk menambahkan entri. Meskipun demikian, waktu yang dihabiskan tidak sia-sia, karena jika Ivan ingin mengubah sesuatu lagi, ia harus menyelesaikan kembali persamaan untuk setiap baris, dan mungkin ada lusinan. Ini akan memakan banyak waktu, karena persamaannya unik setiap kali dan terkait dengan catatan tertentu.

Tetapi memeriksa daftarnya sama sederhananya: pertama-tama Anda perlu membandingkan hash seperti sebelumnya, lalu memeriksa solusi persamaan dengan substitusi sederhana. Jika semuanya menyatu, daftarnya tidak berubah.

Pada kenyataannya, banyak hal yang tidak begitu baik dengan persamaan: komputer menyelesaikannya dengan sangat baik, dan di mana menyimpan begitu banyak persamaan unik. Oleh karena itu, penulis blockchain datang dengan masalah yang lebih indah: Anda perlu menemukan nomor seperti itu (nonce) sehingga hash akhir dari seluruh catatan dimulai dengan 10 nol. Nonce seperti itu sulit ditemukan, tetapi hasilnya selalu dapat diperiksa hanya dengan mata.

Sekarang Oleg memverifikasi semua hash dan juga memastikan bahwa setiap hash dimulai dengan jumlah nol yang ditentukan. Ivan yang licik, bahkan dipersenjatai dengan laptop yang kuat, tidak akan punya waktu untuk menghitung ulang semua hash dalam semalam sehingga memenuhi kondisi - tidak akan ada cukup waktu.

Daftar seperti itu, pada kenyataannya, adalah blockchain rumah di lututnya. Keamanannya dijamin oleh ahli matematika, yang membuktikan bahwa hash ini tidak dapat dihitung lebih cepat, kecuali dengan kekerasan. Pencacahan hash seperti itu untuk setiap catatan adalah penambangan, yang hari ini akan ada banyak dan terperinci.

Sentralisasi kepercayaan

Teman-teman kami menyukai gagasan menyimpan daftar palsu "siapa meminjam siapa". Mereka juga tidak ingin mengingat siapa yang membayar untuk siapa di bar dan berapa banyak mereka masih berutang - semuanya tertulis di dinding. Anda mendiskusikan gagasan itu dan memutuskan bahwa sekarang Anda memerlukan satu daftar untuk semua.

Tetapi siapa yang harus dipercayakan dengan pembukuan yang begitu penting? Lagi pula, dalam hal uang, kepercayaan diutamakan. Kami tidak akan mempercayai orang yang tidak dikenal untuk menyimpan uang kami. Untuk ini, nenek moyang kita menemukan bank, yang seiring waktu mulai dipercaya, karena didukung oleh lisensi, undang-undang, dan asuransi dari Bank Sentral.

Di lingkaran teman, semua orang saling percaya dan Anda bisa memilih yang paling bertanggung jawab untuk peran ini. Tetapi bagaimana jika pertanyaannya adalah tentang orang asing? Seluruh kota, negara, atau seluruh dunia, seperti halnya Bitcoin? Secara umum, tidak ada yang bisa mempercayai siapa pun di sana.

Desentralisasi: tidak ada yang mempercayai siapa pun

Jadi mereka datang dengan pendekatan alternatif: simpan salinan daftar untuk semua orang. Dengan demikian, penyerang tidak hanya harus menulis ulang satu daftar, tetapi juga menyelinap ke setiap rumah dan menulis ulang daftar di sana. Dan kemudian ternyata seseorang menyimpan beberapa daftar di rumah, yang tidak diketahui siapa pun. Ini adalah desentralisasi.

Kelemahan dari pendekatan ini adalah bahwa untuk membuat entri baru, Anda harus memanggil semua peserta lain dan memberi tahu mereka masing-masing tentang perubahan terbaru. Tetapi jika para peserta ini adalah mesin tanpa jiwa, itu tidak lagi menjadi masalah sama sekali.

Dalam sistem seperti itu, tidak ada titik kepercayaan tunggal, dan karenanya kemungkinan penyuapan dan kecurangan. Semua peserta dalam sistem bertindak sesuai dengan satu aturan: tidak ada yang mempercayai siapa pun. Semua orang hanya percaya informasi yang mereka miliki. Ini adalah hukum utama dari setiap jaringan terdesentralisasi.

Transaksi

Saat membeli pot di toko, Anda memasukkan kode pin dari kartu Anda, memungkinkan toko bertanya kepada bank apakah Anda memiliki 35 rubel di akun Anda. Dengan kata lain, Anda menandatangani transaksi untuk 35 rubel dengan kode pin Anda, yang dikonfirmasi atau ditolak oleh bank.

Catatan kami tentang jenis "Saya meminjam Vanya 500 rubel" juga merupakan transaksi. Tetapi kami tidak memiliki bank yang memberikan otorisasi kepada penulis transaksi tersebut. Bagaimana kita bisa memeriksa bahwa Ivan tidak diam-diam menambahkan entri "Maks berutang Oleg 100.500 rubel"?

Blockchain menggunakan mekanisme kunci publik dan pribadi untuk ini; spesialis TI telah lama menggunakannya untuk otorisasi di SSH yang sama. Saya menjelaskannya dengan jari saya di pos "Keamanan, enkripsi, cyberpunk" di bagian "Pengantar enkripsi".

Secara singkat tentang cara kerja matematika yang rumit namun indah ini: Anda menghasilkan sepasang bilangan prima yang panjang di komputer Anda - kunci publik dan kunci pribadi. Kunci pribadi dianggap super rahasia karena dapat mendekripsi apa yang dienkripsi di publik.

Tetapi sebaliknya juga bekerja. Jika Anda membagikan kunci publik dengan semua teman Anda, mereka akan dapat mengenkripsi pesan apa pun untuk mereka sehingga hanya Anda yang dapat membacanya, karena Anda adalah pemilik pribadi.

Tetapi selain itu, kunci publik memiliki efek yang berguna - dengan itu Anda dapat memeriksa apakah data dienkripsi dengan kunci pribadi Anda, tanpa mendekripsi data itu sendiri. Semua properti ini dijelaskan dengan baik dalam "Book of Ciphers".

Kami berada di internet terdesentralisasi di mana tidak ada yang bisa dipercaya. Transaksi ditandatangani dengan kunci pribadi dan, bersama dengan kunci publik, dikirim ke penyimpanan khusus - kumpulan transaksi yang belum dikonfirmasi. Jadi, setiap anggota jaringan dapat memverifikasi bahwa Andalah yang memulainya, dan bukan orang lain yang ingin membayar dengan uang Anda.

Ini memastikan keterbukaan dan keamanan jaringan. Jika bank sebelumnya bertanggung jawab untuk ini, maka di blockchain, ahli matematika bertanggung jawab untuk ini.

Untuk pengguna biasa yang tidak ingin mengetahui cara mengeluarkan dan menyimpan kunci pribadi, layanan dompet online akan membantu. Untuk menyalin kunci publik yang panjang, kode QR yang nyaman dibuat di sana. Misalnya Blockchain Wallet, karena memiliki aplikasi seluler yang nyaman dan mendukung dua cryptocurrency utama - BTC dan ETH.

Kurangnya konsep "keseimbangan"

Seperti papan kami, blockchain pada dasarnya hanya terdiri dari riwayat transaksi. Itu tidak menyimpan saldo setiap dompet, jika tidak kita harus menemukan metode perlindungan tambahan.

Hanya kunci pribadi yang mengonfirmasi kepemilikan dompet. Tetapi bagaimana anggota jaringan lain memastikan saya memiliki cukup uang untuk membeli?

Karena kami tidak memiliki saldo, Anda harus membuktikannya. Oleh karena itu, transaksi blockchain tidak hanya mencakup tanda tangan Anda dan berapa banyak yang ingin Anda belanjakan, tetapi juga tautan ke transaksi sebelumnya di mana Anda menerima jumlah uang yang diperlukan.

Artinya, jika Anda ingin menghabiskan 400 rubel, Anda menelusuri seluruh riwayat pendapatan dan pengeluaran Anda, dan melampirkan pada transaksi Anda pendapatan tersebut di mana Anda diberi 100 + 250 + 50 rubel, dengan demikian membuktikan bahwa Anda memiliki 400 rubel ini.

Setiap anggota jaringan akan sekali lagi memastikan untuk memeriksa bahwa Anda belum memasukkan penghasilan dua kali. Bahwa 300 rubel yang diberikan Max minggu lalu, Anda benar-benar belum menghabiskannya.

Pendapatan yang melekat pada transaksi disebut input di blockchain, dan semua penerima uang disebut output. Jumlah semua input jarang persis sama dengan yang ingin Anda transfer pada satu waktu - oleh karena itu, salah satu output paling sering adalah diri Anda sendiri. Dengan kata lain, transaksi di blockchain terlihat seperti "Saya diberi 3 dan 2 BTC, saya ingin mentransfer 4 BTC dari mereka dan mengembalikan 1 BTC yang tersisa."

Keindahan blockchain adalah bahwa input tidak harus datang dari satu dompet. Lagi pula, hanya kunci yang diperiksa. Jika Anda mengetahui kunci pribadi dari semua input, maka Anda dapat dengan mudah melampirkannya ke transaksi Anda dan membayar dengan uang ini. Seolah-olah Anda membayar di supermarket dengan beberapa kartu yang Anda tahu kode pinnya.

Namun, jika Anda kehilangan kunci pribadi, disk mati atau laptop Anda dicuri, bitcoin Anda akan hilang selamanya. Tidak ada yang bisa menggunakannya sebagai input untuk transaksi baru.

Jumlah ini tidak akan dapat diakses ke seluruh dunia selamanya - seolah-olah Anda membakar seikat uang kertas. Tidak ada bank tunggal di mana Anda dapat menulis aplikasi dengan salinan paspor Anda, dan dia akan mencetaknya. Ini membutuhkan rilis tambahan bitcoin baru "keluar dari udara tipis".

Masalah pengeluaran ganda

Di atas saya katakan bahwa transaksi ditambahkan ke "kumpulan transaksi yang belum dikonfirmasi" khusus. Mengapa kita membutuhkan semacam entitas perantara, jika kita sebenarnya sudah memiliki transaksi yang ditandatangani dan sudah jadi? Mengapa tidak menulisnya langsung ke blockchain?

Karena sinyal dari titik A ke titik B selalu berjalan dengan delay. Dua transaksi dapat berjalan dengan cara yang sangat berbeda. Dan transaksi yang diinisiasi terlebih dahulu bisa sampai ke penerima nantinya, karena menempuh jalur yang lebih panjang.

Ini menghasilkan pengeluaran ganda, ketika uang yang sama dikirim ke dua penerima sekaligus, yang bahkan tidak akan mereka duga. Ini bukan untuk menyerahkan tagihan dari tangan ke tangan.

Untuk jaringan terdesentralisasi di mana tidak ada yang bisa dipercaya, masalah ini sangat akut. Inilah cara Anda memastikan bahwa satu transaksi pasti sebelum yang lain? Minta pengirim untuk menjahit waktu pengiriman ke dalamnya, bukan? Tapi ingat - Anda tidak bisa mempercayai siapa pun, bahkan pengirimnya.

Waktu di semua komputer tentu akan berbeda dan tidak ada jaminan cara untuk menyinkronkannya. Salinan blockchain disimpan di setiap komputer di jaringan dan setiap peserta hanya mempercayainya.

Bagaimana Anda bisa memastikan bahwa satu transaksi lebih awal dari yang lain?

Jawabannya sederhana: tidak mungkin. Tidak ada cara untuk mengkonfirmasi waktu transaksi pada jaringan yang terdesentralisasi. Dan solusi untuk masalah ini adalah ide blockchain penting ketiga yang ditemukan Satoshi dan yang, anehnya, dieja tepat di namanya - blok.

Blok adalah tulang punggung blockchain

Setiap komputer yang bekerja di jaringan memilih transaksi apa pun yang disukainya dari kumpulan umum. Biasanya hanya untuk komisi tertinggi yang bisa dia peroleh darinya. Jadi dia mengumpulkan transaksi untuk dirinya sendiri sampai ukuran totalnya mencapai batas yang dinegosiasikan. Di Bitcoin, batas ukuran blok ini adalah 1 MB (setelah SegWit2x akan menjadi 2 MB), dan dalam Bitcoin Cash - 8 MB.

Seluruh blockchain pada dasarnya adalah daftar blok tersebut, di mana masing-masing mengacu pada yang sebelumnya. Ini dapat digunakan untuk melacak transaksi apa pun di seluruh sejarah, membuka blockchain bahkan ke catatan pertama.

Daftar inilah yang sekarang berbobot ratusan gigabyte dan harus diunduh sepenuhnya ke semua komputer yang ingin mengambil bagian dalam jaringan (tetapi ini tidak perlu hanya membuat transaksi dan mentransfer uang). Itu diunduh dengan cara yang sama dari semua komputer terdekat di jaringan, seolah-olah Anda mengunduh seri dari torrent, hanya episode baru yang dirilis di dalamnya setiap 10 menit.

Setelah mengetik transaksi dari pool untuk dirinya sendiri, komputer mulai menyusun dari mereka daftar yang sama yang tidak dapat dipalsukan seperti yang kita lakukan di awal posting di papan tulis di rumah.

Hanya dia yang membuatnya dalam bentuk pohon - hash catatan berpasangan, lalu hasilnya berpasangan lagi, dan seterusnya hingga hanya tersisa satu hash - akar pohon, yang ditambahkan ke blok. Mengapa tepatnya dengan pohon - saya tidak menemukan jawabannya, tetapi saya kira itu lebih cepat seperti itu. Baca lebih lanjut di wiki: Merkle tree.

Karena blockchain saat ini telah diunduh, komputer kita tahu persis apa blok terakhir di dalamnya. Dia hanya perlu menambahkan tautan ke sana di header blok, hash semuanya dan beri tahu semua komputer lain di jaringan "lihat, saya membuat blok baru, mari tambahkan ke blockchain kami".

Sisanya harus memeriksa bahwa blok dibangun sesuai dengan semua aturan dan bahwa kami belum menambahkan transaksi yang tidak perlu di sana, dan kemudian menambahkannya ke rantai kami. Sekarang semua transaksi di dalamnya dikonfirmasi, blockchain bertambah satu blok dan semuanya berjalan dengan baik, bukan?

Tapi tidak. Ribuan komputer secara bersamaan bekerja di jaringan, dan segera setelah mereka merakit blok baru, mereka hampir secara bersamaan bergegas untuk memberi tahu semua orang bahwa blok mereka dibuat terlebih dahulu. Dan dari bagian sebelumnya, kita sudah tahu bahwa dalam jaringan yang terdesentralisasi tidak mungkin untuk membuktikan siapa yang benar-benar pertama.

Seperti di sekolah, ketika semua orang menyelesaikan ujian yang sulit, jarang terjadi bahkan siswa yang sangat baik mengambil jawaban pada saat yang sama.

Tetapi jika bagi seseorang itu adalah tugas yang sulit untuk merencanakan liburan sehingga dia mendapat liburan Mei, dan tiket ke laut tidak mahal, maka untuk komputer itu adalah menambahkan nomor seperti itu (nonce) ke akhir blok sehingga sebagai hasilnya, hash SHA-256 untuk seluruh blok dimulai katakanlah 10 nol. Ini adalah masalah yang perlu dipecahkan untuk menambahkan blok ke jaringan Bitcoin. Untuk jaringan lain, tugasnya mungkin berbeda.

Jadi kami sampai pada konsep penambangan, yang sangat terobsesi oleh semua orang dalam beberapa tahun terakhir.

Pertambangan

Penambangan Bitcoin bukanlah semacam sakramen suci. Menambang bukan tentang menemukan bitcoin baru di suatu tempat di kedalaman Internet. Penambangan adalah ketika ribuan komputer di seluruh dunia berdengung di ruang bawah tanah, melewati jutaan angka per detik, mencoba menemukan hash yang dimulai dengan 10 nol. Mereka bahkan tidak perlu online untuk melakukan ini.

Kartu video dengan ratusan inti paralel memecahkan masalah ini lebih cepat daripada CPU mana pun.

Mengapa tepat 10 nol? Dan begitu saja, itu tidak masuk akal. Jadi Satoshi datang dengan. Karena ini adalah salah satu masalah yang selalu ada solusi, tetapi tentu saja tidak dapat ditemukan lebih cepat daripada penghitungan opsi yang panjang dan monoton.

Kompleksitas penambangan secara langsung tergantung pada ukuran jaringan, yaitu kekuatan totalnya. Jika Anda membuat blockchain Anda sendiri dan menjalankannya sendiri di rumah dengan dua laptop, maka tugasnya akan lebih sederhana. Misalnya, agar hash dimulai dengan hanya satu nol, atau agar jumlah angka genap sama dengan jumlah angka ganjil.

Diperlukan beberapa dekade bagi satu komputer untuk menemukan hash yang dimulai dengan 10 nol. Tetapi jika Anda menggabungkan ribuan komputer ke dalam satu jaringan dan mencari secara paralel, maka, menurut teori probabilitas, masalah ini diselesaikan rata-rata dalam 10 menit. Ini adalah waktu ketika blok baru muncul di blockchain bitcoin.

Setiap 8-12 menit, seseorang di bumi menemukan hash seperti itu dan mendapat hak istimewa untuk mengumumkan penemuan mereka kepada semua orang, sehingga menghindari masalah siapa yang pertama.

Untuk menemukan jawaban, komputer (per 2017) menerima 12,5 BTC - ini adalah jumlah hadiah yang dihasilkan oleh sistem bitcoin "out of thin air" dan berkurang setiap empat tahun.

Secara teknis, ini berarti bahwa setiap penambang selalu menambahkan transaksi lain ke bloknya - “buat 12,5 BTC dan kirimkan ke dompet saya”. Ketika Anda mendengar "jumlah bitcoin di dunia terbatas pada 21 juta, sekarang mereka telah menyewa 16 juta" - ini adalah hadiah yang dihasilkan oleh jaringan.

Lihat blok Bitcoin langsung di salah satu situs khusus. Ada juga transaksi dengan input dan output, dan sebanyak 18 nol di awal dan semua hash yang dijelaskan di atas.

Penambanglah yang menambahkan transaksi yang muncul ke blockchain. Jadi, jika seseorang memberi tahu Anda bahwa dia akan "membuat blockchain untuk ***", pertanyaan pertama yang harus dia jawab adalah siapa yang akan menambangnya dan mengapa. Paling sering, jawaban yang benar adalah “semua orang akan melakukannya, karena untuk menambang kami memberikan koin kami, yang akan tumbuh dan menguntungkan bagi penambang”. Tapi ini tidak berlaku untuk semua proyek.

Misalnya, beberapa Kementerian Kesehatan besok membuat blockchain tertutupnya sendiri untuk dokter (dan mereka menginginkannya), siapa yang akan menambangnya? Terapis akhir pekan?

Tapi apa untungnya bagi penambang nanti, ketika imbalannya hilang atau menjadi sedikit?

Menurut ide Sang Pencipta, pada saat itu orang harus percaya pada realitas bitcoin dan penambangan akan mulai terbayar dengan jumlah biaya yang termasuk dalam setiap transaksi. Di sinilah semuanya berjalan: kembali pada tahun 2012, semua komisi adalah nol, penambang hanya ditambang untuk imbalan dari blok. Hari ini, transaksi tanpa komisi dapat bertahan selama beberapa jam, karena ada persaingan dan orang-orang bersedia membayar untuk kecepatan.

Artinya, inti dari pertambangan adalah dalam memecahkan masalah yang tidak berarti. Tidak bisakah semua kekuatan ini digunakan untuk sesuatu yang lebih berguna - pencarian obat untuk kanker, misalnya?

Inti dari penambangan adalah untuk memecahkan masalah komputasi apa pun. Tugas ini harus cukup sederhana bagi peserta jaringan untuk memiliki probabilitas yang stabil untuk menemukan jawaban - jika tidak, transaksi akan dikonfirmasi selamanya. Bayangkan bahwa di kasir di toko Anda harus menunggu setengah jam setiap kali bank mengkonfirmasi transaksi Anda. Tidak ada yang akan menggunakan bank seperti itu.

Namun tugas tersebut harus sekaligus sulit, sehingga semua netizen tidak sekaligus menemukan jawabannya. Karena dalam hal ini mereka akan mengumumkan banyak blok dengan transaksi yang sama ke jaringan dan akan ada kemungkinan "pemborosan ganda", yang saya sebutkan. Atau lebih buruk lagi - membagi satu blockchain menjadi beberapa cabang, di mana tidak ada yang bisa mengetahui transaksi mana yang dikonfirmasi dan mana yang tidak.

Jika hadiah 12,5 BTC diberikan hanya sekali setiap 10 menit dan hanya satu orang yang menemukan blok, ternyata saya harus membuang kartu video selama beberapa tahun dengan harapan suatu hari saya akan menjatuhkan $ 40.000 (di nilai tukar saat ini)?

Ini adalah kasus yang tepat untuk bitcoin. Tapi itu tidak selalu begitu. Sebelumnya, jaringan lebih kecil, kompleksitasnya lebih rendah, yang berarti bahwa kemungkinan menemukan hash untuk blok baru seorang diri lebih tinggi. Tapi kemudian bitcoin tidak begitu mahal.

Sekarang tidak ada yang menambang bitcoin sendirian. Sekarang para peserta disatukan dalam kelompok khusus - kumpulan penambangan, di mana semua orang bersama-sama mencoba menemukan hash yang benar.

Jika setidaknya satu dari kelompok menemukan, maka seluruh hadiah dibagi di antara para peserta, tergantung pada kontribusi mereka pada pekerjaan bersama. Ternyata Anda menambang dan Anda mendapatkan satu sen dari total berbagi setiap minggu.

Tetapi penambangan solo sangat mungkin dilakukan di jaringan lain. Sampai saat ini, mudah untuk menambang Ethereum, di mana blok ditemukan setiap 10 detik. Hadiah blok jauh lebih rendah di sana, tetapi kemungkinan mendapatkan satu sen yang cukup lebih tinggi.

Jadi kita akan membakar ribuan kartu video dengan sia-sia dan tidak ada jalan keluar?

Ya, tapi ada ide. Penambangan yang saya jelaskan bersifat klasik dan disebut Proof-of-Work (bukti kerja). Artinya, setiap mesin membuktikan bahwa ia bekerja untuk kepentingan jaringan dengan memecahkan masalah yang tidak berarti dengan probabilitas tertentu.

Tetapi beberapa orang mulai membuat blockchain dengan jenis penambangan lain. Sekarang konsep terpopuler kedua adalah Proof-of-Stake (bukti kepemilikan). Dalam jenis penambangan ini, semakin banyak “koin” yang dimiliki peserta jaringan di akunnya, semakin besar kemungkinan dia untuk memasukkan bloknya ke dalam blockchain. Seperti pria paling berisik di desa.

Anda dapat memikirkan jenis penambangan lainnya. Seperti yang telah disarankan, semua komputer di jaringan dapat mencari obat untuk kanker, hanya Anda yang perlu mencari tahu bagaimana, dalam hal ini, untuk mencatat kontribusi mereka ke sistem. Bagaimanapun, saya dapat menyatakan bahwa saya juga berpartisipasi, tetapi matikan kartu video saya dan tidak menghitung apa-apa.

Bagaimana Anda mengukur kontribusi setiap peserta untuk menemukan obat untuk kanker? Jika Anda datang dengan itu - berani memotong CancerCoin Anda, sensasi di media dijamin untuk Anda.

Blockchain

Bayangkan sebuah situasi di mana, terlepas dari semua teori probabilitas kita, dua penambang masih berhasil menemukan jawaban yang tepat pada saat yang bersamaan. Mereka mulai mengirim dua blok yang benar-benar benar melalui jaringan.

Blok-blok ini dijamin berbeda, karena bahkan jika mereka secara ajaib memilih transaksi yang sama dari kumpulan, membuat pohon yang benar-benar identik dan menebak nomor acak yang sama (nonce), hash mereka akan tetap berbeda, karena masing-masing akan menulis nomor dompetnya di blok untuk hadiah.

Sekarang kami memiliki dua blok yang valid dan sekali lagi muncul masalah siapa yang harus dipertimbangkan terlebih dahulu. Bagaimana jaringan akan berperilaku dalam kasus ini?

Algoritme blockchain menyatakan bahwa peserta jaringan hanya menerima jawaban benar pertama yang mencapai mereka. Kemudian mereka hidup atas dasar gambaran dunia mereka sendiri.

Kedua penambang akan menerima hadiah mereka, dan semua yang lain mulai menambang, mengandalkan blok terakhir yang mereka terima secara pribadi, membuang sisanya adalah koreksi ulang. Dua versi blockchain yang benar muncul di jaringan. Begitulah paradoksnya.

Ini adalah situasi rutin di mana teori probabilitas membantu lagi. Jaringan berfungsi dalam keadaan bercabang sampai salah satu penambang menemukan blok berikutnya ke salah satu rantai ini.

Segera setelah blok tersebut ditemukan dan dimasukkan ke dalam rantai, itu menjadi lebih panjang dan salah satu perjanjian jaringan blockchain disertakan: dalam kondisi apa pun, blockchain terpanjang diterima sebagai satu-satunya yang benar untuk seluruh jaringan.

Rantai pendek, terlepas dari semua kebenarannya, ditolak oleh semua peserta dalam jaringan. Transaksi darinya dikembalikan ke kumpulan (jika belum dikonfirmasi di tempat lain), dan pemrosesannya dimulai lagi. Penambang kehilangan hadiahnya karena bloknya tidak ada lagi.

Dengan pertumbuhan jaringan, kebetulan seperti itu dari "sangat tidak mungkin" masuk ke dalam kategori "yah, kadang-kadang itu terjadi." Orang tua mengatakan bahwa ada kasus ketika rantai empat blok dijatuhkan sekaligus.

Karena itu, tiga aturan akhir rantai ketidakamanan telah ditemukan:

1. Hadiah untuk penambangan hanya dapat digunakan setelah 20 blok dikonfirmasi setelah menerima. Untuk Bitcoin, ini sekitar tiga jam.

2. Jika bitcoin dikirimkan kepada Anda, Anda dapat menggunakannya sebagai input dalam transaksi baru hanya setelah 1-5 blok.

3. Aturan 1 dan 2 hanya dijabarkan dalam pengaturan setiap klien. Tidak ada yang memantau ketaatan mereka. Tetapi hukum rantai terpanjang masih akan menghapus semua transaksi Anda jika Anda mencoba mengelabui sistem agar tidak menegakkannya.

Mencoba menipu blockchain

Sekarang setelah Anda mengetahui segalanya tentang penambangan, perangkat blockchain, dan aturan rantai terpanjang, Anda mungkin memiliki pertanyaan: apakah mungkin untuk secara spesifik menyalip blockchain dengan membuat rantai terpanjang sendiri, sehingga mengonfirmasi transaksi palsu Anda.

Katakanlah Anda memiliki komputer paling kuat di dunia. Pusat data Google dan Amazon disatukan sesuai keinginan Anda dan Anda mencoba menghitung rantai seperti itu yang akan menjadi blockchain terpanjang di jaringan.

Anda tidak dapat mengambil dan segera menghitung beberapa blok rantai, karena setiap blok berikutnya tergantung pada yang sebelumnya. Kemudian Anda memutuskan secepat mungkin untuk menghitung setiap blok di pusat data besar Anda secara paralel dengan bagaimana semua peserta lain terus meningkatkan blockchain utama. Apakah mungkin untuk menyalip mereka? Mungkin iya.

Jika kekuatan komputasi Anda lebih dari 50% dari kekuatan semua peserta jaringan, maka dengan probabilitas 50% Anda akan dapat membangun rantai yang lebih panjang lebih cepat daripada gabungan semua yang lain. Ini adalah cara yang secara teoritis mungkin untuk mengelabui blockchain dengan menghitung rantai transaksi yang lebih panjang. Kemudian semua transaksi jaringan nyata akan dianggap tidak valid, dan Anda akan mengumpulkan semua hadiah dan memulai tonggak baru dalam sejarah cryptocurrency, yang disebut "divisi blockchain". Suatu kali, karena bug dalam kode, inilah yang terjadi dengan Ethereum.

Namun pada kenyataannya, tidak ada pusat data yang dapat dibandingkan dalam hal kekuatan untuk semua komputer di dunia. Satu setengah miliar orang Cina dengan es, satu setengah miliar lagi orang India yang kelaparan dengan pertanian pertambangan dan listrik murah - ini adalah kekuatan komputasi yang sangat besar. Belum ada seorang pun di dunia yang dapat bersaing dengan mereka sendirian, bahkan Google.

Ini seperti keluar di jalan dan mencoba meyakinkan setiap orang di dunia bahwa dolar sekarang bernilai 1 rubel dan tepat waktu sebelum media mengekspos Anda. Dan jika Anda berhasil meyakinkan semua orang, Anda bisa meruntuhkan ekonomi dunia. Secara teori, bukankah itu mungkin? Namun dalam praktiknya, untuk beberapa alasan, tidak ada yang berhasil.

Blockchain juga bertumpu pada probabilitas ini. Semakin banyak peserta-penambang, semakin banyak keamanan dan kepercayaan dalam jaringan. Oleh karena itu, ketika ladang pertambangan besar lainnya tercakup di Cina, tarifnya runtuh. Semua orang takut bahwa di suatu tempat di dunia ada seorang jenius jahat yang telah mengumpulkan kumpulan penambang dengan kapasitas ~ 49%.

Kesimpulan

Blockchain bukanlah kumpulan algoritma yang didefinisikan secara ketat. Ini adalah struktur untuk membangun jaringan palsu antara peserta, di mana tidak ada yang bisa mempercayai siapa pun. Saat membaca, Anda mungkin memiliki pemikiran lebih dari sekali bahwa "Anda dapat melakukannya seperti ini dan itu akan menjadi lebih berguna". Ini berarti Anda memahami blockchain, selamat.

Beberapa pria di dunia juga memahaminya dan ingin meningkatkan atau beradaptasi untuk beberapa tugas tertentu. Cryptocurrency tidak sama, meskipun ada banyak juga. Berikut adalah daftar singkat dari beberapa ide dan proyek yang telah mendapatkan popularitas berkat pemikiran ulang ide blockchain.

Ethereum

“Eter” adalah kata paling populer kedua yang Anda dengar di berita crypto-hype, setelah Bitcoin. Bagi orang biasa, ini adalah cryptocurrency lain dan cara untuk melakukan hal paling trendi yang disebut ICO. Pengembang di situs menggambarkan Ethereum sebagai "pembangun blockchain untuk kebutuhan Anda." Ini juga mungkin, ya.

Tetapi jika Anda menggali lebih dalam, eter bukan hanya jaringan koin. Ini adalah mesin komputasi global yang sangat besar, di mana pengguna mengeksekusi kode program orang lain (kontrak pintar), menerima hadiah untuk setiap baris yang dieksekusi. Dan semua ini terdesentralisasi, tidak dapat dihancurkan dan dengan semua jaminan dari blockchain.

Kita dapat berbicara tentang Ethereum dan kontrak pintar begitu lama sehingga itu akan cukup untuk posting lain seperti itu. Oleh karena itu, kami akan bertindak dalam gaya blogger top: jika posting ini secara aktif memposting ulang dan me-retweet, dan pada hari Jumat mendapat setidaknya 1.500 tampilan unik, saya akan menulis sekuel tentang Ethereum dan kontrak pintar.

Direkomendasikan: