Dari blockchain ke DAG: menyingkirkan perantara

Dalam artikel ini, saya akan memberitahu anda tentang DAG (Directed Acyclic Graph) dan aplikasinya dalam lejar teragih, dan kami akan membandingkannya dengan blockchain.

Dari blockchain ke DAG: menyingkirkan perantara

DAG bukanlah sesuatu yang baru dalam dunia mata wang kripto. Anda mungkin pernah mendengarnya sebagai penyelesaian kepada masalah skalabiliti blockchain. Tetapi hari ini kita tidak akan bercakap tentang kebolehskalaan, tetapi tentang apa yang menjadikan mata wang kripto berbeza daripada segala-galanya: desentralisasi, kekurangan perantara dan rintangan penapisan.

Dari blockchain ke DAG: menyingkirkan perantara

Saya juga akan menunjukkan kepada anda bahawa DAG sebenarnya lebih tahan penapisan dan tiada perantara untuk mengakses lejar.

Dari blockchain ke DAG: menyingkirkan perantara

Dalam rantaian blok yang kita kenali, pengguna tidak mempunyai akses langsung kepada lejar itu sendiri. Apabila anda ingin menambah transaksi pada lejar, anda perlu "meminta" pengeluar blok (a.k.a. "pelombong") untuk melakukannya. Pelombonglah yang memutuskan transaksi mana yang hendak ditambahkan pada blok seterusnya dan yang tidak. Pelombonglah yang mempunyai akses eksklusif kepada blok dan hak untuk memutuskan transaksi mana yang akan diterima untuk dimasukkan ke dalam lejar.

Penambang ialah perantara yang berdiri di antara anda dan lejar yang diedarkan.

Dari blockchain ke DAG: menyingkirkan perantara

Dalam amalan, biasanya sebilangan kecil kumpulan pelombong secara kolektif mengawal lebih daripada separuh kuasa pengkomputeran rangkaian. Untuk Bitcoin ini adalah empat kumpulan, untuk Ethereum - dua. Jika mereka bersekongkol, mereka boleh menyekat sebarang transaksi yang mereka mahu.

Dari blockchain ke DAG: menyingkirkan perantara

Sejak beberapa tahun kebelakangan ini, banyak variasi blockchain telah dicadangkan, berbeza dalam prinsip memilih pengeluar blok. Tetapi pengeluar blok itu sendiri tidak pergi ke mana-mana, mereka masih "berdiri di penghalang": setiap transaksi mesti melalui pengeluar blok, dan jika dia tidak menerimanya, maka transaksi itu, sebenarnya, tidak wujud.

Dari blockchain ke DAG: menyingkirkan perantara

Ini adalah masalah yang tidak dapat dielakkan dengan blockchain. Dan jika kita ingin menyelesaikannya, kita perlu mengubah reka bentuk secara radikal dan menyingkirkan blok dan pengeluar blok sepenuhnya. Dan bukannya membina rantaian blok, kami akan menyambungkan urus niaga itu sendiri, termasuk cincangan beberapa yang sebelumnya dalam setiap urus niaga. Hasilnya, kita mendapat struktur yang dikenali dalam matematik sebagai graf akiklik terarah - DAG.

Kini semua orang mempunyai akses terus ke pendaftaran, tanpa perantara. Apabila anda ingin menambah transaksi pada lejar, anda hanya perlu menambahnya. Anda memilih beberapa transaksi induk, menambah data anda, menandatangani dan menghantar transaksi anda kepada rakan sebaya di rangkaian. sedia. Tiada sesiapa yang menghalang anda daripada melakukan ini, jadi transaksi anda sudah ada di lejar.

Ini adalah cara yang paling terdesentralisasi, paling kalis penapisan untuk menambah transaksi pada lejar tanpa perantara. Kerana semua orang hanya menambah transaksi mereka ke dalam pendaftaran tanpa meminta kebenaran daripada sesiapa.

Dari blockchain ke DAG: menyingkirkan perantara

DAG boleh dianggap sebagai peringkat ketiga dalam evolusi pendaftaran. Mula-mula terdapat pendaftaran berpusat, di mana satu pihak mengawal akses kepada mereka. Kemudian datang blockchain, yang sudah mempunyai beberapa pengawal yang merekodkan transaksi dalam lejar. Dan akhirnya, tiada pengawal sama sekali dalam DAG; pengguna menambah transaksi mereka secara langsung.

Dari blockchain ke DAG: menyingkirkan perantara

