Ouroboros Hydra - Penjelasan Detail

Dipublikasikan pada tanggal 25 Jan 2022
Disadur oleh andre cahyadi (@prosperaan)
Untuk komunitas Cardano Indonesia
Referensi:
(https://iohk.io/en/blog/posts/2020/03/26/enter-the-hydra-scaling-distributed-ledgers-the-evidence-based-way/)
(https://iohk.io/en/blog/posts/2021/09/17/hydra-cardano-s-solution-for-ultimate-scalability/)
(https://iohk.io/en/blog/posts/2022/02/03/implementing-hydra-heads-the-first-step-towards-the-full-hydra-vision/)
(https://iohk.io/en/blog/posts/2021/09/10/concurrency-and-all-that-cardano-smart-contracts-and-the-eutxo-model/)

Lanjutan dari post sebelumnya, Ouroboros dalam Proof of Stake (PoS) Cardano

Di dalam jaringan blockchain, algoritma konsensus bertugas menjaga jaringan tetap aman dan permissionless dengan memastikan kesepakatan (agreement) pada setiap riwayat transaksi. Cardano sendiri menggunakan Ouroboros sebagai algoritma konsensus PoS. Namun, seperti pada permissionless blockhain pada umumnya, Cardano menghadapi tantangan dalam hal skalabilitas untuk mencapai throughput transaksi yang diperlukan dalam transaksi dunia nyata seperti pembayaran; identifikasi; game; mobile services, dll. Hal ini dikarenakan konsensus global yang selalu diperlukan dalam setiap transaksi.

Setiap transaksi di jaringan Cardano memerlukan biaya (transaction fees) sebagai imbalan yang proporsional kepada para stakeholder yang menjalankan dan menjaga jaringan. Selain itu, blockchain juga harus terlindungi dari serangan DDoS (biaya untuk menjalankan DDoS harus dibuat semahal mungkin). Terkait penyimpanan, dengan semakin banyaknya transaksi semakin banyak pula penyimpanan yang diperlukan, dimana hal ini beresiko membuat blockchain menjadi korban atas kesuksesannya sendiri.

Hydra sebagai Layer 2 untuk Solusi Skalabilitas
Ketika berbicara skalabilitas, beberapa hal yang menjadi perhatian utama adalah:

  • throughput transaksi atau transaction-per-second (TPS)
  • network latency untuk execution performance finality, seberapa cepat sistem bekerja
  • storage, penyimpanan minimal di setiap node
  • concurrency, parallelism, dan contention
    (concurrency: memungkinkan banyak partisipan menjalankan sebuah aktivitas tanpa saling mengganggu satu sama lain)
    (parallelism: memungkinkan concurrency dapat terjadi di waktu yang bersamaan tanpa gangguan apapun)
    (contention: penggunaan shared states dan dependencies secara bersamaan yang harus dihindari seperti meng-consume UTXO yang sama dan diubah menjadi parallelism)

Cardano telah dirancang dengan arsitektur 2 layer, on-chain & off-chain dimana masing – masing layer memiliki peran penting dalam memproses transaksi:
a. Layer 1 (On-Chain): menggunakan main chain sebagai secure settlement layer. Layer ini disebut juga sebagai CSL (Cardano Settlement Layer) dimana hanya ADA yang digunakan untuk memvalidasi dan memverifikasi transaksi.
b. Layer 2 (Off-Chain): memproses transaksi di luar main chain dengan keamanan yang diperoleh dan dijamin dari Ouroboros Hydra nantinya. Layer ini disebut juga sebagai Control Layer yang digunakan untuk kebutuhan smart contract, karena tidak membutuhkan konsensus global sehingga dapat dikembangkan untuk berbagai macam aplikasi.

Hydra juga akan mengizinkan transaction fees dan min UTXO value hanya sebesar 1 atau 2 Lovelaces, dimana hal ini sangat kritikal bagi transaksi – transaksi mikro dan berbagai use case yang akan muncul di kemudian hari.

Catatan:

  • ADA memiliki 6 angka desimal di belakang koma
  • 1 ADA = 1.000.000 Lovelaces
  • 1 Lovelace = 1/1.000.000 ADA

Komponen Skalabilitas Hydra
Hydra sebagai solusi Layer 2 dalam bentuk State Channels, terdiri dari beberapa komponen sebagai berikut:

a) Head Protocol (Protokol ‘Kepala’)
Sebagai inti dari Hydra yang memungkinkan para stakeholders seperti SPO, light wallet providers, bahkan Dapps developers untuk dengan cepat memproses transaksi dalam jumlah besar dengan penyimpanan minimal secara isomorphic multi-party state channels. Konsepnya mirip seperti Lightning Network di Bitcoin yang digunakan untuk payment channels.

Setiap state channel yang disebut sebagai ‘head’ atau ‘kepala’ menggunakan representasi main chain yang sama namun dilakukan secara off-chain. Hal ini memungkinkan banyak transaksi untuk diproses secara paralel bersamaan oleh state channel - state channel yang ada, sehingga meningkatkan transaction-per-second (TPS) output Cardano. Banyaknya state channel yang akan terbentuk nantinya membuat ledger seperti memiliki banyak ‘kepala’ (mirip dengan binatang mitologi, Hydra). Semua jenis transaksi seperti native assets, NFTs, Plutus scripts, maupun simple payments dapat dilakukan di dalam ‘kepala’ Hydra.

b) Tail Protocol (Protokol ‘Ekor’)
Mengkomplemen protokol ‘kepala’ dengan memampukan setiap state channel untuk menyediakan skalabilitas dalam jumlah besar bagi para pengguna akhir yang menggunakan low power devices seperti mobile phones atau standard PC dan tidak selamanya online terus menerus.

c) Cross-Head-and-Tail Communication Protocol
Head dan Tail dapat berkomunikasi satu sama lain melalui main chain Cardano, namun dengan protokol ini memungkinkan komunikasi antar keduanya dapat berjalan juga secara off-chain.

d) Supporting Protocols
Semua protokol di atas terikat bersama melalui supporting protocols yakni routing, configuration, dan virtualization management

