Dari blockchain ke DAG: singkirkan perantara

Pada artikel ini, saya akan memberi tahu Anda tentang DAG (Directed Acyclic Graph) dan penerapannya dalam buku besar terdistribusi, dan kami akan membandingkannya dengan blockchain.

Dari blockchain ke DAG: singkirkan perantara

DAG bukanlah hal baru dalam dunia cryptocurrency. Anda mungkin pernah mendengarnya sebagai solusi untuk masalah skalabilitas blockchain. Tapi hari ini kita tidak akan berbicara tentang skalabilitas, tapi tentang apa yang membuat cryptocurrency berbeda dari yang lainnya: desentralisasi, kurangnya perantara dan resistensi sensor.

Dari blockchain ke DAG: singkirkan perantara

Saya juga akan menunjukkan kepada Anda bahwa DAG sebenarnya lebih tahan sensor dan tidak ada perantara untuk mengakses buku besar.

Dari blockchain ke DAG: singkirkan perantara

Dalam blockchain yang kita kenal, pengguna tidak memiliki akses langsung ke buku besar itu sendiri. Saat Anda ingin menambahkan transaksi ke buku besar, Anda harus β€œmeminta” produsen blok (alias β€œpenambang”) untuk melakukannya. Penambanglah yang memutuskan transaksi mana yang akan ditambahkan ke blok berikutnya dan mana yang tidak. Penambanglah yang memiliki akses eksklusif ke blok dan hak untuk memutuskan transaksi siapa yang akan diterima untuk dimasukkan ke dalam buku besar.

Penambang adalah perantara yang berdiri antara Anda dan buku besar yang didistribusikan.

Dari blockchain ke DAG: singkirkan perantara

Dalam praktiknya, biasanya sejumlah kecil kumpulan penambang secara kolektif mengendalikan lebih dari setengah daya komputasi jaringan. Untuk Bitcoin, ini adalah empat kumpulan, untuk Ethereum - dua. Jika mereka berkolusi, mereka dapat memblokir transaksi apa pun yang mereka inginkan.

Dari blockchain ke DAG: singkirkan perantara

Selama beberapa tahun terakhir, banyak variasi blockchain telah diusulkan, berbeda dalam prinsip pemilihan produsen blok. Namun produsen blok sendiri tidak ke mana-mana, mereka masih β€œberdiri di depan penghalang”: setiap transaksi harus melalui produsen blok, dan jika dia tidak menerimanya, maka transaksi tersebut sebenarnya tidak ada.

Dari blockchain ke DAG: singkirkan perantara

Ini adalah masalah yang tidak bisa dihindari dalam blockchain. Dan jika kita ingin menyelesaikannya, kita harus mengubah desain secara radikal dan sepenuhnya menghilangkan blok dan produsen blok. Dan alih-alih membangun rantai blok, kami akan menghubungkan transaksi itu sendiri, termasuk hash dari beberapa transaksi sebelumnya di setiap transaksi. Hasilnya, kita memperoleh struktur yang dikenal dalam matematika sebagai grafik asiklik berarah - DAG.

Sekarang setiap orang memiliki akses langsung ke registri, tanpa perantara. Ketika Anda ingin menambahkan transaksi ke dalam buku besar, Anda cukup menambahkannya. Anda memilih beberapa transaksi induk, menambahkan data Anda, menandatangani dan mengirim transaksi Anda ke rekan-rekan di jaringan. Siap. Tidak ada yang menghentikan Anda melakukan hal ini, sehingga transaksi Anda sudah ada di buku besar.

Ini adalah cara paling terdesentralisasi dan paling tahan sensor untuk menambahkan transaksi ke buku besar tanpa perantara. Karena setiap orang hanya menambahkan transaksinya ke dalam registry tanpa meminta izin kepada siapapun.

Dari blockchain ke DAG: singkirkan perantara

DAG dapat dianggap sebagai tahap ketiga dalam evolusi pendaftar. Pertama, terdapat pencatatan yang terpusat, dimana satu pihak mengontrol akses terhadap pencatatan tersebut. Lalu muncullah blockchain, yang sudah memiliki beberapa pengontrol yang mencatat transaksi di buku besar. Dan terakhir, tidak ada pengontrol sama sekali di DAG; pengguna menambahkan transaksinya secara langsung.

Dari blockchain ke DAG: singkirkan perantara

