Bagaimana untuk mencipta aplikasi terdesentralisasi yang berskala? Kurangkan penggunaan blockchain

Tidak, melancarkan aplikasi terdesentralisasi (dapp) pada blockchain tidak akan membawa kepada perniagaan yang berjaya. Malah, kebanyakan pengguna tidak memikirkan sama ada aplikasi itu berjalan pada blockchain - mereka hanya memilih produk yang lebih murah, lebih pantas dan lebih mudah.

Malangnya, walaupun blockchain mempunyai ciri dan faedah uniknya sendiri, kebanyakan aplikasi yang dijalankan padanya jauh lebih mahal, lebih perlahan dan kurang intuitif daripada pesaing terpusat mereka.

Bagaimana untuk mencipta aplikasi terdesentralisasi yang berskala? Kurangkan penggunaan blockchain

Selalunya dalam kertas putih aplikasi yang dibina pada blokchain, anda boleh menemui perenggan yang mengatakan: "Blok blok itu mahal dan tidak dapat menyokong bilangan urus niaga yang diperlukan sesaat. Nasib baik, ramai orang pintar sedang berusaha untuk menskala blokchain dan pada masa aplikasi kami dilancarkan ia akan menjadi agak berskala."

Dalam satu perenggan ringkas, pembangun dapp boleh melupakan perbincangan yang lebih mendalam tentang isu kebolehskalaan dan penyelesaian alternatif kepada masalah. Ini selalunya membawa kepada seni bina yang tidak cekap di mana kontrak pintar yang dijalankan pada blockchain berfungsi sebagai bahagian belakang dan teras aplikasi.

Walau bagaimanapun, masih terdapat pendekatan yang belum teruji untuk seni bina aplikasi terdesentralisasi yang membolehkan skalabiliti yang lebih baik dengan mengurangkan pergantungan pada rantaian blok. Sebagai contoh, Blockstack sedang mengusahakan seni bina di mana kebanyakan data aplikasi dan logik disimpan di luar rantaian.

Mari kita lihat pendekatan yang lebih tradisional, yang menggunakan blockchain sebagai perantara langsung antara pengguna aplikasi, dan yang tidak berskala dengan baik.

Pendekatan #1: Blockchain sebagai Backend

Untuk membuat perkara lebih jelas, mari kita ambil industri perhotelan sebagai contoh. Ini adalah industri besar di mana pengantara seperti Booking.com, mereka mengenakan bayaran yang besar untuk menghubungkan tetamu dan hotel.

Dalam apa jua keadaan di mana kami ingin mengalahkan perantara sedemikian menggunakan pendekatan ini, kami akan cuba meniru logik perniagaannya menggunakan kontrak pintar pada blockchain seperti Ethereum.

Kontrak pintar sumber terbuka yang dijalankan pada "komputer dunia" boleh menghubungkan pedagang kepada pengguna tanpa pihak ketiga di antaranya, akhirnya mengurangkan yuran dan komisen yang dikenakan oleh pengantara.

Seperti yang ditunjukkan dalam imej di bawah, hotel menggunakan aplikasi terdesentralisasi untuk menyiarkan maklumat blokchain tentang bilik, ketersediaan dan harganya pada hari bekerja atau hujung minggu, dan mungkin juga penerangan bilik dengan semua maklumat lain yang berkaitan.

Bagaimana untuk mencipta aplikasi terdesentralisasi yang berskala? Kurangkan penggunaan blockchain

Sesiapa yang ingin menempah bilik menggunakan aplikasi ini untuk mencari hotel dan bilik yang dihoskan pada blockchain. Sebaik sahaja pengguna memilih bilik, tempahan dibuat dengan menghantar jumlah token yang diperlukan kepada hotel sebagai deposit. Dan sebagai tindak balas, kontrak pintar mengemas kini maklumat dalam rantaian blok bahawa nombor itu tidak lagi tersedia.

Terdapat dua sisi kepada masalah kebolehskalaan dengan pendekatan ini. Pertama, bilangan maksimum transaksi sesaat. Kedua, jumlah data yang boleh disimpan pada blockchain.

Mari buat pengiraan kasar. Booking.com mengatakan mereka mempunyai hampir 2 juta hotel yang berdaftar dengan mereka. Katakan purata hotel mempunyai 10 bilik dan setiap satu ditempah hanya 20 kali setahun - yang memberi kami purata 13 tempahan sesaat.

