Apa itu permainan validator atau “cara meluncurkan blockchain bukti kepemilikan”

Jadi, tim Anda telah menyelesaikan versi alpha dari blockchain Anda, dan inilah waktunya untuk meluncurkan testnet dan kemudian mainnet. Anda memiliki blockchain nyata, dengan peserta independen, model ekonomi yang baik, keamanan, Anda telah merancang tata kelola dan sekarang saatnya untuk mencoba semua ini dalam tindakan. Dalam dunia kripto-anarkis yang ideal, Anda menempatkan blok genesis di jaringan, kode akhir dari node dan validator itu sendiri meluncurkan semuanya, meningkatkan semua layanan tambahan, dan semuanya terjadi dengan sendirinya. Namun hal ini terjadi di dunia fiksi, namun di dunia nyata tim harus menyiapkan software tambahan yang cukup banyak dan berbagai manipulasi untuk membantu validator meluncurkan jaringan yang stabil. Inilah inti artikel ini.

Meluncurkan jaringan berdasarkan konsensus jenis “bukti kepemilikan”, di mana validator ditentukan oleh suara pemegang token sistem, adalah peristiwa yang agak spesifik, karena bahkan meluncurkan sistem tradisional yang dikelola secara terpusat dengan puluhan dan ratusan server bukanlah hal yang mudah. tugas itu sendiri, dan blockchain perlu dimulai dengan upaya peserta yang setia namun independen. Dan, jika di sebuah perusahaan, ketika startup, administrator memiliki akses penuh ke semua mesin, log, pemantauan umum, maka validator tidak akan mengizinkan siapa pun mengakses server mereka dan, kemungkinan besar, akan lebih memilih untuk membangun infrastruktur mereka secara mandiri, karena mengontrol akses. ke aset utama validator - mempertaruhkan pemilih. Perilaku inilah yang memungkinkan untuk membangun jaringan aman terdistribusi - independensi penyedia cloud yang digunakan, server virtual dan "baremetal", sistem operasi yang berbeda, semua ini memungkinkan serangan terhadap jaringan semacam itu menjadi sangat tidak efektif - terlalu banyak perbedaan perangkat lunak digunakan. Misalnya, Ethereum menggunakan dua implementasi node utama, di Go dan Rust, dan serangan yang efektif untuk satu implementasi tidak akan berhasil untuk implementasi lainnya.

Oleh karena itu, semua proses peluncuran dan pengoperasian blockchain harus diatur sedemikian rupa sehingga setiap validator, atau bahkan sekelompok kecil validator, dapat membuang komputer mereka ke luar jendela kapan saja dan pergi, sementara tidak ada yang rusak dan validator yang tersisa harus terus mendukung jaringan operasi secara efektif dan menghubungkan validator baru. Saat meluncurkan jaringan, ketika satu validator berada di Eropa, yang kedua di Amerika Selatan, dan yang ketiga di Asia, cukup sulit untuk mencapai kerja terkoordinasi dari beberapa lusin kelompok independen dan menarik minat mereka sebagai hasilnya.

Validator