Sekarang kita mempunyai kebebasan, hal ini tidak boleh menimbulkan kekacauan. Kita harus mempunyai kesepakatan mengenai status registri. Dan kesepakatan atau konsensus ini biasanya berarti kesepakatan dalam dua hal:

  1. Apa yang terjadi?
  2. Dalam urutan apa hal ini terjadi?

Kita dapat dengan mudah menjawab pertanyaan pertama: setelah transaksi yang dibuat dengan benar ditambahkan ke buku besar, transaksi tersebut telah terjadi. Dan titik. Informasi tentang hal ini mungkin menjangkau semua peserta pada waktu yang berbeda, namun pada akhirnya semua node akan menerima transaksi ini dan mengetahui bahwa hal itu terjadi.

Jika itu adalah blockchain, penambang akan memutuskan apa yang akan terjadi. Apa pun yang diputuskan penambang untuk dimasukkan ke dalam blok, itulah yang terjadi. Segala sesuatu yang tidak dia masukkan ke dalam blok tidak terjadi.

Di blockchain, penambang juga memecahkan masalah konsensus kedua: keteraturan. Mereka diperbolehkan memesan transaksi di dalam blok sesuai keinginan mereka.

Bagaimana cara menentukan urutan transaksi di DAG?

Dari blockchain ke DAG: singkirkan perantara

Hanya karena grafik kita diarahkan, kita sudah mempunyai beberapa keteraturan. Setiap transaksi mengacu pada satu atau lebih transaksi induk sebelumnya. Orang tua, pada gilirannya, merujuk pada orang tuanya, dan seterusnya. Orang tua jelas muncul sebelum transaksi anak. Jika salah satu transaksi dapat dijangkau melalui transisi tautan induk-anak, kami mengetahui secara pasti urutan transaksi dalam rantai transaksi tersebut.

Dari blockchain ke DAG: singkirkan perantara

Namun urutan antar transaksi tidak selalu dapat ditentukan dari bentuk grafiknya saja. Misalnya, ketika dua transaksi terletak pada cabang paralel dari grafik.

Dari blockchain ke DAG: singkirkan perantara

Untuk mengatasi ambiguitas dalam kasus seperti ini, kami mengandalkan apa yang disebut sebagai penyedia pesanan. Kami juga menyebut mereka β€œsaksi”. Ini adalah pengguna biasa yang tugasnya terus-menerus mengirim transaksi ke jaringan dengan cara yang teratur, mis. sehingga setiap transaksi mereka sebelumnya dapat dicapai melalui transisi sepanjang tautan induk-anak. Penyedia pesanan adalah pengguna tepercaya, dan seluruh jaringan bergantung pada mereka agar tidak melanggar aturan ini. Untuk secara rasional percayalah pada mereka, kami mengharuskan setiap penyedia pesanan adalah orang atau organisasi yang dikenal (non-anonim) dan akan menanggung kerugian jika melanggar aturan, seperti reputasi atau bisnis yang didasarkan pada kepercayaan.

Dari blockchain ke DAG: singkirkan perantara

Penyedia pesanan dipilih oleh pengguna, dan setiap pengguna menyertakan daftar penyedia tepercaya dalam setiap transaksi yang dikirim ke jaringan. Daftar ini terdiri dari 12 penyedia. Jumlah ini cukup kecil bagi seseorang untuk memverifikasi identitas dan reputasi masing-masing dari mereka, dan cukup untuk memastikan bahwa jaringan terus beroperasi jika terjadi masalah yang tidak dapat dihindari dengan minoritas penyedia pesanan.

Daftar penyedia ini bervariasi dari pengguna ke pengguna, namun daftar transaksi tetangga mungkin berbeda hingga satu penyedia.

Dari blockchain ke DAG: singkirkan perantara

Sekarang kami memiliki penyedia pesanan, kami dapat mengisolasi transaksi mereka ke dalam DAG dan mengurutkan semua transaksi lain berdasarkan pesanan yang dibuat oleh mereka. Dimungkinkan untuk membuat algoritma seperti itu (lihat. Kertas Putih Obyte untuk rincian teknis).

Namun urutan seluruh jaringan tidak dapat ditentukan secara instan; kami memerlukan waktu bagi penyedia pesanan untuk mengirimkan transaksi mereka dalam jumlah yang cukup untuk memverifikasi urutan akhir transaksi sebelumnya.

