Web3.com Ventures’ning original tadqiqot tahlili

0xFishylosopher

Kirish

Aptos yaqinda mainnet’ini ishga tushirgani va tokeni Binance hamda boshqa yirik markazlashgan birjalarda savdoga chiqqani bois, uzoq vaqtdan beri kutilgan ushbu loyiha haqida tahliliy maqola yozish uchun ayni muddao. Meta’ning Libra kriptovalyutasini yaratishga urinishlaridan qolgan yetim loyiha bo‘lgan Aptos, kriptodunyoga keyingi million foydalanuvchini olib kiradigan blokcheyn bo‘lish haqidagi Libra g‘oyasini davom ettiradi.

Aptosning asosiy maqsadi — kengayuvchan, xavfsiz va ishonchli blokcheyn yaratish [1]. Buning uchun Aptos yangi Move aqlli kontraktlar tilidan foydalanadi; bu til Ethereum’ning Solidity tilidan, ya’ni hozirgi “oltin standart”dan, go‘yoki “xavfsizroq”. Albatta, Aptos o‘zini “kengayuvchan, xavfsiz va ishonchli” deb ta’riflaydigan birinchi L1 blokcheyn emas. Boshqa tarmoqlar, eng avvalo Solana, ilgari ham bu iborani shior sifatida ishlatishga uringan, ammo muvaffaqiyati har xil bo‘lgan [2]. Ushbu maqolada Move tilining asosiy xususiyatlaridan boshlab, Aptosning texnik asoslarini o‘xshash loyihalar bilan taqqoslab tahlil qilaman hamda bu yangi va qizg‘in muhokama qilinayotgan tarmoqning imkoniyatlari va cheklovlariga tanqidiy baho beraman.

Move tili

Move tilini tahlil qilmasdan Aptosni tahlil qilib bo‘lmaydi. Darhaqiqat, Aptos salohiyatining katta qismi aynan shundan kelib chiqadi, desa ham bo‘ladi. Move dastlab Meta’ning Libra jamoasi (hozir Diem deb ataladi) tomonidan boshqa smart-kontrakt tillaridan tubdan farq qiluvchi dasturlash modelini yaratish uchun ishlab chiqilgan: tranzaksiyaga asoslangan yondashuv o‘rniga, Move smart-kontrakt modellarini belgilashda resurslarga asoslangan yondashuvni qo‘llaydi [3].

Xo‘sh, bularning barchasi nimani anglatadi? Bitcoin’dan boshlab, aksariyat taniqli blokcheynlar “avval tranzaksiya” yondashuvini qabul qilgan. Bunda blokcheyndagi har bir yozuv tranzaksiyadan (masalan, Alice va Bob o‘rtasidagi) iborat bo‘ladi. Tranzaksiya nisbiy obyekt hisoblanadi: tranzaksiya yuz berishi uchun Alice va Bob manzillari mavjud bo‘lishi kerak. “Avval tranzaksiya” yondashuvida Alice bir tranzaksiyada tangani “ikki marta sarflamayotganini” ta’minlash uchun boshqa barcha tranzaksiyalar bilan ziddiyat yo‘qligini tekshirish lozim. Bu esa tranzaksiyalarni sekinlashtiradi.

Move’ning “resurslarga asoslangan” yondashuvi esa tubdan farq qiladi. A’dan B’ga o‘tgan tranzaksiyalarni qayd etish o‘rniga, Move qo‘lma-qo‘l o‘tayotgan obyektni (yoki resursni) qayd etadi va tegishli atributlarni yangilaydi. Muhimi, resurslar atomar obyektlardir — X resursining mavjudligi boshqa biror resursning mavjudligiga bog‘liq emas. Tranzaksiyalarda esa T tranzaksiyasi A va B ismli ikki ishtirokchining avvaldan mavjud bo‘lishiga bog‘liq. Shunday qilib, resurslarga asoslangan yondashuv parallel bajarishga moslashtirilgan, ancha atomar va mustaqil tuzilmani yaratish imkonini beradi.