Sekarang kita mempunyai kebebasan ini, ia tidak sepatutnya membawa kepada huru-hara. Kami mesti mempunyai persetujuan tentang keadaan pendaftaran. Dan perjanjian ini, atau konsensus, biasanya bermaksud persetujuan tentang dua perkara:

  1. Apa yang berlaku?
  2. Dalam urutan apakah ini berlaku?

Kita boleh menjawab soalan pertama dengan mudah: apabila transaksi yang dibuat dengan betul telah ditambahkan pada lejar, ia telah berlaku. Dan tempoh. Maklumat tentang ini mungkin sampai kepada semua peserta pada masa yang berbeza, tetapi akhirnya semua nod akan menerima transaksi ini dan mengetahui bahawa ia berlaku.

Jika ia adalah blockchain, pelombong akan memutuskan apa yang berlaku. Apa sahaja yang diputuskan oleh pelombong untuk dimasukkan ke dalam blok adalah apa yang berlaku. Semua yang dia tidak masukkan dalam blok tidak berlaku.

Dalam rantaian blok, pelombong juga menyelesaikan masalah kedua konsensus: pesanan. Mereka dibenarkan untuk memesan urus niaga dalam blok mengikut kehendak mereka.

Bagaimana untuk menentukan susunan transaksi dalam DAG?

Dari blockchain ke DAG: menyingkirkan perantara

Hanya kerana graf kami diarahkan, kami sudah mempunyai beberapa pesanan. Setiap urus niaga merujuk kepada satu atau lebih transaksi induk sebelumnya. Ibu bapa pula merujuk kepada ibu bapa mereka, dan sebagainya. Ibu bapa jelas muncul sebelum transaksi anak. Jika mana-mana urus niaga boleh dicapai melalui peralihan pautan ibu bapa-anak, kami mengetahui dengan tepat susunan antara urus niaga dalam rantaian urus niaga tersebut.

Dari blockchain ke DAG: menyingkirkan perantara

Tetapi susunan antara urus niaga tidak boleh selalu ditentukan daripada bentuk graf sahaja. Contohnya, apabila dua urus niaga terletak pada cabang selari graf.

Dari blockchain ke DAG: menyingkirkan perantara

Untuk menyelesaikan kekaburan dalam kes sedemikian, kami bergantung pada apa yang dipanggil pembekal pesanan. Kami juga memanggil mereka "saksi." Ini adalah pengguna biasa yang tugasnya adalah untuk sentiasa menghantar transaksi ke rangkaian dengan cara yang teratur, i.e. supaya setiap urus niaga mereka sebelum ini boleh dicapai dengan peralihan di sepanjang pautan ibu bapa-anak. Pembekal pesanan ialah pengguna yang dipercayai dan seluruh rangkaian bergantung kepada mereka untuk tidak melanggar peraturan ini. Untuk secara rasional mempercayai mereka, kami menghendaki setiap penyedia pesanan menjadi orang atau organisasi yang dikenali (bukan tanpa nama) dan mempunyai kerugian jika ia melanggar peraturan, seperti reputasi atau perniagaan berdasarkan kepercayaan.

Dari blockchain ke DAG: menyingkirkan perantara

Pembekal pesanan dipilih oleh pengguna, dan setiap pengguna menyertakan senarai penyedia yang dipercayai dalam setiap transaksi yang dihantar ke rangkaian. Senarai ini terdiri daripada 12 pembekal. Ini adalah nombor yang cukup kecil untuk seseorang mengesahkan identiti dan reputasi setiap daripada mereka, dan cukup untuk memastikan rangkaian terus beroperasi sekiranya berlaku masalah yang tidak dapat dielakkan dengan minoriti penyedia pesanan.

Senarai pembekal ini berbeza-beza dari pengguna ke pengguna, tetapi senarai transaksi jiran mungkin berbeza mengikut sehingga satu pembekal.

Dari blockchain ke DAG: menyingkirkan perantara

Memandangkan kami mempunyai pembekal pesanan, kami boleh mengasingkan urus niaga mereka ke dalam DAG dan memesan semua transaksi lain di sekitar pesanan yang dibuat oleh mereka. Ia adalah mungkin untuk mencipta algoritma sedemikian (lihat. Kertas Putih Obyte untuk butiran teknikal).

Tetapi susunan keseluruhan rangkaian tidak dapat ditentukan serta-merta; kami memerlukan masa untuk penyedia pesanan menghantar jumlah transaksi mereka yang mencukupi untuk mengesahkan pesanan terakhir transaksi lalu.

Dan, memandangkan pesanan hanya ditentukan oleh kedudukan urus niaga pembekal dalam DAG, semua nod pada rangkaian lambat laun akan menerima semua urus niaga dan membuat kesimpulan yang sama mengenai susunan urus niaga.