Untuk meletakkan nombor ini dalam perspektif, perlu diperhatikan bahawa Ethereum boleh memproses kira-kira 15 transaksi sesaat.

Pada masa yang sama, perlu dipertimbangkan bahawa aplikasi kami juga akan mengandungi transaksi dari hotel - untuk memuat turun dan sentiasa mengemas kini maklumat tentang bilik mereka. Hotel mengemas kini harga bilik dengan sangat kerap, kadangkala bahkan setiap hari, dan setiap perubahan harga atau perihalan memerlukan transaksi pada rantaian blok.

Terdapat juga masalah saiz di sini - berat blockchain Ethereum baru-baru ini melepasi tanda 2TB. Jika aplikasi dengan pendekatan ini menjadi benar-benar popular, rangkaian Ethereum akan menjadi sangat tidak stabil.

Sistem berasaskan blokchain sedemikian boleh mengecualikan orang luar kerana kesaksamaan dan kekurangan pemusatan, kelebihan utama teknologi blockchain. Tetapi blockchain juga mempunyai ciri lain - ia diedarkan dan tidak ditulis semula, ini adalah ciri yang sangat baik, tetapi anda perlu membayarnya dalam kelajuan dan komisen transaksi.

Oleh itu, pembangun dapp mesti menilai dengan teliti sama ada setiap ciri yang menggunakan blockchain benar-benar memerlukan pengedaran dan tidak boleh ditulis.

Contohnya: apakah faedah mengedarkan setiap data hotel merentasi ratusan mesin di seluruh dunia dan menyimpannya di sana secara kekal? Adakah benar-benar penting bahawa data sejarah tentang kadar bilik dan ketersediaan sentiasa disertakan dalam rantaian blok? Mungkin tidak.

Jika kami mula bertanya soalan seperti ini, kami akan mula melihat bahawa kami tidak semestinya memerlukan semua ciri blockchain yang mahal untuk semua fungsi kami. Jadi, apakah alternatifnya?

Pendekatan #2: Seni Bina Berinspirasikan Blockstack

Walaupun penekanan utama Blockstack pada aplikasi di mana pengguna adalah pemilik data mereka (contohnya, seperti Teks Udara, BentenSound, Pengoptimum Imej atau grafit), blockstack juga mempunyai falsafah untuk menggunakan blockchain secara ringanβ€”hanya apabila benar-benar perlu. Hujah utama mereka ialah blockchain adalah perlahan dan mahal, dan oleh itu hanya boleh digunakan untuk transaksi tunggal atau jarang. Selebihnya interaksi dengan aplikasi harus berlaku melalui peer-to-peer, i.e. pengguna aplikasi terdesentralisasi mesti berkongsi data secara langsung antara satu sama lain, bukannya melalui rantaian blok. Lagipun, aplikasi terdesentralisasi tertua dan paling berjaya seperti BitTorrent, e-mel dan Tor dicipta sebelum konsep blockchain itu sendiri.

Bagaimana untuk mencipta aplikasi terdesentralisasi yang berskala? Kurangkan penggunaan blockchain
Kiri: Pendekatan pertama, di mana pengguna berinteraksi melalui rantaian blok. Kanan: Pengguna berinteraksi secara langsung antara satu sama lain, dan blockchain hanya digunakan untuk pengenalan dan sebagainya.

Mari kita kembali kepada contoh tempahan hotel. Kami mahukan protokol yang saksama, bebas dan terbuka untuk menghubungkan tetamu dengan hotel. Dalam erti kata lain, kami mahu mengeluarkan orang tengah berpusat. Kita tidak perlu, sebagai contoh, untuk sentiasa menyimpan harga bilik dalam lejar yang diedarkan bersama.

Mengapa kita tidak membenarkan sahaja tetamu dan hotel berinteraksi secara langsung dan bukannya melalui rantaian blok. Hotel boleh menyimpan harga mereka, ketersediaan bilik dan sebarang maklumat lain di tempat yang boleh diakses oleh semua orang - contohnya, IPFS, Amazon S3, atau malah pelayan tempatan mereka sendiri. Inilah yang dipanggil sistem storan terdesentralisasi Blockstack Gaia. Ia membolehkan pengguna memilih di mana mereka mahu data mereka disimpan dan mengawal siapa yang boleh mengaksesnya melalui pendekatan yang dipanggil storan berbilang pengguna.