Move’dagi “resurslar” mohiyatan muayyan atributlarga ega obyektlardir. Texnik tilda ular struct’lar (ya’ni, ma’lumotlarni saqlovchi konteyner tuzilmalari) sifatida amalga oshiriladi [4]. Shu yerda Ethereum’da dasturlash tajribasiga ega kishilar savol berishi mumkin: Solidity’da ham struct’lar va boshqa ma’lumotlar tuzilmalari bor-ku. Move’dagi struct’larning nimasi o‘ziga xos? Menimcha, eng muhim farq shuki, Solidity’da struct’lar tilning nisbatan ikkinchi darajali qismi bo‘lsa (asosan kodni tushunarli qilish uchun ishlatiladi), Move’da esa ular hamma narsaning asosidir. Bundan tashqari, Move struct’lari obyektni nusxalash, saqlash yoki o‘chirish mumkinligini belgilovchi “copy”, “drop”, “store” va “key” kabi turli “qobiliyat”larga ega [5]. Bunday struct yozuvi Solidity’dan, hattoki C/C++ kabi keng tarqalgan dasturlash tillarining aksariyatidan butunlay farq qiladi. Biroq bu turli “qobiliyatlar”ni tushunish juda oson. Tanga yoki token kabi narsalarni “nusxalash” mumkin. Ba’zi narsalarni “tashlab yuborish” mumkin. Noyob raqamli aktiv kabi boshqa narsalarni esa nusxalab bo‘lmasligi mumkin. Endi Move’dagi “resurs”ning quyidagi rasmiy ta’rifini ko‘rib chiqing:

“Struct qiymatlarini nusxalab bo‘lmasa va tashlab yuborib bo‘lmasa, biz ularni ko‘pincha resurslar deb ataymiz.” — Struct va resurslar, Move tili hujjatlari [4]

Demak, “resurslar” mohiyatan doim yoningizda bo‘ladigan noyob “struct”lardir. Qanday romantik.

Move’da “struct” tushunchasining tubdan qayta ta’riflanishi tokenlar, NFT’lar, smart-kontraktlar va boshqa raqamli aktivlarni yagona ma’lumotlar tuzilmasi yordamida ixcham, tartibli va modulli tarzda ifodalash imkonini beradi [6]. Bu Ethereum’ning EVM’i bilan solishtirib bo‘lmaydigan jihat: EVM’da dasturlash tajribasiga ega bo‘lgan har kim Solidity’da struct’lar (va ichma-ich struct’lar) bilan ishlash qanchalik asabiylashtirishini biladi.

Eng muhimi, Move’ning resurslarga asoslangan yondashuvi uning xavfsizlik kafolatlarining poy հիմidir. Move’ning oq qog‘ozida ta’kidlanganidek, ko‘plab dasturlarda aktivlar bilvosita ifodalanadi, bu esa tanqislik va kirishni boshqarish imkoniyatlarini kengaytirishni qiyinlashtiradi. Masalan, Ether’ning tanqisligi EVM’da kod orqali belgilangan va himoyalangan bo‘lsa-da, boshqa ERC-20 tokenlar “bu himoyalarni meros qilib olmaydi; aktivlarni takrorlash, qayta ishlatish yoki yo‘qotishga olib keladigan xatolarni kiritmaslik uchun ehtiyot bo‘lish kerak” [4]. Reentrancy hujumining klassik misolini ko‘rib chiqaylik. Bu muammo uzoq vaqtdan beri EVM loyihalariga ziyon yetkazib kelgan va ko‘pincha ularni millionlab dollar yo‘qotishga sabab bo‘lgan [7]. Move’ning resurslarga asoslangan yondashuvi tufayli Move’da reentrancy hujumi imkonsiz. Shu bois Move’da dasturlashni o‘rganish ostonasi EVM’ga qaraganda ancha past, desa bo‘ladi — bu ommaviy joriy etish uchun juda muhim omil.

Aptos — texnik tamoyillar

Aptosning eng katta yutug‘i, ehtimol, Move tilini bozorga olib chiqqanidadir. ****Darhaqiqat, Aptos dizaynining katta qismi Meta ishlab chiqqan Diem (Libra) blokcheynidan to‘g‘ridan-to‘g‘ri olingan. Aptos masshtablanuvchanlik va xavfsizlikka alohida urg‘u beradigan blokcheyn ekanini eslang. Bunga erishish uchun ikkita asosiy texnik yechim qo‘llanadi. Birinchisi — uning konsensus qatlami, ya’ni AptosBFT konsensus mexanizmi. Ikkinchisi esa bajarish qatlami, ya’ni Block-STM bajarish mexanizmi. Keling, ularni navbatma-navbat ko‘rib chiqamiz.