Dan, karena urutannya hanya ditentukan oleh posisi transaksi penyedia di DAG, cepat atau lambat semua node di jaringan akan menerima semua transaksi dan sampai pada kesimpulan yang sama mengenai urutan transaksi.

Dari blockchain ke DAG: singkirkan perantara

Jadi, kami sepakat tentang apa yang kami anggap telah terjadi: setiap transaksi yang berakhir di DAG terjadi. Kita juga mempunyai kesepakatan mengenai urutan kejadian: hal ini terlihat dari hubungan transaksi, atau disimpulkan dari urutan transaksi yang dikirim oleh penyedia pesanan. Jadi kami memiliki konsensus.

Dari blockchain ke DAG: singkirkan perantara

Kami memiliki versi konsensus ini di Obyte. Meskipun akses ke buku besar Obyte sepenuhnya terdesentralisasi, konsensus mengenai urutan transaksi masih terpusat karena 10 dari 12 penyedia dikendalikan oleh pencipta (Anton Churyumov), dan hanya dua di antaranya yang independen. Kami mencari kandidat yang bersedia menjadi salah satu penyedia pesanan independen untuk membantu kami mendesentralisasikan pemesanan buku besar.

Baru-baru ini, muncul kandidat independen ketiga yang bersedia memasang dan memelihara simpul penyedia pesanan - Universitas Nicosia.

Dari blockchain ke DAG: singkirkan perantara

Sekarang bagaimana kita mengendalikan pembelanjaan ganda?

Sesuai aturan, jika ditemukan dua transaksi menggunakan koin yang sama, maka transaksi yang muncul lebih dulu di urutan terakhir dari semua transaksi akan menang. Yang kedua tidak valid oleh algoritma konsensus.

Dari blockchain ke DAG: singkirkan perantara
Jika dimungkinkan untuk membuat urutan antara dua transaksi yang membelanjakan koin yang sama (melalui koneksi induk-anak), maka semua node akan segera menolak upaya pembelanjaan ganda tersebut.

Dari blockchain ke DAG: singkirkan perantara

Jika urutan tidak terlihat dari hubungan induk antara dua transaksi tersebut, keduanya diterima ke dalam buku besar, dan kita perlu menunggu konsensus dan penetapan urutan di antara keduanya menggunakan penyedia pesanan. Maka transaksi sebelumnya akan menang, dan transaksi kedua menjadi tidak valid.

Dari blockchain ke DAG: singkirkan perantara

Meskipun transaksi kedua menjadi tidak sah, namun tetap ada dalam register karena sudah memiliki referensi transaksi berikutnya, yang tidak melanggar apa pun dan tidak mengetahui bahwa transaksi ini akan menjadi tidak sah di kemudian hari. Jika tidak, kami harus menghapus induk dari transaksi baik berikutnya, yang akan melanggar prinsip utama jaringan - setiap transaksi yang benar akan diterima ke dalam buku besar.

Dari blockchain ke DAG: singkirkan perantara

Ini adalah aturan yang sangat penting yang memungkinkan seluruh sistem tahan terhadap upaya sensor. 

Mari kita bayangkan bahwa semua penyedia pesanan berkolusi dalam upaya untuk "menyensor" satu transaksi tertentu. Mereka dapat mengabaikannya dan tidak pernah memilihnya sebagai "induk" untuk transaksi mereka, namun itu tidak cukup, transaksi tersebut masih dapat dimasukkan secara tidak langsung sebagai induk dari beberapa transaksi lain yang dikeluarkan oleh pengguna mana pun di jaringan yang tidak berkolusi. Seiring waktu, transaksi semacam itu akan menerima semakin banyak anak, cucu, dan cicit dari pengguna biasa, yang akan tumbuh seperti bola salju, dan semua penyedia pesanan yang disepakati harus mengabaikan transaksi ini juga. Pada akhirnya, mereka harus menyensor seluruh jaringan, yang sama saja dengan sabotase.

Dari blockchain ke DAG: singkirkan perantara

Dengan cara ini, DAG tetap tahan sensor bahkan jika ada kolusi di antara penyedia pesanan, sehingga melampaui blockchain yang tahan sensor di mana kita tidak dapat melakukan apa pun jika penambang memutuskan untuk tidak memasukkan transaksi apa pun. Dan ini mengikuti properti utama DAG: partisipasi dalam registri sepenuhnya independen dan tanpa perantara, dan transaksi tidak dapat diubah.

Sumber: www.habr.com

Tambah komentar