Untuk mewujudkan kepercayaan, semua data hotel ditandatangani secara kriptografi oleh hotel itu sendiri. Tidak kira di mana data ini disimpan, integritinya boleh disahkan menggunakan kunci awam yang dikaitkan dengan identiti hotel tersebut yang disimpan pada rantaian blok.

Dalam kes Blockstack, hanya maklumat identiti anda disimpan pada blockchain. Maklumat tentang cara mendapatkan data setiap pengguna disimpan dalam fail zon dan diedarkan melalui rangkaian peer-to-peer menggunakan nod. Dan sekali lagi, anda tidak perlu mempercayai data yang diberikan oleh nod, kerana anda boleh mengesahkan kesahihannya dengan membandingkannya dengan cincang yang disimpan dalam blockchain dan pengguna lain.

Dalam versi sistem yang dipermudahkan, tetamu akan menggunakan rangkaian peer-to-peer Blockstack untuk mencari hotel dan mendapatkan maklumat tentang bilik mereka. Dan ketulenan dan integriti semua data yang anda terima boleh disahkan menggunakan kunci awam dan cincang yang disimpan dalam litar maya Timbunan blok.

Seni bina ini lebih kompleks daripada pendekatan pertama dan memerlukan infrastruktur yang lebih komprehensif. Sebenarnya, di sinilah Blockstack masuk, menyediakan semua komponen yang diperlukan untuk mencipta sistem terdesentralisasi sedemikian.

Bagaimana untuk mencipta aplikasi terdesentralisasi yang berskala? Kurangkan penggunaan blockchain

Dengan seni bina ini, kami hanya menyimpan data pada blockchain yang benar-benar perlu diedarkan dan tidak ditimpa. Dalam kes Blockstack, anda hanya memerlukan transaksi pada blockchain untuk mendaftar dan menunjukkan tempat data anda harus disimpan. Anda mungkin perlu membuat lebih banyak transaksi jika anda ingin menukar mana-mana maklumat ini, tetapi ini bukan peristiwa berulang.

Selain itu, logik aplikasi, berbeza dengan pendekatan pertama, berjalan pada sisi pelanggan dan bukan pada kontrak pintar. Ini membolehkan pembangun menukar logik ini tanpa kemas kini kontrak pintar yang mahal atau kadangkala mustahil. Dan dengan mengekalkan data aplikasi dan logik di luar rantaian, aplikasi terdesentralisasi boleh mencapai tahap prestasi dan kebolehskalaan sistem terpusat tradisional.

Kesimpulan

Aplikasi yang berjalan pada Blockstack boleh berskala lebih baik daripada aplikasi blockchain konvensional, tetapi ia adalah pendekatan yang lebih muda dengan masalahnya sendiri dan soalan yang tidak dijawab.

Sebagai contoh, jika aplikasi terdesentralisasi tidak berjalan pada kontrak pintar, maka ini mengurangkan keperluan untuk token utiliti. Ini boleh menyebabkan masalah kepada perniagaan memandangkan ICO telah menjadi sumber utama pembiayaan untuk aplikasi terdesentralisasi (termasuk Blockstack sendiri)

Terdapat juga masalah teknikal di sini. Sebagai contoh, agak mudah untuk melaksanakan fungsi tempahan hotel dalam kontrak pintar, di mana dalam operasi atom, tempahan bilik dibuat sebagai pertukaran token. Dan tidak begitu jelas bagaimana tempahan akan berfungsi dalam aplikasi Blockstack tanpa kontrak pintar.

Apl yang menyasarkan pasaran global yang berpotensi untuk berjuta-juta pengguna mesti berskala dengan baik untuk berjaya. Adalah satu kesilapan untuk bergantung semata-mata pada rantaian blok untuk mencapai tahap kebolehskalaan ini dalam masa terdekat. Untuk dapat bersaing dengan pemain pasaran berpusat yang besar seperti Booking.com, pembangun aplikasi terdesentralisasi harus mempertimbangkan pendekatan alternatif untuk mereka bentuk aplikasi mereka, seperti yang ditawarkan oleh Blockstack.

Sumber: www.habr.com

Tambah komen