Cara Kerja Hydra

  1. Partisipan dapat membuat state channel off-chain (‘kepala’ Hydra) sendiri untuk memproses transaksi (simple transactions atau smart contract transactions) tanpa berinteraksi dengan main chain, dengan asumsi setiap partisipan tetap menunjukkan good behaviour dan mematuhi protokol.

  2. Di dalam state channel, partisipan menjalankan algoritma konsensus yang berbeda dengan main chain namun lebih simple, ‘semua partisipan harus setuju dengan flow transaksi yang terjadi di dalam sini’.

  3. Dengan point no.2 di atas, maka state channel memiliki throughput transaksi yang tinggi dan proses settlement yang sangat cepat (instant confirmation dengan network latency yang sangat kecil). Lebih lanjut, state channel hanya membutuhkan penyimpanan yang sangat minimal dimana historis transaksi dapat dihapus segera setelah state dari transaksi sebelumnya diamankan via off–chain snapshot operation.

*Network latency saat ini adalah minimum 20 detik untuk 1 block (Ouroboros Praos). Namun, ketika Hydra sudah berjalan, sangat memungkinkan untuk menerima konfirmasi kurang dari 1 detik dengan adanya proses asynchronous off-chain certification melalui multi-signatures (thanks to EUTXO :slightly_smiling_face:).

  1. Ketika ada salah satu partisipan yang tiba – tiba ingin batal ATAU dirasa ada gangguan (serangan) di state channel, partisipan itu boleh segera keluar dari state channel dan partisipan lainnya juga ikut keluar (ibarat meeting yang langsung dibubarkan). State yang sedang berjalan saat itu akan dikembalikan ke main chain, karena menggunakan format transaksi dan signature yang sama.

Perumpamaan sebuah meeting mendadak di kantor.
Orang A: Ayo ketemuan untuk meeting singkat di ruang rapat kecil
Orang B: Ok
Orang C: Ok
Orang D: Ok, tapi nanti saya tidak bisa ikut sampai selesai

Semua sudah duduk di ruang rapat kecil

Kondisi 1:
Orang A: saya mau bahas topik urgent bla bla bla sambil menunjukkan materi presentasi
Orang B: menyimak
Orang C: menyimak
Orang D: maaf, saya harus keluar dari meeting sekarang, karena ada urusan mendadak
Akhirnya, meeting pun batal karena orang D tidak bisa ikut, akhirnya semuanya keluar dari ruangan rapat dan kembali ke aktivitas masing – masing dengan kondisi belum ada hasil meeting yang didapat.