Dari blockchain ke DAG: menyingkirkan perantara

Jadi, kami mempunyai persetujuan tentang perkara yang kami anggap telah berlaku: sebarang transaksi yang berakhir dalam DAG berlaku. Kami juga mempunyai persetujuan tentang susunan acara: ini sama ada jelas daripada perhubungan transaksi, atau disimpulkan daripada susunan transaksi yang dihantar oleh penyedia pesanan. Jadi kita ada kata sepakat.

Dari blockchain ke DAG: menyingkirkan perantara

Kami mempunyai versi konsensus ini dalam Obyte. Walaupun akses kepada lejar Obyte tidak berpusat sepenuhnya, konsensus mengenai susunan urus niaga masih terpusat kerana 10 daripada 12 pembekal dikawal oleh pencipta (Anton Churyumov), dan hanya dua daripada mereka bebas. Kami sedang mencari calon yang bersedia menjadi salah satu penyedia pesanan bebas untuk membantu kami mengasingkan pesanan lejar.

Baru-baru ini, calon bebas ketiga telah muncul bersedia untuk memasang dan mengekalkan nod pembekal pesanan - Universiti Nicosia.

Dari blockchain ke DAG: menyingkirkan perantara

Sekarang bagaimana kita mengawal perbelanjaan berganda?

Mengikut peraturan, jika dua urus niaga didapati membelanjakan syiling yang sama, urus niaga yang didahulukan dalam susunan terakhir semua urus niaga menang. Yang kedua tidak sah oleh algoritma konsensus.

Dari blockchain ke DAG: menyingkirkan perantara
Jika ada kemungkinan untuk mewujudkan susunan antara dua urus niaga yang membelanjakan syiling yang sama (melalui sambungan ibu bapa-anak), maka semua nod serta-merta menolak percubaan sedemikian untuk menggandakan perbelanjaan.

Dari blockchain ke DAG: menyingkirkan perantara

Sekiranya pesanan itu tidak kelihatan daripada perhubungan induk antara dua urus niaga sedemikian, kedua-duanya diterima ke dalam lejar, dan kami perlu menunggu persetujuan dan penubuhan pesanan antara mereka menggunakan pembekal pesanan. Kemudian transaksi yang lebih awal akan menang, dan yang kedua akan menjadi tidak sah.

Dari blockchain ke DAG: menyingkirkan perantara

Walaupun transaksi kedua menjadi tidak sah, ia masih kekal dalam pendaftaran kerana ia sudah mempunyai urus niaga berikutnya yang merujuknya, yang tidak melanggar apa-apa dan tidak mengetahui bahawa transaksi ini akan menjadi tidak sah pada masa hadapan. Jika tidak, kami perlu mengalih keluar induk urus niaga seterusnya yang baik, yang akan melanggar prinsip utama rangkaian - sebarang transaksi yang betul diterima ke dalam lejar.

Dari blockchain ke DAG: menyingkirkan perantara

Ini adalah peraturan yang sangat penting yang membolehkan keseluruhan sistem menjadi tahan terhadap percubaan penapisan. 

Mari kita bayangkan bahawa semua penyedia pesanan berpakat dalam percubaan untuk "menapis" satu transaksi tertentu. Mereka boleh mengabaikannya dan tidak sekali-kali memilihnya sebagai "ibu bapa" untuk urus niaga mereka, tetapi itu tidak mencukupi, urus niaga itu masih boleh dimasukkan secara tidak langsung sebagai induk kepada beberapa transaksi lain yang dikeluarkan oleh mana-mana pengguna pada rangkaian yang tidak bersubahat. Dari masa ke masa, transaksi sedemikian akan menerima lebih ramai anak, cucu dan cicit daripada pengguna biasa, berkembang seperti bola salji, dan semua penyedia pesanan yang dipersetujui perlu mengabaikan transaksi ini juga. Akhirnya, mereka perlu menapis keseluruhan rangkaian, yang sama seperti mensabotaj.

Dari blockchain ke DAG: menyingkirkan perantara

Dengan cara ini, DAG kekal tahan penapisan walaupun terdapat pakatan sulit dalam kalangan penyedia pesanan, sekali gus mengatasi rantaian penghalang penapisan yang mana kami tidak boleh melakukan apa-apa jika pelombong memutuskan untuk tidak memasukkan sebarang transaksi. Dan ini mengikuti dari harta utama DAG: penyertaan dalam pendaftaran adalah bebas sepenuhnya dan tanpa perantara, dan transaksi tidak dapat dipulihkan.

Sumber: www.habr.com

Tambah komen