Avvalo, AptosBFT — bu Vizantiya xatolariga bardoshli konsensus mexanizmi. Bu, mohiyatan, tarmoqdagi tugunlarning uchdan biridan ko‘pi zararli bo‘lmasa, tizim xavfsizlikni kafolatlashda davom eta olishini anglatadi [8]. Bu odatiy amaliyot: Bitcoin’ning Proof of Work’i, Ethereum’ning Proof-of-Stake’i va boshqalar Vizantiya xatolariga bardoshlidir. Xo‘sh, AptosBFT o‘z konsensus mexanizmini amalda qanday ishlatadi? Boshqa Proof-of-Stake blokcheynlari singari, Aptos ham “staking” qilingan validator tugunlariga tayanadi. U HotStuff konsensus algoritmining bir variantini qo‘llaydi. Bu zamonaviy PoS algoritmi avvalgi modellarga (masalan, pBFT) nisbatan tugunlar o‘rtasidagi aloqa protokolini ancha soddalashtiradi: tugunlar boshqa har bir tugun bilan emas, balki “navbatma-navbat almashinuvchi yetakchi” bilan muloqot qiladi [9]. AptosBFT HotStuff ustiga bir nechta optimallashtirishlarni, eng muhimi, xavfsizlikni oshirish uchun “kalitlarni almashtirish mexanizmi” va masshtablanuvchanlikni oshirish uchun ortiqcha yukni kamaytirishni joriy etsa-da, HotStuff’ning PoS tuzilmasida katta o‘zgarishlar yo‘q [10].

Boshqa tomondan, Block-STM parallel bajarish mexanizmi ancha o‘ziga xos yechim bo‘lib, loyihaning asosiy texnik yutug‘i desa ham bo‘ladi [11]. Resurslar atomar ekanini eslang — muayyan X resursining egasi o‘zgarishi boshqa hech qanday resursga bog‘liq emas. Tranzaksiyalarni bloklarga (lego bo‘laklari kabi) birlashtirib, resurslar bilan bog‘liq tranzaksiyalarni bajarishda ulkan parallelizmdan foydalanishimiz va Ethereum’ga nisbatan hisoblash tezligini 20 baravar oshirishimiz mumkin [11].

Ammo bu Solana va boshqa parallel bajarish mexanizmlari bilan qanday taqqoslanadi? Solananing asosiy yangiligi — parallel bajarishni amalga oshirish uchun barcha smart-kontrakt bog‘liqliklarini kodga oldindan kiritish edi. Barcha bog‘liqliklar oldindan ma’lum bo‘lgani uchun, Solana bajarish mexanizmi ishga tushishidan avval zarur bog‘liqliklarni band qilib qo‘yishi mumkin. Aptos esa bog‘liqliklarni jarayon davomida boshqaradi: avval barcha tranzaksiyalarni “optimistik” tarzda bajaradi, xatolik yuz bersa, muvaffaqiyatsiz bo‘lgan muayyan tranzaksiyalarni qayta bajaradi [12].

Yuqoridagilarni tushuntirish uchun oddiy o‘xshatishdan foydalanaylik. Ethereum — barcha avtomobillar birin-ketin, bitta qatorda harakatlanishi kerak bo‘lgan bir polosali yo‘l. Solana va Aptos esa to‘rt polosali tezyurar yo‘llardir. Bu, shubhasiz, harakatni tezlashtiradi. Ammo savol shuki, avtomobillar tezyurar yo‘lda qanday harakatlanadi? Solana holatida har bir avtomobilga muayyan yo‘lak biriktiriladi va u doim shu yo‘lakda harakatlanadi. Eng qulay vaziyatda bu juda tez va samarali, biroq yo‘laklarni taqsimlash jarayoni noto‘g‘ri ketsa, eng yomon vaziyat juda ayanchli bo‘ladi. Aptos holatida esa avtomobillarga avval ayrim yo‘laklar ajratiladi, ammo bu ish bermasa, avariyalarning oldini olish uchun ularga boshqa yo‘laklarga o‘tishga ruxsat beriladi. Shuning uchun, eng qulay vaziyatda Aptos Solana kabi tez ishlamasligi mumkin bo‘lsa-da, u Solanaga qaraganda ishonchliroq va eng yomon vaziyatda ham yaxshiroq natija ko‘rsatadi [13].

