Bagaimana cara membuat aplikasi terdesentralisasi yang berskala? Gunakan lebih sedikit blockchain

Tidak, meluncurkan aplikasi terdesentralisasi (dapp) di blockchain tidak akan menghasilkan bisnis yang sukses. Faktanya, sebagian besar pengguna bahkan tidak memikirkan apakah aplikasinya berjalan di blockchain - mereka hanya memilih produk yang lebih murah, cepat, dan sederhana.

Sayangnya, meskipun blockchain memiliki fitur dan manfaat uniknya sendiri, sebagian besar aplikasi yang berjalan di dalamnya jauh lebih mahal, lebih lambat, dan kurang intuitif dibandingkan pesaingnya yang terpusat.

Bagaimana cara membuat aplikasi terdesentralisasi yang berskala? Gunakan lebih sedikit blockchain

Seringkali dalam whitepaper aplikasi yang dibangun di atas blockchain, Anda dapat menemukan paragraf yang mengatakan: "Blockchain itu mahal dan tidak dapat mendukung jumlah transaksi per detik yang diperlukan. Untungnya, banyak orang pintar yang berupaya meningkatkan skala blockchain dan pada saat aplikasi kami diluncurkan, aplikasi tersebut akan menjadi cukup terukur.”

Dalam satu paragraf sederhana, pengembang dapp dapat melupakan diskusi lebih dalam tentang masalah skalabilitas dan solusi alternatif untuk masalah tersebut. Hal ini sering kali mengarah pada arsitektur yang tidak efisien di mana kontrak pintar yang berjalan di blockchain berfungsi sebagai backend dan inti aplikasi.

Namun, masih ada pendekatan yang belum teruji terhadap arsitektur aplikasi terdesentralisasi yang memungkinkan skalabilitas lebih baik dengan mengurangi ketergantungan pada blockchain. Misalnya, Blockstack sedang mengerjakan arsitektur di mana sebagian besar data aplikasi dan logika disimpan secara off-chain.

Pertama-tama mari kita lihat pendekatan yang lebih tradisional, yang menggunakan blockchain sebagai perantara langsung antara pengguna aplikasi, dan yang skalanya tidak terlalu baik.

Pendekatan #1: Blockchain sebagai Backend

Untuk lebih jelasnya, mari kita ambil contoh industri perhotelan. Ini adalah industri besar di mana perantara seperti Booking.com, mereka mengenakan biaya yang besar untuk menghubungkan tamu dan hotel.

Dalam situasi apa pun di mana kami ingin mengalahkan perantara tersebut dengan menggunakan pendekatan ini, kami akan mencoba mereplikasi logika bisnisnya menggunakan kontrak pintar pada blockchain seperti Ethereum.

Kontrak pintar sumber terbuka yang dijalankan di "komputer dunia" dapat menghubungkan pedagang dengan konsumen tanpa ada pihak ketiga di antaranya, yang pada akhirnya mengurangi biaya dan komisi yang dibebankan oleh perantara.

Seperti yang ditunjukkan pada gambar di bawah, hotel menggunakan aplikasi terdesentralisasi untuk memposting informasi blockchain tentang kamar, ketersediaan dan harganya pada hari kerja atau akhir pekan, dan mungkin bahkan deskripsi kamar dengan semua informasi relevan lainnya.

Bagaimana cara membuat aplikasi terdesentralisasi yang berskala? Gunakan lebih sedikit blockchain

Siapapun yang ingin memesan kamar menggunakan aplikasi ini untuk mencari hotel dan kamar yang dihosting di blockchain. Setelah pengguna memilih kamar, reservasi dilakukan dengan mengirimkan sejumlah token yang diperlukan ke hotel sebagai deposit. Dan sebagai tanggapannya, kontrak pintar memperbarui informasi di blockchain bahwa nomor tersebut tidak lagi tersedia.

Ada dua sisi masalah skalabilitas dengan pendekatan ini. Pertama, jumlah maksimal transaksi per detik. Kedua, jumlah data yang dapat disimpan di blockchain.

Mari kita lakukan beberapa perhitungan kasar. Booking.com mengatakan mereka memiliki hampir 2 juta hotel yang terdaftar pada mereka. Katakanlah rata-rata hotel memiliki 10 kamar dan masing-masing kamar dipesan hanya 20 kali dalam setahun - sehingga menghasilkan rata-rata 13 pemesanan per detik.

