راهنمای جامع برای رضایت توسعه دهندگان (قسمت 1)

EVM vs SmartWeave: A comprehensive guide for consenting developers (Part 1)
Upland: برلین اینجاست!

برای توسعه‌دهندگانی که تجارت خود را در محیطی که به سرعت در حال مقیاس‌پذیری است و دارای بلاک چین است، انجام می‌دهند، تصمیم‌گیری در مورد رویکرد صحیح برای اجرای قرارداد هوشمند بسیار مهم است.

در این مقاله، اعتبارنامه EVM (ماشین مجازی اتریوم) و SmartWeave را به عنوان دو گزینه متمایز برای توسعه دهندگان بررسی می کنم. افشای کامل، ما در حال غواصی عمیق هستیم! قبل از شروع، در اینجا یک جدول مقایسه وجود دارد تا درک هر دو محیط اجرا را به شما ارائه دهد:

ملاحظات کلیدی برای استفاده از EVM

EVM که در ابتدا توسط اتریوم پیاده‌سازی شد، اکنون گزینه‌ای برای اکثر پلتفرم‌های قرارداد هوشمند است که به Avalanche، BNB Chain و L2 مانند Arbitrum، Optimism و موارد دیگر گسترش می‌یابد. استفاده از EVM مستلزم دانش Solidity است که می‌توان آن را به عنوان پاسخ بلاک چین به جاوا اسکریپت توصیف کرد. Solidity به عنوان زبان EVM به عنوان زبان برنامه نویسی واقعی برای قراردادهای هوشمند در شبکه های توزیع شده ظاهر شده است و آن را به زبان کامپیوتری برای توسعه دهندگان در فضای بلاک چین تبدیل کرده است.

در حالی که Solidity ساختار و نحو منحصر به فردی دارد که می تواند برای کسانی که به توسعه Web3 فکر می کنند چالش برانگیز باشد، همچنان هجوم زیادی از یادگیرندگان جدید را جذب می کند. علاوه بر این، EVM دارای اکوسیستم وسیعی از منابع، ابزارها، مواد آموزشی و توسعه دهندگان مشتاق است.

اگرچه EVM به طور گسترده به عنوان چارچوب استاندارد طلایی برای ساخت برنامه‌های غیرمتمرکز در نظر گرفته می‌شود، اما دارای پارامترهای محدودکننده سخت‌گیرانه‌ای است که توسعه‌دهندگان تازه‌یافته باید یاد بگیرند که در آن کار کنند. توانایی یک توسعه‌دهنده ارشد Solidity برای بهینه‌سازی کد برای محدودیت‌های محاسباتی دقیق (به شکل محدودیت‌های گاز) آن‌ها را از توسعه‌دهنده‌های تازه خارج از آکادمی نوع متمایز می‌کند. نقطه ضعف این مدل این است که تاکید زیادی بر فضای بلوک دارد که می تواند به یک مرکز بسیار گران تبدیل شود.

علاوه بر این، نیاز به همگام‌سازی محاسبات مبتنی بر توافق در هر بلوک، لایه‌ای از پیچیدگی را به طراحی EVM می‌افزاید و به‌عنوان یک مانع مهم برای تلاش‌های مقیاس‌بندی عمل می‌کند، به ویژه با توجه به ارزیابی متوالی همه تعاملات قراردادهای هوشمند.

یک نکته قابل توجه شامل مدل ذخیره سازی منحصر به فرد در ماشین مجازی اتریوم است. در اکثر زبان های برنامه نویسی، درک نمایش داده های سطح پایین بسیار مهم نیست، اما Solidity از این هنجار منحرف می شود. با توجه به هزینه قابل توجه دسترسی به ذخیره سازی در شبکه های مبتنی بر اتریوم، داشتن درک محکمی از نحوه نمایش انواع داده ضروری است. مدل ذخیره سازی مشترک جهانی در همه قراردادها، صرف نظر از تعامل آنها، چالش هایی را به همراه دارد.

