Perkenalan
Skalabilitas secara luas mengacu pada kemampuan sistem untuk tumbuh guna mengakomodasi peningkatan permintaan. Dalam komputasi, Anda dapat meningkatkan kinerja mesin Anda dengan mengupgrade perangkat kerasnya sehingga lebih cepat dalam melakukan tugas tertentu. Ketika kita berbicara tentang skalabilitas dalam blockchain, yang kita maksud adalah peningkatan kapasitasnya untuk menangani lebih banyak transaksi.
Protokol seperti Bitcoin memiliki banyak kekuatan, namun skalabilitas bukanlah salah satunya. Jika Bitcoin dijalankan di database milik pusat, akan relatif mudah bagi administrator untuk meningkatkan kecepatan dan throughput. Namun proposisi nilai Bitcoin (yaitu ketahanan terhadap sensor) mengharuskan banyak peserta menyinkronkan salinan blockchain.
Masalah skalabilitas blockchain
Menjalankan node Bitcoin relatif murah, dan bahkan perangkat sederhana pun dapat melakukannya. Namun karena ribuan node harus selalu up-to-date satu sama lain, ada batasan tertentu pada kapasitasnya.
Batasan ditempatkan pada jumlah transaksi yang dapat diproses secara on-chain, agar database tidak bertambah menjadi ukuran yang berat. Jika ukurannya menjadi terlalu besar dan terlalu cepat, node tidak akan mampu mengimbanginya. Terlebih lagi, jika blok terlalu besar, maka blok tersebut tidak dapat disalurkan dengan cepat ke seluruh jaringan.
Akibatnya, kita menemui hambatan. Blockchain dapat dipandang sebagai layanan kereta api yang berangkat pada interval tertentu. Jumlah kursi di setiap gerbong hanya terbatas, dan untuk mendapatkan tiket, pelancong harus mengajukan penawaran untuk menjamin tempat. Jika semua orang mencoba naik kereta pada waktu yang sama, biayanya akan tinggi. Demikian pula, jaringan yang tersumbat karena transaksi yang tertunda akan mengharuskan pengguna membayar biaya yang lebih tinggi agar transaksi mereka disertakan pada waktu yang tepat.
Salah satu solusinya adalah dengan membuat gerbongnya lebih besar. Hal ini berarti lebih banyak kursi, jumlah penumpang lebih banyak, dan harga tiket lebih murah. Namun tidak ada jaminan bahwa kursi tidak akan terisi seperti dulu. Gerbongnya tidak dapat diperlebar terus-menerus, seperti halnya blok atau batas gas tidak dapat diperluas tanpa batas. Hal terakhir ini menjadikan node lebih mahal untuk tetap berada di jaringan, karena node tersebut memerlukan perangkat keras yang lebih mahal agar tetap tersinkronisasi.
Pencipta Ethereum, Vitalik Buterin, menciptakan Trilema Skalabilitas untuk menggambarkan tantangan yang dihadapi oleh blockchain. Dia berteori bahwa protokol harus membuat trade-off antara skalabilitas, keamanan, dan desentralisasi. Hal ini agak bertentangan satu sama lain – jika terlalu berfokus pada dua sifat, maka sifat ketiga akan menjadi buruk.
Karena alasan ini, banyak orang memandang skalabilitas sebagai sesuatu yang harus dicapai secara off-chain, sementara keamanan dan desentralisasi harus dimaksimalkan pada blockchain itu sendiri.
Apa saja solusi penskalaan off-chain?
Penskalaan off-chain mengacu pada pendekatan yang memungkinkan transaksi dieksekusi tanpa membuat blockchain membengkak. Protokol yang dimasukkan ke dalam rantai memungkinkan pengguna mengirim dan menerima dana, tanpa transaksi muncul di rantai utama. Kami akan membahas dua kemajuan paling menonjol dalam hal ini: sidechain dan saluran pembayaran.
Pengantar sidechain
Apa itu rantai samping?
Sidechain adalah blockchain terpisah. Namun, ini bukan platform yang berdiri sendiri, karena dalam beberapa hal dipatok ke rantai utama. Rantai utama dan rantai samping dapat dioperasikan, artinya aset dapat mengalir dengan bebas dari satu aset ke aset lainnya.
Ada sejumlah cara untuk memastikan bahwa dana dapat disalurkan. Dalam beberapa kasus, aset dipindahkan dari rantai utama dengan cara disimpan ke alamat khusus. Mereka tidak benar-benar dikirim – mereka malah dikunci ke dalam alamatnya, dan jumlah yang sesuai dikeluarkan di sidechain. Cara yang lebih mudah (walaupun terpusat) adalah mengirimkan dana ke kustodian, yang menukar deposit dengan dana di sidechain.
Bagaimana cara kerja rantai samping?
Misalkan teman kita Alice mempunyai lima bitcoin. Dia ingin menukarnya dengan lima unit setara di sidechain Bitcoin – sebut saja sidecoin. Sidechain yang dimaksud menggunakan pasak dua arah, artinya pengguna dapat mentransfer asetnya dari rantai utama ke rantai samping dan sebaliknya.
Ingatlah bahwa sidechain adalah blockchain yang terpisah. Jadi, ini akan memiliki blok, node, dan mekanisme validasi yang berbeda. Untuk mendapatkan sidecoinnya, Alice akan mengirimkan lima bitcoinnya ke alamat lain. Itu mungkin dimiliki oleh seseorang yang kemudian akan mengkredit alamat sidechainnya dengan lima sidecoin setelah mereka menerima bitcoin. Atau, mungkin ada semacam pengaturan yang diminimalkan kepercayaan di mana sidecoin secara otomatis dikreditkan setelah perangkat lunak mendeteksi pembayaran.
Alice kini telah mengubah koinnya menjadi sidecoin, namun dia selalu dapat membalikkan proses untuk mendapatkan kembali bitcoinnya. Sekarang dia telah memasuki sidechain, dia bebas bertransaksi di blockchain terpisah ini. Dia dapat mengirim sidecoin atau menerimanya dari orang lain, seperti yang dia lakukan di rantai utama.
Dia bisa, misalnya, membayar Bob satu sidecoin untuk hoodie Binance. Ketika dia ingin kembali ke Bitcoin, dia dapat mengirimkan empat sidecoinnya yang tersisa ke alamat khusus. Setelah transaksi dikonfirmasi, empat bitcoin akan dibuka dan dikirim ke alamat yang dia kendalikan di rantai utama.
Mengapa sidechain digunakan?
Anda mungkin bertanya-tanya apa gunanya ini. Mengapa Alice tidak menggunakan blockchain Bitcoin saja?
Jawabannya adalah sidechain mungkin mampu melakukan hal-hal yang tidak dapat dilakukan oleh Bitcoin. Blockchain adalah sistem pertukaran yang dirancang dengan cermat. Meskipun Bitcoin adalah mata uang kripto yang paling aman dan terdesentralisasi, Bitcoin bukanlah yang terbaik dalam hal keluaran. Meskipun transaksi Bitcoin lebih cepat dibandingkan metode konvensional, namun masih relatif lambat jika dibandingkan dengan sistem blockchain lainnya. Blok ditambang setiap sepuluh menit, dan biayanya dapat meningkat secara signifikan ketika jaringan sedang padat.
Memang benar, tingkat keamanan seperti ini mungkin tidak diperlukan untuk pembayaran kecil sehari-hari. Jika Alice membayar untuk kopi, dia tidak akan tinggal diam menunggu konfirmasi transaksi. Dia akan menahan antrian, dan minumannya akan sudah dingin saat diserahkan.
Sidechain tidak terikat oleh aturan yang sama. Faktanya, mereka bahkan tidak perlu menggunakan Proof of Work untuk berfungsi. Anda dapat menggunakan mekanisme konsensus apa pun, memercayai satu validator, atau mengubah sejumlah parameter. Anda dapat menambahkan peningkatan yang tidak ada di rantai utama, menghasilkan blok yang lebih besar, dan menerapkan penyelesaian cepat.
Menariknya, sidechain bahkan bisa memiliki bug kritis tanpa memengaruhi rantai yang mendasarinya. Hal ini memungkinkan mereka untuk digunakan sebagai platform untuk bereksperimen dan meluncurkan fitur-fitur yang memerlukan konsensus dari sebagian besar jaringan.
Asalkan pengguna puas dengan trade-off yang ada, sidechain dapat menjadi langkah integral menuju penskalaan yang efektif. Tidak ada persyaratan bagi node rantai utama untuk menyimpan setiap transaksi dari rantai samping. Alice dapat memasuki sidechain dengan satu transaksi Bitcoin, melakukan ratusan transaksi sidecoin, dan kemudian keluar dari sidechain. Sejauh menyangkut blockchain Bitcoin, dia hanya melakukan dua hal – satu untuk masuk dan satu lagi untuk keluar.
Plasma Ethereum serupa, tetapi memiliki beberapa perbedaan besar. Baca lebih lanjut tentang ini: Apa itu Ethereum Plasma?
Pengenalan saluran pembayaran
Apa itu saluran pembayaran?
Saluran pembayaran memiliki tujuan yang sama dengan sidechain dalam hal skalabilitas, namun pada dasarnya sangat berbeda. Seperti halnya sidechain, mereka mendorong transaksi keluar dari rantai utama untuk mencegah blockchain membengkak. Berbeda dengan sidechain, mereka tidak memerlukan blockchain terpisah agar bisa berfungsi.
Saluran pembayaran menggunakan kontrak pintar untuk memungkinkan pengguna bertransaksi tanpa mempublikasikan transaksi mereka ke blockchain. Hal ini dilakukan dengan menggunakan perjanjian yang didukung perangkat lunak antara dua peserta.
Bagaimana cara kerja saluran pembayaran?
Dalam model seperti Lightning Network yang populer, dua pihak pertama-tama akan menyetor koin ke alamat yang mereka miliki bersama. Ini adalah alamat multisignature, yang memerlukan dua tanda tangan agar dana dapat dibelanjakan. Jadi, jika Alice dan Bob membuat alamat seperti itu, dana hanya dapat dipindahkan dengan persetujuan keduanya.
Katakanlah mereka masing-masing menyetor 10 BTC ke alamat yang sekarang menampung 20 BTC. Akan mudah bagi mereka untuk menjaga neraca yang dimulai dengan mengatakan Alice dan Bob masing-masing memiliki 10 BTC. Jika Alice ingin memberi Bob koin, mereka dapat memperbaruinya menjadi Alice memiliki 9 BTC, Bob memiliki 11 BTC. Mereka tidak perlu mempublikasikan ke blockchain karena mereka terus memperbarui saldo ini.
Namun, ketika saatnya tiba, katakanlah Alice memiliki 5 BTC, dan Bob memiliki 15 BTC. Mereka kemudian dapat membuat transaksi yang mengirimkan saldo tersebut ke alamat yang dimiliki oleh para pihak, menandatanganinya, dan menyiarkannya.
Alice dan Bob bisa saja mencatat sepuluh, seratus, atau seribu transaksi di neraca mereka. Namun sejauh menyangkut blockchain, mereka hanya melakukan dua operasi on-chain: satu untuk transaksi pendanaan awal, dan satu lagi untuk merealokasi saldo setelah selesai. Selain keduanya, semua transaksi lainnya gratis dan hampir instan karena terjadi secara off-chain. Tidak ada biaya penambang yang harus dibayar dan tidak ada konfirmasi blok yang harus ditunggu.
Tentu saja, contoh yang dibahas di atas mengharuskan kedua belah pihak untuk bekerja sama, dan ini bukanlah situasi yang ideal bagi orang asing. Namun, mekanisme khusus dapat digunakan untuk menghukum setiap upaya kecurangan, sehingga para pihak dapat berinteraksi dengan aman satu sama lain tanpa rasa percaya.
Perutean pembayaran
Terbukti, saluran pembayaran nyaman bagi dua pihak yang mengantisipasi volume transaksi yang tinggi. Tapi itu menjadi lebih baik. Jaringan saluran ini dapat diperluas, artinya Alice dapat membayar pihak yang tidak terhubung langsung dengannya. Jika Bob memiliki saluran terbuka dengan Carol, Alice dapat membayarnya asalkan kapasitasnya cukup. Dia akan menyalurkan dana ke saluran milik Bob, yang pada gilirannya akan menyalurkan dana tersebut ke saluran Carol. Jika Carol terhubung dengan peserta lain, Dan, hal yang sama bisa dilakukan.
Jaringan seperti itu berkembang menjadi topologi terdistribusi di mana setiap orang terhubung ke banyak rekan. Seringkali terdapat beberapa rute menuju suatu tujuan, dan pengguna dapat memilih rute yang paling efektif.
Menutup pikiran
Kami telah membahas dua pendekatan skalabilitas yang memungkinkan transaksi dilakukan tanpa membebani blockchain yang mendasarinya. Teknologi sidechain dan saluran pembayaran belum matang, namun semakin banyak dimanfaatkan oleh pengguna yang ingin menghindari kekurangan transaksi lapisan dasar.
Seiring berjalannya waktu dan semakin banyak pengguna yang bergabung dalam jaringan, desentralisasi harus ditegakkan. Hal ini hanya dapat dicapai dengan menerapkan batasan pertumbuhan blockchain sehingga node baru dapat dengan mudah bergabung. Para pendukung solusi skalabilitas off-chain percaya bahwa, pada waktunya, rantai utama hanya akan digunakan untuk menyelesaikan transaksi bernilai tinggi, atau untuk mengelompokkan masuk/keluar rantai samping dan membuka/menutup saluran.