Sebagai gambaran, perlu dicatat bahwa Ethereum dapat memproses sekitar 15 transaksi per detik.

Pada saat yang sama, perlu dipertimbangkan bahwa aplikasi kita juga akan berisi transaksi dari hotel - untuk mengunduh dan terus memperbarui informasi tentang kamar mereka. Hotel sangat sering memperbarui harga kamar, terkadang bahkan setiap hari, dan setiap perubahan harga atau deskripsi memerlukan transaksi di blockchain.

Ada juga masalah ukuran di sini - berat blockchain Ethereum baru-baru ini melampaui angka 2TB. Jika aplikasi dengan pendekatan ini menjadi sangat populer, jaringan Ethereum akan menjadi sangat tidak stabil.

Sistem berbasis blockchain seperti itu dapat mengecualikan pihak luar karena ketidakberpihakannya dan kurangnya sentralisasi, yang merupakan keunggulan utama teknologi blockchain. Tetapi blockchain juga memiliki fitur lain - didistribusikan dan tidak ditulis ulang, ini adalah karakteristik yang sangat baik, namun Anda harus membayarnya dalam kecepatan dan komisi transaksi.

Oleh karena itu, pengembang dapp harus mengevaluasi dengan cermat apakah setiap fitur yang menggunakan blockchain benar-benar memerlukan distribusi dan non-writability.

Misalnya: apa manfaat mendistribusikan data setiap hotel ke ratusan mesin di seluruh dunia dan menyimpannya di sana secara permanen? Apakah data historis mengenai tarif dan ketersediaan kamar benar-benar penting untuk selalu disertakan dalam blockchain? Mungkin tidak.

Jika kita mulai mengajukan pertanyaan seperti ini, kita akan mulai melihat bahwa kita tidak memerlukan semua fitur blockchain yang mahal untuk semua fungsi kita. Jadi, apa alternatifnya?

Pendekatan #2: Arsitektur Terinspirasi Blockstack

Meski menjadi penekanan utama Blockstack pada aplikasi di mana pengguna adalah pemilik datanya (misalnya, seperti teks udara, BentenSound, Pengoptimal Gambar ΠΈΠ»ΠΈ Grafit), blockstack juga memiliki filosofi menggunakan blockchain secara ringanβ€”hanya jika benar-benar diperlukan. Argumen utama mereka adalah bahwa blockchain lambat dan mahal, dan oleh karena itu sebaiknya hanya digunakan untuk transaksi tunggal atau jarang terjadi. Interaksi lainnya dengan aplikasi harus dilakukan melalui peer-to-peer, mis. pengguna aplikasi terdesentralisasi harus berbagi data secara langsung satu sama lain, bukan melalui blockchain. Bagaimanapun, aplikasi terdesentralisasi tertua dan tersukses seperti BitTorrent, email, dan Tor diciptakan sebelum konsep blockchain itu sendiri.

Bagaimana cara membuat aplikasi terdesentralisasi yang berskala? Gunakan lebih sedikit blockchain
Kiri: Pendekatan pertama, di mana pengguna berinteraksi melalui blockchain. Benar: Pengguna berinteraksi langsung satu sama lain, dan blockchain hanya digunakan untuk identifikasi dan sejenisnya.

Mari kita kembali ke contoh pemesanan hotel. Kami menginginkan protokol yang tidak memihak, independen, dan terbuka untuk menghubungkan tamu dengan hotel. Dengan kata lain, kami ingin menghilangkan perantara yang terpusat. Misalnya, kita tidak perlu terus-menerus menyimpan harga kamar dalam buku besar yang didistribusikan secara umum.

Mengapa kita tidak mengizinkan tamu dan hotel berinteraksi secara langsung saja, bukan melalui blockchain. Hotel dapat menyimpan harga, ketersediaan kamar, dan informasi lainnya di suatu tempat yang dapat diakses oleh semua orang - misalnya, IPFS, Amazon S3, atau bahkan server lokal mereka sendiri. Inilah yang disebut dengan sistem penyimpanan terdesentralisasi Blockstack Gaia. Hal ini memungkinkan pengguna untuk memilih di mana mereka ingin datanya disimpan dan mengontrol siapa yang dapat mengaksesnya melalui pendekatan yang disebut penyimpanan multi-pengguna.