Kondisi 2:
Orang A: saya mau bahas topik urgent bla bla bla sambil menunjukkan materi presentasi
Orang B: menyimak
Orang C: menyimak
Orang D: ternyata bisa menyimak juga
Akhirnya, meeting singkat ini berjalan sampai selesai, hasil meeting telah didapat, ruangan rapat pun dapat digunakan untuk meeting lain selanjutnya.

*Ruang rapat seperti state channel
*Orang – orang seperti para partisipan

  1. Para partisipan yang bergabung ke dalam state channel dapat meng-commit funds ke dalamnya, namun funds itu tersimpan di on-chain dalam sebuah script address dengan rule yang spesifik. Jadi, tidak ada fee yang di-generate dari transaksi di state channel dan tidak ada partisipan yang akan kehilangan funds selama berada di state channel.

  2. Hasil akhir setiap state channel akan direcord ke main chain dari off–chain snapshot. Namun, historis transaksi yang terjadi di dalam state channel hanya diketahui oleh para partisipan.

Ke Depan
Perlu diperhatikan juga ketika banyak orang di luar sana menilai transaction-per-second (TPS) sebagai ukuran sukses ketika berbicara tentang skalabilitas, hal ini relevan jika yang diukur adalah sistem ‘legacy’ tersentralisasi yang tingkat prediktabilitas dan konfirmasinya tinggi seperti jaringan Visa (average 1.736 TPS dengan kemampuan maksimum hingga 24.000 TPS).

Penghitungan TPS tidak dapat disamakan dengan sistem yang terdesentralisasi seperti di Cardano. Walaupun ada angka 1.000.000 TPS (1.000 ‘kepala’ dimana masing – masing mampu memproses 1.000 transaksi) seperti yang diutarakan sebelumnya, namun hal ini dianggap sebagai target aspirasional, karena fokus utama adalah fleksibilitas untuk bertumbuh sesuai dengan permintaan.

Untuk versi pertama Hydra nanti, memungkinkan sebuah ‘kepala’ Hydra dibentuk oleh sekelompok kecil partisipan yang independen dan masih bersifat lokal. Mereka akan mencoba scale up traffic transaksi dengan cost yang rendah. Walaupun sebuah ‘kepala’ Hydra dapat dibentuk kapan saja dengan menambah jumlah partisipan (menjadi 10, 100, 1.000, 10.000, 1.000.000, dll) di dalam ‘kepala’ tersebut, namun bukan berarti hal ini sudah menjadi solusi final dalam mengatasi masalah skalabilitas.

Versi pertama yang diluncurkan nanti masih belum mampu untuk menyelesaikan masalah seperti high volume transactions di NFT sales atau consumer to consumer micro payments. Penyebabnya adalah algoritma konsensus yang masih harus dikembangkan agar para partisipan dapat selalu mampu ‘bereaksi’ terhadap semua transaksi yang terjadi di ‘kepala’, ditambah sebuah ‘kepala’ belum mampu untuk scaling tak terbatas tanpa development lebih lanjut. (Ibarat ruang rapat kecil yang hanya muat 4-6 orang, tidak akan mampu menampung peserta meeting yang mencapai 100 orang)

Pengembangan berikutnya adalah membuat ‘kepala’ yang masih bersifat lokal menjadi global, dimana saling interkoneksi dengan ‘kepala’ lain sehingga mampu menampung partisipan dengan jumlah yang lebih besar lagi. (Ibarat ruang rapat kecil yang punya konektor ke ruang – ruang rapat lain sehingga ruangannya jadi besar sekali dan mampu menampung banyak peserta meeting)

Salah satu solusi jangka panjang lain yang sedang dipelajari juga adalah ‘Virtual Heads’ atau ‘Kepala Virtual’, yakni protokol Ouroboros Hydra di dalam sebuah ‘kepala’ Hydra dengan memaksimalkan sifat isomorphism dari solusi layer 2 ini. Dengan begini secara teori, skalabilitas tidak terbatas dapat dicapai.

Catatan: post akan diupdate jika ada perkembangan terbaru mengenai Hydra :smiley:

3 Likes