Mari kita bayangkan peluncuran blockchain modern hipotetis (sebagian besar yang dijelaskan cocok untuk blockchain berdasarkan keluarga blockchain modern mana pun: Ethereum, EOS, Polkadot, Cosmos, dan lainnya, yang memberikan konsensus bukti kepemilikan. Karakter utama dari blockchain tersebut adalah tim validator, yang terlibat dalam memasang server independen mereka sendiri yang memvalidasi dan menghasilkan blok baru, dan menerima hadiah yang diberikan oleh jaringan bagi mereka yang berpartisipasi dalam konsensus. Untuk meluncurkan jaringan baru, diperlukan beberapa lusin validator (sekarang banyak yang bisa kurang lebih efektif mencapai konsensus dalam hitungan detik), sehingga proyek mengumumkan pendaftaran, di mana validator membagikan informasi publik tentang diri mereka kepada pengguna, meyakinkan mereka bahwa mereka akan memberikan layanan berkualitas tinggi ke jaringan yang diluncurkan.

Validasi adalah bisnis yang memungkinkan Anda menilai potensi pendapatan validator dengan sangat akurat, dengan cepat mentransfer daya antar proyek, dan jika jaringan yang dipilihnya berhasil, validator dapat, sebagai peserta penuh dalam DAO dan orang yang bertanggung jawab, mengembangkan proyek, atau sekadar menyediakan layanan teknis terbaik untuk mendapatkan uang yang benar-benar transparan dan jujur. Saat menghitung imbalan untuk validator, proyek mencoba memperhitungkan biaya validator dan membuat imbalan untuk blok sedemikian rupa sehingga bisnis ini menguntungkan, tetapi pada saat yang sama tidak mengizinkan validator menjatuhkan perekonomian dengan membanjiri mereka dengan uang dan merampas pengguna jaringan lain darinya.

Bisnis validator memerlukan jaminan toleransi kesalahan yang tinggi pada layanan, yang berarti pelatihan tingkat tinggi untuk pengembang dan pengembang serta sumber daya komputasi yang mahal. Bahkan tanpa perlu menambang hash di jaringan proof-of-work, node blockchain adalah layanan besar yang menghabiskan banyak memori, menghabiskan banyak perhitungan, memvalidasi, menulis ke disk, dan mengirimkan data dalam jumlah besar ke jaringan. . Untuk menyimpan log transaksi dan rantai blok untuk blockchain dengan beberapa ribu transaksi kecil dalam satu blok, sekarang diperlukan penyimpanan sebesar 50 Gb atau lebih, dan untuk blok tersebut harus berupa SSD. Basis data negara bagian blockchain dengan dukungan untuk kontrak pintar sudah dapat melebihi 64Gb RAM. Server dengan karakteristik yang diperlukan cukup mahal; node Ethereum atau EOS dapat berharga mulai dari 100 hingga 200 $/bulan. Ditambah lagi dengan peningkatan upah untuk kerja sepanjang waktu para pengembang dan pengembang, yang selama periode peluncuran memecahkan masalah bahkan di malam hari, karena beberapa validator dapat dengan mudah berlokasi di belahan bumi lain. Namun, pada saat yang tepat, memiliki node validator dapat mendatangkan penghasilan yang besar (dalam kasus EOS, hingga $10 per hari).

Validasi hanyalah salah satu potensi peran TI baru bagi wirausahawan dan perusahaan; seiring dengan semakin banyaknya pemrogram yang menciptakan algoritme canggih yang menghargai kejujuran dan menghukum penipuan dan pencurian, muncullah layanan yang menjalankan fungsi mempublikasikan data penting (oracle), melakukan pengawasan. (pemotongan deposit dan menghukum penipu dengan menerbitkan bukti penipuan), layanan penyelesaian sengketa, asuransi dan opsi, bahkan pengumpulan sampah merupakan pasar yang berpotensi besar dalam sistem kontrak pintar yang memerlukan pembayaran untuk penyimpanan data.

Masalah peluncuran blockchain

Keterbukaan blockchain, yang memungkinkan komputer dari negara mana pun untuk berpartisipasi secara bebas dalam jaringan dan kemudahan menghubungkan skrip kiddie apa pun ke jaringan sesuai dengan instruksi di GitHub, tidak selalu merupakan keuntungan. Mengejar token baru sering kali memaksa validator untuk “menambang koin baru di awal,” dengan harapan nilai tukar akan naik dan peluang untuk segera membuang pendapatan mereka. Selain itu, ini berarti validator Anda bisa siapa saja, bahkan orang yang tidak disebutkan namanya, Anda dapat memilihnya dengan cara yang sama seperti validator lainnya (namun, akan sulit bagi orang yang tidak disebutkan namanya untuk mengumpulkan suara pemangku kepentingan untuk dirinya sendiri, jadi kami' Saya akan menyerahkan kisah menakutkan tentang mata uang kripto anonim kepada para politisi). Namun demikian

Tim proyek mempunyai tugas - untuk entah bagaimana masuk ke dalam jaringannya orang-orang yang di masa depan mampu memastikan operasi node yang stabil, memahami keamanan, tahu cara menyelesaikan masalah dengan cepat, bekerja sama dengan validator lain dan bertindak bersama - kualitasnya Semuanya sepenuhnya bergantung pada kualitas-kualitas ini, sebuah tanda di mana peserta jaringan akan menginvestasikan waktu dan sumber daya mereka. Pendiri yang memadai, ketika menilai risiko, memahami dengan baik bahwa ketika meluncurkan perangkat lunak sebesar ini, Anda pasti akan menghadapi kesalahan dalam kode dan konfigurasi node, dan bahwa stabilitas jaringan bergantung pada seberapa baik pengembang dan validator akan menyelesaikannya bersama-sama. masalah seperti itu.

Tim siap memberikan suara di mainnet untuk validator mana pun, hanya untuk mengetahui mana yang mana, mana yang bagus? Portofolio terbesar? Hampir tidak ada orang yang memilikinya sekarang. Berdasarkan profil Linkedin tim? Pengembang berpengalaman atau pakar keamanan tidak akan memberi Anda profil Linkedin apa pun. Menurut pernyataan dalam obrolan, postingan, dan membantu orang lain selama tahap persiapan? Bagus, tapi subjektif dan tidak akurat.

Dalam kondisi seperti itu, satu hal yang tersisa - sesuatu yang menyelesaikan masalah semua orang dengan baik - sebuah permainan di mana dimungkinkan untuk memilih validator terbaik, tetapi yang utama adalah menguji kekuatan blockchain dan melakukan uji tempur skala penuh dari blockchain tersebut. blockchain dalam kondisi penggunaan aktif, perubahan konsensus, tampilan dan koreksi kesalahan. Prosedur ini pertama kali disajikan sebagai permainan oleh orang-orang dari proyek Cosmos, dan ide ini tidak diragukan lagi merupakan cara terbaik untuk mempersiapkan jaringan untuk peluncuran mainnet yang andal dan toleran terhadap kesalahan.

Permainan Validator

Saya akan menjelaskan permainan validator saat kami merancangnya untuk blockchain DAO.Casino (DAOBet) berdasarkan fork EOS, yang disebut Haya dan memiliki mekanisme tata kelola serupa - validator dipilih melalui pemungutan suara dari akun mana pun, di bagian mana saldo yang digunakan untuk memilih validator dibekukan. Setiap akun yang memiliki token BET utama di saldonya dapat memilih validator yang dipilih dengan bagian mana pun dari saldonya. Suara dirangkum dan validator teratas dibuat berdasarkan hasilnya. Dalam blockchain yang berbeda, proses ini diatur secara berbeda, dan biasanya di bagian inilah blockchain baru berbeda dari yang induk, dan saya harus mengatakan bahwa dalam kasus kami, EOS sepenuhnya membenarkan “OS” dalam namanya, kami benar-benar menggunakan EOS sebagai sistem operasi dasar untuk penerapan versi blockchain yang dimodifikasi untuk tugas DAOBet.

Saya akan menjelaskan masalah individu dan bagaimana menyelesaikannya dalam permainan. Bayangkan sebuah jaringan di mana server Anda dapat diserang secara terbuka, di mana untuk mempertahankan posisi validator, Anda perlu terus berinteraksi dengan jaringan, mempromosikan validator Anda dan memastikan bahwa validator tersebut menghasilkan blok dan dikirimkan ke validator lain di waktu, jika tidak, validator akan dikeluarkan dari daftar.

Bagaimana cara memilih pemenang teratas?

Persyaratan teknis utama untuk game ini adalah hasilnya dapat diverifikasi secara publik. Artinya hasil permainan: Pemenang TOP, harus dibentuk secara ketat berdasarkan data yang dapat diverifikasi oleh setiap peserta. Dalam sistem terpusat, kami dapat mengukur “uptime” setiap validator dan memberi penghargaan kepada mereka yang paling banyak online atau melewati lalu lintas jaringan maksimum. Anda dapat mengumpulkan data tentang beban prosesor dan memori dan memberi penghargaan kepada mereka yang telah bekerja dengan baik. Namun kumpulan metrik seperti itu berarti adanya pusat pengumpulan, dan semua node bersifat independen dan dapat berperilaku sesuai keinginan serta mengirim data apa pun.

Oleh karena itu, solusi alaminya adalah pemenang harus ditentukan berdasarkan data dari blockchain, karena dapat digunakan untuk melihat validator mana yang menghasilkan blok mana dan transaksi apa yang termasuk di dalamnya. Kami menyebut angka ini Poin Validator (VP), dan memperolehnya adalah tujuan utama validator dalam game. Dalam kasus kami, metrik “kegunaan” validator yang paling sederhana, mudah diverifikasi secara publik, dan efektif adalah VP = jumlah blok yang dihasilkan oleh validator dalam jangka waktu tertentu.

Pilihan sederhana ini disebabkan oleh fakta bahwa tata kelola di EOS sudah menimbulkan banyak masalah yang muncul, karena EOS adalah pewaris tiga generasi blockchain yang benar-benar berfungsi dengan pengalaman luas dalam manajemen jaringan yang kompleks, dan hampir semua masalah validator dengan jaringan, prosesor, disk hanya menyebabkan satu masalah - ia menandatangani lebih sedikit blok, menerima lebih sedikit pembayaran untuk pekerjaan tersebut, yang sekali lagi membawa kita ke jumlah blok yang ditandatangani - untuk EOS ini adalah pilihan yang sangat baik dan sederhana.

Untuk blockchain lain, cara penghitungan Poin Validator mungkin berbeda, misalnya, untuk konsensus berbasis pBFT (Tendermint/Cosmos, konsensus Aura dari Parity Substrate), di mana setiap blok harus ditandatangani oleh beberapa validator, masuk akal untuk menghitung validator individual mungkin masuk akal untuk mempertimbangkan putaran konsensus yang tidak lengkap, yang menyia-nyiakan sumber daya validator lain, secara umum hal ini sangat bergantung pada jenis konsensus.

Bagaimana mensimulasikan kondisi operasi nyata

Tugas para pendiri adalah menguji validator dalam kondisi yang mendekati kenyataan, tanpa kendali terpusat. Masalah ini dapat diselesaikan dengan menggunakan kontrak faucet, yang mendistribusikan token utama dalam jumlah yang sama kepada validator dan semua orang. Untuk menerima token di saldo Anda, Anda perlu membuat transaksi dan memastikan bahwa jaringan memasukkannya ke dalam blok. Jadi, untuk menang, validator harus terus-menerus mengisi saldonya dengan token baru dan memilih dirinya sendiri, sehingga mempromosikan dirinya ke puncak. Aktivitas ini menciptakan beban konstan pada jaringan, dan parameternya dapat dipilih sehingga aliran permintaan cukup parah untuk pengujian jaringan penuh. Oleh karena itu, rencanakan kontrak faucet terlebih dahulu sebagai alat penting untuk meluncurkan jaringan dan mulailah memilih parameternya terlebih dahulu.

Meminta token dari faucet dan memvalidasi suara masih belum sepenuhnya meniru pengoperasian hulu ledak, terutama dalam mode yang sangat dimuat. Oleh karena itu, tim blockchain masih harus menulis tolok ukur tambahan dengan satu atau lain cara untuk memuat jaringan. Peran khusus dalam hal ini dimainkan oleh kontrak pintar yang dibuat khusus yang memungkinkan pengujian subsistem terpisah. Untuk menguji penyimpanan, kontrak menyimpan data acak di blockchain, dan untuk menguji sumber daya jaringan, kontrak pengujian memerlukan sejumlah besar data masukan, sehingga meningkatkan volume transaksi - dengan meluncurkan aliran transaksi tersebut pada titik waktu yang berubah-ubah, tim secara bersamaan menguji stabilitas kode dan kekuatan validator.

Masalah terpisah adalah memperbarui kode node dan melakukan hard fork. Jika terjadi bug, kerentanan, atau kolusi validator jahat, validator harus memiliki rencana tindakan yang telah disusun dalam permainan validator. Di sini Anda dapat membuat skema untuk memperoleh VP untuk penerapan hard fork dengan cepat, misalnya, dengan mendenda semua validator yang belum meluncurkan versi baru kode node, tetapi hal ini sulit diterapkan dan mempersulit penghitungan. Anda dapat mensimulasikan situasi penggunaan darurat hard fork dengan “mematahkan” blockchain pada blok tertentu secara artifisial. Produksi blok terhenti, dan pada akhirnya pemenangnya adalah mereka yang masuk terlebih dahulu dan mulai menandatangani blok, jadi VP berdasarkan jumlah blok yang ditandatangani sangat cocok di sini.

Bagaimana memberi tahu peserta tentang status jaringan dan memperbaiki kesalahan

Meskipun ada ketidakpercayaan di antara validator, penerimaan informasi terkini tentang keadaan jaringan secara tepat waktu bermanfaat bagi semua orang untuk membuat keputusan lebih cepat, sehingga tim proyek meningkatkan layanan untuk mengumpulkan dan memvisualisasikan banyak metrik dari server validator, yang memungkinkan Anda melihat situasi secara bersamaan untuk seluruh jaringan, memungkinkan Anda menentukan dengan cepat apa yang terjadi. Selain itu, hal ini bermanfaat bagi validator dan proyek karena tim proyek dengan cepat memperbaiki kesalahan yang ditemukan, jadi selain mengumpulkan metrik, masuk akal untuk segera mulai mengumpulkan log dan data kesalahan dari mesin validator pada mesin yang dapat diakses oleh blockchain. pengembang. Di sini, tidak ada gunanya bagi siapa pun untuk memutarbalikkan informasi, sehingga layanan ini dikembangkan oleh tim proyek dan dapat dipercaya. Masuk akal untuk mengumpulkan metrik sistem dari validator, dan, tentu saja, metrik terpenting dari blockchain itu sendiri - untuk DAOBet - adalah waktu penyelesaian dan jeda dari blok terakhir yang diselesaikan. Berkat ini, tim melihat peningkatan konsumsi memori pada node saat menjalankan benchmark, masalah dengan validator individual

Poin penting untuk melakukan permainan validator

Ternyata, jika Anda ingin secara resmi mengizinkan validator untuk menyerang mesin satu sama lain (secara tidak resmi mereka tetap dapat melakukan hal ini), Anda perlu merumuskannya secara terpisah secara hukum sebagai pengujian keamanan, karena berdasarkan undang-undang beberapa negara, serangan DDoS atau jaringan dapat dilakukan. dihukum. Masalah penting lainnya adalah bagaimana memberi penghargaan kepada validator. Hadiah alaminya adalah token proyek, yang akan ditransfer ke mainnet, tetapi distribusi token secara besar-besaran kepada siapa saja yang mampu meluncurkan sebuah node juga bukan pilihan terbaik. Kemungkinan besar Anda harus menyeimbangkan antara dua opsi ekstrem:

Bagikan seluruh kumpulan hadiah sesuai dengan VP yang diperoleh
ini sangat demokratis dan memungkinkan setiap orang yang telah menginvestasikan waktu dan sumber daya ke dalam permainan validator untuk mendapatkan uang
tetapi menarik orang secara acak ke dalam game tanpa infrastruktur yang siap

Distribusikan kumpulan hadiah N teratas ke validator berdasarkan hasil permainan
Pemenangnya kemungkinan besar adalah validator yang bertahan paling konsisten selama permainan dan sangat bertekad untuk menang
beberapa validator tidak mau berpartisipasi, menilai peluang mereka untuk menang rendah, terutama jika pesertanya termasuk validator terhormat

Opsi mana yang harus dipilih terserah Anda

Ada satu hal lagi - sama sekali bukan fakta bahwa lusinan validator akan bergegas untuk berpartisipasi dalam permainan atas panggilan Anda, dan dari mereka yang memutuskan untuk mencoba, tidak semuanya akan menginstal dan meluncurkan node - biasanya, pada tahap ini, proyek memiliki dokumentasi yang agak sedikit, ditemukan kesalahan, dan pengembang yang bekerja di bawah tekanan waktu tidak menjawab pertanyaan dengan sangat cepat. Oleh karena itu, sebelum meluncurkan game, perlu juga dilakukan tindakan jika jumlah validator yang dibutuhkan tidak tercapai. Dalam hal ini, di awal permainan, validator yang hilang diluncurkan oleh tim proyek, berpartisipasi dalam konsensus, namun tidak bisa menjadi pemenang.

Kesimpulan

Sebagai kesimpulan, saya mencoba menyusun daftar di atas tentang apa yang perlu dipikirkan, dibuat, dan diluncurkan untuk menjalankan permainan validator secara efektif.

Apa yang perlu Anda lakukan untuk menjalankan game validator sebenarnya:
kembangkan blockchain Anda sendiri :)

  • membuat dan meningkatkan antarmuka web dan menyediakan CLI untuk memilih validator
  • pastikan metrik dari node validator yang berjalan dapat dikirim ke layanan terpusat (misalnya Prometheus)
  • meningkatkan server pengumpulan metrik (Prometheus + Grafana) untuk game validator
  • cari tahu bagaimana Poin Validator (VP) akan dihitung
  • mengembangkan skrip publik yang menghitung VP validator berdasarkan data dari blockchain
  • mengembangkan antarmuka web untuk menampilkan validator teratas, dan status permainan validator (berapa banyak waktu yang tersisa hingga akhir, siapa yang memiliki berapa banyak VP, dll.)
  • mengembangkan dan mengotomatiskan peluncuran sejumlah node Anda sendiri, merancang proses menghubungkan validator ke game (kapan dan bagaimana memutuskan koneksi node Anda, mengirimkan dan menghapus suara untuk node tersebut)
  • hitung berapa banyak token yang perlu dikeluarkan dan kembangkan kontrak faucet
  • membuat skrip benchmark (transfer token, penggunaan penyimpanan besar-besaran, penggunaan jaringan besar-besaran)
  • kumpulkan semua peserta dalam satu obrolan untuk komunikasi cepat
  • meluncurkan blockchain sedikit lebih awal dari awal permainan
  • tunggu blok awal, mulai permainan
  • menguji jaringan dengan beberapa jenis transaksi
  • gulung garpu yang keras
  • mengubah daftar validator
  • ulangi langkah 13,14,15, XNUMX, XNUMX dalam urutan berbeda, jaga stabilitas jaringan
  • tunggu blok terakhir, akhiri permainan, hitung VP

Harus dikatakan bahwa permainan validator adalah cerita baru, dan hanya dilakukan beberapa kali, jadi Anda tidak boleh menganggap teks ini sebagai panduan yang sudah jadi. Tidak ada analogi dalam bisnis TI modern - bayangkan bank, sebelum meluncurkan sistem pembayaran, bersaing satu sama lain untuk melihat siapa yang terbaik dalam melakukan transaksi nasabah. Pendekatan tradisional kemungkinan besar tidak akan membantu Anda menciptakan jaringan besar yang terdesentralisasi, jadi kuasai model bisnis baru, jalankan permainan Anda, identifikasi yang layak, berikan penghargaan kepada mereka, dan pertahankan sistem terdistribusi Anda berjalan dengan cepat dan stabil.

Sumber: www.habr.com

Tambah komentar