این طرح ناکارآمدی‌ها را معرفی می‌کند، قراردادها را مجبور می‌کند از طریق داده‌های اضافی عبور کنند، زمان معاملات را کاهش می‌دهد و هزینه‌های محاسباتی غیرضروری را متحمل می‌شود. این هزینه ها به افزایش بار مالی برای ذخیره داده ها در پلت فرم کمک می کند و بر توسعه دهندگان و کاربران تأثیر می گذارد. علاوه بر این، ماهیت اشتراکی ذخیره سازی می تواند به طور ناخواسته خطاها یا آسیب پذیری های کدگذاری را تقویت کند و منجر به عواقب ناخواسته برای قراردادهای غیرمرتبط و افزایش بالقوه هزینه های اصلاح شود.

معرفی SmartWeave

در طرف دیگر راهرو، SmartWeave یک الگو برای ارزیابی حالت های قرارداد هوشمند در یک لایه داده تغییرناپذیر مانند Arweave است. ارزش پیشنهادی متمایز SmartWeave دارای پتانسیل گسترده ای برای افزایش ایجاد dApp های بسیار کارآمد برای مجموعه ای از موارد استفاده خاص است – به عنوان یک چارچوب مکمل برای پر کردن شکافی که EVM کوتاهی می کند. از آنجا که یک لایه داده محاسبات دلخواه را انجام نمی دهد، مسئولیت ارزیابی وضعیت قرارداد فعلی را با استفاده از “ارزیابی تنبل” بر عهده تماس گیرنده می گذارد.

برای ارزیابی “تنبلی” وضعیت فعلی یک قرارداد، تماس‌گیرنده تمام تعاملات قرارداد (تراکنش‌های Arweave) را از زمان شروع قرارداد تا کنون تأیید و اجرا می‌کند و وضعیت فعلی قرارداد را از ابتدا بازتولید می‌کند.

در اصل، قراردادهای هوشمند Arweave شامل مجموعه ای منظم از اقدامات (C, I, Ts) است که «C» بخشی حاوی کد قرارداد، «I» کسری حاوی حالت اولیه و «T» یک قسمت است. توالی معاملاتی که با قرارداد تعامل دارند. هنگامی که مشتری وضعیت را ارزیابی می کند، از کد C، حالت اولیه از I استفاده می کند و هر تراکنش را پس از آن (به شرط معتبر بودن) بر اساس کد قرارداد اعمال می کند. فهمیدم؟ خوب! در اینجا یک نمای کلی بصری از معماری برای کمک به تبلور مفهوم است:

SmartWeave یک معماری با هدف ایجاد یک موتور قرارداد هوشمند قابل اعتماد، سریع و آماده تولید در Arweave است. محبوب ترین پیاده سازی آن، Warp Contracts، بر تحقق این هدف متمرکز است. Warp به دلیل توانایی آن در غلبه بر برخی از مهم ترین موانع مرتبط با اجرای پیش فرض پروتکل SmartWeave، اغلب به عنوان “قراردادهای SmartWeave بر روی استروئیدها” توصیف می شود.

این موانع عبارتند از فقدان حافظه پنهان که منجر به عملکرد پایین می شود، عدم وجود یک دروازه تراکنش قابل اعتماد SmartWeave و ناتوانی در تضمین امنیت قرارداد و قطعیت. علاوه بر عملکرد اصلی خود، Warp SDK شامل یک لایه کش با تنظیم دقیق است که کارایی ارزیابی تنبل را تا حد زیادی افزایش می دهد.

این پشته همچنین شامل روش‌های استقرار و نگهداری کاربر پسند، پلاگین‌های قابل تنظیم است که به کاربران اجازه می‌دهد SDK را در هر جهتی که می‌خواهند گسترش دهند، یک کاوشگر قرارداد هوشمند اختصاصی، مجموعه‌ای از گره‌ها برای اجرای برون‌سپاری و چندین ویژگی ضروری دیگر. تیم اصلی Warp مجموعه ای از پلاگین های اختصاصی از جمله ابزار قابل حمل EVM، پشتیبانی کیف پول EVM، پشتیبانی بومی EtherJS در محیط SmartWeave و موارد دیگر ایجاد کرده است. در حال حاضر، Warp از زبان های JavaScript/TypeScript و WASM با پشتیبانی Rust پشتیبانی می کند.