Baholash — salohiyat va cheklovlar

Hozirda Aptos mainnet’ini ishga tushirgan ilk va yagona yirik Move asosidagi L1 blokcheynidir. Shu bois Aptos mainnet’ining ishga tushirilishi nihoyatda ramziy voqea hisoblanadi; Aptos jalb qilgan mablag‘ va OAV e’tibori uning o‘ziga xos texnik yangilik darajasiga mutanosib bo‘lishi shart emas.

Yuqorida aytib o‘tilganidek, Aptosning asosiy texnik yangiligi — uning Block-STM parallel bajarish mexanizmi. Konsensus mexanizmi va Move tilidan foydalanish kabi boshqa texnik jihatlarning aksariyati Meta’dan meros bo‘lib qolgan eski yechimlarning biroz yaxshilangan ko‘rinishidir [14]. Block-STM parallel bajarish mexanizmi haqida gap ketganda, Aptos va Solanadagi foydalanuvchi tajribasi o‘rtasida sifat jihatidan farq paydo bo‘lishi noma’lum; agar foydalanuvchi tajribasi bir xil bo‘lsa, foydalanuvchiga bu texnik darajada qanday amalga oshirilgani qiziq bo‘lmaydi.

Har qanday infratuzilma loyihasi kabi, Aptosning uzoq muddatli muvaffaqiyati ham loyihalar undan foydalanib nimalar qurishni tanlashiga bog‘liq. Hozirda uning ekotizimidagi Liquidswap DEX, Topaz NFT bozori va Aptos Names domen xizmati kabi loyihalar har qanday blokcheyn ekotizimi uchun zarur bo‘lsa-da, Aptos dizayni uchun yetarlicha noyob emas [15]. Bu loyihalar kichik qishloqdagi oziq-ovqat do‘koni, maktab va shifoxonaga o‘xshaydi. Ular qishloq hayoti uchun zarur, ammo qishloqqa boshqa hech bir qishloqda uchramaydigan o‘ziga xoslik baxsh etmaydi.

O‘tmishga nazar tashlasak, Solana muvaffaqiyatining bir qismi Solananing parallelizm afzalligidan amalda foydalana olgan StepN kabi loyihalar bilan bog‘liq bo‘lishi mumkin. Bunday GameFi va SocialFi loyihalarida ko‘pincha bir-biridan nisbatan mustaqil bo‘lgan katta hajmdagi parallel ma’lumotlar bo‘ladi. Shu bois bu ilovalar Aptos va Solana kabi parallel bajarish mexanizmlariga juda mos keladi, shu bilan birga ko‘plab iste’molchilarni va katta tranzaksiya hajmini jalb qila oladi. Darhaqiqat, bir paytlar Solananing komissiya to‘lovchi foydalanuvchilarining taxminan 20 foizi faqat StepN hissasiga to‘g‘ri kelgan [16].

Demak, Aptos infratuzilma loyihasi sifatida muvaffaqiyat qozonishi uchun uning parallel bajarish mexanizmidan katta foyda oladigan va Ethereum’da, hatto Solana’da ham amalga oshirib bo‘lmaydigan noyob loyihalar majmuasi kerak. Aptosning yangi Block-STM dizayni bilan bular foydalanuvchilar kichik guruhlarda (masalan, guruh chatlarida) muloqot qiladigan yangi turdagi SocialFi loyihalari shaklida yuzaga kelishi mumkin. Bu guruhlar o‘zgaruvchan va moslashuvchan bo‘lishi, shu bilan birga bir-biridan qisman mustaqil qolishi mumkinligi sababli, ular Solana yoki Ethereum’nikiga qaraganda Aptosning parallel bajarish mexanizmiga ancha mos keladi. Albatta, bu shunchaki mavhum taxmin.