Untuk membangun kepercayaan, semua data hotel ditandatangani secara kriptografis oleh hotel itu sendiri. Di mana pun data ini disimpan, integritasnya dapat diverifikasi menggunakan kunci publik yang terkait dengan identitas hotel yang disimpan di blockchain.

Dalam kasus Blockstack, hanya informasi identitas Anda yang disimpan di blockchain. Informasi tentang cara memperoleh data setiap pengguna disimpan dalam file zona dan didistribusikan melalui jaringan peer-to-peer menggunakan node. Dan sekali lagi, Anda tidak perlu mempercayai data yang diberikan node, karena Anda dapat memverifikasi keasliannya dengan membandingkannya dengan hash yang disimpan di blockchain dan pengguna lain.

Dalam versi sistem yang disederhanakan, para tamu akan menggunakan jaringan peer-to-peer Blockstack untuk mencari hotel dan memperoleh informasi tentang kamar mereka. Dan keaslian serta integritas semua data yang Anda terima dapat diverifikasi menggunakan kunci publik dan hash yang disimpan di dalamnya sirkuit virtual tumpukan blok.

Arsitektur ini lebih kompleks dibandingkan pendekatan pertama dan memerlukan infrastruktur yang lebih komprehensif. Faktanya, di sinilah Blockstack berperan, menyediakan semua komponen yang diperlukan untuk menciptakan sistem yang terdesentralisasi.

Bagaimana cara membuat aplikasi terdesentralisasi yang berskala? Gunakan lebih sedikit blockchain

Dengan arsitektur ini, kami hanya menyimpan data di blockchain yang benar-benar perlu didistribusikan dan tidak ditimpa. Dalam kasus Blockstack, Anda hanya memerlukan transaksi di blockchain untuk mendaftar dan menunjukkan di mana data Anda harus disimpan. Anda mungkin perlu melakukan lebih banyak transaksi jika ingin mengubah informasi ini, namun ini bukan peristiwa yang berulang.

Selain itu, logika aplikasi, berbeda dengan pendekatan pertama, berjalan di sisi klien dan bukan pada kontrak pintar. Hal ini memungkinkan pengembang untuk mengubah logika ini tanpa pembaruan kontrak pintar yang mahal atau terkadang bahkan mustahil. Dan dengan menjaga data dan logika aplikasi tetap off-chain, aplikasi terdesentralisasi dapat mencapai tingkat kinerja dan skalabilitas sistem terpusat tradisional.

Kesimpulan

Aplikasi yang berjalan di Blockstack dapat berkembang jauh lebih baik daripada aplikasi blockchain konvensional, namun ini merupakan pendekatan yang lebih muda dengan permasalahannya sendiri dan pertanyaan yang belum terjawab.

Misalnya, jika aplikasi terdesentralisasi tidak berjalan pada kontrak pintar, hal ini mengurangi kebutuhan akan token utilitas. Hal ini dapat menimbulkan masalah bagi bisnis mengingat ICO telah menjadi sumber pendanaan utama untuk aplikasi yang terdesentralisasi (termasuk Blockstack itu sendiri)

Ada juga masalah teknis di sini. Misalnya, relatif mudah untuk mengimplementasikan fungsi pemesanan hotel dalam kontrak pintar, di mana dalam operasi atom, reservasi kamar dilakukan dengan imbalan token. Dan tidak terlalu jelas bagaimana pemesanan akan bekerja di aplikasi Blockstack tanpa kontrak pintar.

Aplikasi yang menargetkan pasar global dengan potensi jutaan pengguna harus berkembang dengan baik agar bisa sukses. Adalah suatu kesalahan jika hanya mengandalkan blockchain untuk mencapai tingkat skalabilitas ini dalam waktu dekat. Untuk dapat bersaing dengan pemain pasar terpusat yang besar seperti Booking.com, pengembang aplikasi terdesentralisasi harus mempertimbangkan pendekatan alternatif dalam merancang aplikasi mereka, seperti yang ditawarkan oleh Blockstack.

Sumber: www.habr.com

Tambah komentar