تمایز EVM از SmartWeave Architecture

امنیت EVM ذاتاً به فناوری اجماع بلاکچین زیربنایی آن مرتبط است. به همین ترتیب، SmartWeave همچنین به امنیت و نهایی بودن بلاک چین Arweave بستگی دارد که با گنجاندن بلوک های نهایی شده با استفاده از پروتکل SPoRa (اثبات مختصر دسترسی تصادفی) به دست می آید.

با ساختار طراحی، EVM بازار هزینه را در پروتکل اصلی پیاده‌سازی می‌کند. طرح کارمزد بازار از مکانیزم حراج قیمت اول برای تعیین کارمزد تراکنش استفاده می کند، جایی که بالاترین قیمت پیشنهاد دهنده ابتدا تراکنش خود را پردازش می کند. چالش‌های مرتبط با مقیاس‌پذیری شبکه به‌ویژه در دوره‌های تقاضای بالا آشکار می‌شوند، همانطور که در طراحی بازار جهانی ماشین مجازی اتریوم دیده می‌شود.

به عنوان مثال، هنگامی که یک قرارداد فردی فعالیت قابل توجهی را تجربه می کند، مانند ضرابخانه NFT مورد انتظار، به طور ناخواسته با افزایش هزینه های تراکنش بر همه کاربران شبکه تأثیر می گذارد، حتی برای کسانی که مستقیماً درگیر فعالیت های پرتقاضا نیستند.

Arweave یک رویکرد جایگزین برای بازار هزینه های سنتی با استفاده از یک پاداش واحد و ریشه مرکل برای همه داده ها به نام وقف پیشنهاد می کند. افزودن داده‌های جدید به سیستم درخت merkle را به‌روزرسانی می‌کند و توکن‌های $AR را به استخر پاداش اضافه می‌کند بدون اینکه باعث افزایش سربار محاسباتی شود. برای رسیدگی به گلوگاه پردازش پرداخت ها برای ذخیره سازی داده ها، Arweave از سیستم بسته های بازگشتی برای تسویه تراکنش های متعدد در یک پرداخت واحد در شبکه استفاده می کند.

در نهایت، این می‌تواند به درخت‌هایی با عمق بی‌نهایت منجر شود که امکان جذب تمام داده‌های وب را در یک تراکنش واحد فراهم می‌کند و نیاز به بازارهای کارمزد را از بین می‌برد. سیستم تراکنش‌های Arweave به کاربران اجازه می‌دهد تا تراکنش‌ها را بدون کارمزد گنجاندن بلوک انجام دهند، در نتیجه هزینه‌های ذخیره‌سازی تنها هزینه برای اجرای تراکنش‌ها بدون توجه به سمت تقاضا است.

SmartWeave آرایه‌ای از تراکنش‌های Arweave است که از نبود بازار کارمزد برای گنجاندن بلوک تراکنش سود می‌برد. این ویژگی منحصر به فرد اجازه می دهد تا داده های تراکنش نامحدود بدون هزینه اضافی فراتر از هزینه های ذخیره سازی. علاوه بر این، طراحی پایان باز SmartWeave به توسعه دهندگان این امکان را می دهد که منطق را به هر زبان برنامه نویسی بنویسند و جایگزینی تازه برای پایگاه کد Solidity اغلب سفت و سخت ارائه می دهد.

قسمت 2 فردا منتشر می شود که شامل موارد زیر است:

  • اجرای تنبل: یک دیدگاه جایگزین
  • ارزیابی مناسب بودن EVM و SmartWeave
  • SmartWeave Market Fit

پست مهمان توسط: Jakub Wojciechowski، مدیرعامل و موسس Warp Contracts و RedStone