Shunga qaramay, Aptos mainnet’ining ishga tushirilishi kripto olamida hamon nihoyatda muhim va ramziy voqeadir. Bu Meta muhandislarining Ethereum’ning masshtablanuvchanlikdagi to‘siqlarini bartaraf etish uchun sifat jihatidan boshqacha yondashuv yaratish yo‘lida yillar davomida olib borgan sa’y-harakatlarining yakunidir. Move tilining o‘ziga xos xususiyatlari tufayli ayrim DApp’larni Solidity yoki boshqa smart-kontrakt tillarida emas, aynan Move’da yaratish ancha ma’qul bo‘lishi muqarrar. Ammo bu loyihalar albatta Aptos ekotizimida yaratiladimi? Buni hech kim bilmaydi. Move’ni amaliyotga birinchilardan bo‘lib joriy qilgani va o‘z nomini Move tili bilan bog‘lagani Aptosga ilk harakat qiluvchi ustunliklarini berishi mumkin. Biroq ayni paytda u MySpace kabi ilk harakat qiluvchining taqdiriga ham duch kelishi mumkin.

Hech bo‘lmaganda bir narsa aniq: Aptos bozorning Move bilan bog‘liq ilk tajribasi bo‘lishi mumkin, ammo, shubhasiz, oxirgisi bo‘lmaydi [17].

🐦 @0xfishylosopher

📅 2022-yil 22-oktabr

Ogohlantirish: Ushbu tadqiqot faqat ma’lumot berish maqsadida tayyorlangan. U investitsiya bo‘yicha maslahat yoki biror investitsiyani sotib olish yoxud sotish tavsiyasi emas va investitsiya qarorining maqsadga muvofiqligini baholashda foydalanilmasligi kerak.

Manbalar

[1] Aptos Labs bosh sahifasiga qarang: https://aptoslabs.com/

[2] Solana bilan tanishuv: https://www.forbes.com/advisor/investing/cryptocurrency/what-is-solana/

[3] Move tili bo‘yicha oq qog‘oz: https://diem-developers-components.netlify.app/papers/diem-move-a-language-with-programmable-resources/2020-05-26.pdf

[4] Struct va resurslar bo‘yicha Move dasturchilari hujjatlari: https://github.com/move-language/move/blob/main/language/documentation/book/src/structs-and-resources.md

[5] Struct imkoniyatlari haqida batafsil: https://move-language.github.io/move/abilities.html

[6] Move tili qo‘llanmasiga qarang: https://101blockchains.com/move-programming-language-tutorial/

[7] https://blog.chain.link/reentrancy-attacks-and-the-dao-hack/

[8] Vizantiya xatolariga bardoshlilik haqida batafsil: https://decrypt.co/resources/byzantine-fault-tolerance-what-is-it-explained

[9] HotStuff konsensus modeli: https://hackernoon.com/hotstuff-the-consensus-protocol-behind-safestake-and-facebooks-librabft

[10] AptosBFT konsensusi: https://blog.pontem.network/aptosbft-all-you-need-to-know-about-the-bft-consensus-in-aptos-ff4cf22c7a80

[11] Block-STM texnik maqolasiga qarang: https://arxiv.org/abs/2203.06871

[12] Aptos va Solana bajarish mexanizmlarining taqqoslanishi: https://www.gofyeo.com/post/aptos-vs-solana-a-technical-comparison-part-1

[13] Aptosning eng yomon holat tahlili O(n²), Solananiki esa O(n⁴) sifatida berilgan. Batafsil: https://antiape.substack.com/p/cf40447d-d674-4454-9e09-f003517de6de?s=r

[14] Aptos oq qog‘oziga qarang: https://aptos.dev/assets/files/Aptos-Whitepaper-47099b4b907b432f81fc0effd34f3b6a.pdf

[15] Aptos ekotizimi: https://coinmarketcap.com/alexandria/article/what-is-aptos-the-ultimate-guide-to-the-aptos-ecosystem

[16] Messari Crypto’ning Twitter sahifasidan: https://twitter.com/MessariCrypto/status/1567880625218019333

[17] Move asosidagi yana bir til — Sui haqida qarang: https://sui.io/