اخبار ارز دیجیتال

Vyper، Solidity و Scrypto: مقایسه زبان‌های قرارداد هوشمند

بیایید نگاهی به سه زبان برنامه نویسی مختلف برای شبکه های بلاک چین و مقایسه آنها بیندازیم.

شبکه اتریوم قراردادهای هوشمند را به فضای بلاک چین آورد و مفاهیمی مانند تامین مالی غیرمتمرکز (DeFi) را فعال کرد.

قراردادهای هوشمند می توانند به طور خودکار فرآیندها را در صورت رعایت شرایط خاص اجرا کنند. همراه با این فناوری جدید زبان کدگذاری جدیدی به نام Solidity توسعه یافت.

با ادامه رشد صنعت بلاک چین و ظهور شبکه های بلاک چین جدید، زبان های برنامه نویسی اضافی به ویژه Vyper و Scrypto وارد فضا می شوند.

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

استحکام چیست

Solidity یک زبان برنامه نویسی سطح بالا شی گرا برای ایجاد قراردادهای هوشمند بر روی بلاک چین اتریوم و سایر شبکه های بلاک چین مانند BNB Smart Chain و Avalanche است. این زبان در سال ۲۰۱۴ توسعه یافت و شباهت هایی با زبان های برنامه نویسی مانند جاوا اسکریپت، سی پلاس پلاس و پایتون دارد.

از آنجایی که Solidity یک زبان سطح بالا است، کدهای کامپیوتری به روشی قابل خواندن توسط انسان وارد می شود، نه ۱ و ۰. به عنوان مثال، کد Solidity شامل کلمات و عباراتی مانند “عملکرد” ​​و “قرارداد”، پرانتز و اعداد است.

یک زبان برنامه نویسی شی گرا به این معنی است که Solidity حول استفاده از “اشیاء” می چرخد. این قطعه کدی است که می توان از آن برای ایجاد کد مشابه بدون نیاز به بازنویسی کد اصلی هر بار استفاده مجدد کرد.

Solidity همچنین از یک کامپایلر برای تبدیل کدهای سطح بالا قابل خواندن توسط انسان به کد قابل خواندن توسط ماشین استفاده می کند که روی ماشین مجازی اتریوم (EVM) اجرا می شود.

Viper چیست؟

Vyper یک زبان برنامه نویسی پایتونیک قرارداد محور برای قراردادهای هوشمند است که برای استفاده با EVM طراحی شده است. این زبان برای بهبود Solidity با بهبود امنیت و خوانایی کد طراحی شده است. Vyper روی قابلیت شنیدن کد تمرکز می کند. بنابراین یکی از اصول آن این است که تا حد ممکن کد Vyper را خوانا کند.

Vyper همچنین قصد دارد نوشتن کدهای گمراه کننده را تا حد امکان برای هر کسی دشوار کند. سادگی برای خواننده (یعنی حسابرس) مهمتر از سادگی برای نویسنده (یعنی توسعه دهنده) است. این کار شناسایی کدهای مخرب در قراردادهای هوشمند یا برنامه های غیرمتمرکز (DApps) را آسان تر می کند.

اسکریپت چیست؟

Scrypto یک زبان قرارداد هوشمند دارایی محور است. این زبان توسط Radix توسعه داده شده است و بر اساس Rust ساخته شده است و بسیاری از ویژگی های Rust را حفظ می کند و در عین حال عملکردها و نحو خاصی را برای Radix Engine v2 اضافه می کند. Scrypto دارایی گرا است، بنابراین می توانید با دارایی هایی مانند توکن ها که نوعی منبع در زبان هستند تعامل داشته باشید.

در زبان های کدنویسی مانند Solidity، توکن های ERC-20 به عنوان قراردادهای هوشمند در EVM وجود دارند. دارایی ها در Scrypto منابعی هستند که در کانتینرها و خزانه ها زندگی می کنند. به عبارت ساده، مانند این است که سکه ها (دارایی) را در یک سطل (ظروف) قرار داده و در یک قلک (گاوصندوق) ذخیره کنید.

اخیراً: با بلوغ صنعت، تقاضا برای استعدادهای کریپتو کمتر به بازار وابسته است

Scrypto همچنین بر سهولت استفاده برای توسعه‌دهندگان تمرکز می‌کند و به آنها اجازه می‌دهد در حین تعامل با کانتینرها و منابع، فقط کد مورد نیاز خود را بنویسند تا عملکرد را در DApp‌های خود فعال کنند. من اینجا هستم. امنیت اصل دیگری است که به توسعه دهندگان اجازه می دهد به جای دادن مجوزهای عمومی دستورالعمل های خاصی را به DApps بدهند.

مقایسه زبان های قرارداد هوشمند

Solidity با پشتیبانی از شبکه های بلاک چین اصلی مانند اتریوم دارای طیف گسترده ای از منابع یادگیری آنلاین و پشتیبانی اجتماعی زیادی است. Solidity همچنین دارای طیف گسترده ای از ویژگی های برگرفته از برنامه نویسی شی گرا (OOP) است که باعث می شود در صورت بروز مشکل، عیب یابی آن را ماژولار و آسان تر کند. به عنوان مثال، اگر یک شی از یک کلاس خاص خراب شود، می توان آن را به منشاء آن کلاس ردیابی کرد.

این کار می کند زیرا Solidity از کپسولاسیون استفاده می کند. به عبارت دیگر، همه اشیا مستقل هستند و هر تابع به طور مستقل کار می کند. ماژولار بودن زبان برنامه نویسی همچنین به توسعه دهندگان این امکان را می دهد که با چندین شیء به طور همزمان کار کنند و ساخت، اصلاح و استقرار قراردادهای هوشمند را کارآمدتر می کند.

Vyper یک زبان برنامه نویسی ساده تر از Solidity است که بر شفافیت، سادگی ساختار زبان و قابل شنیدن بودن تأکید دارد. Vyper همچنین دارای ویژگی های کمتری نسبت به Solidity است که به دلایل امنیتی عمدی انجام شده است. مجموعه ویژگی های محدود، تعداد آسیب پذیری هایی را که مهاجمان مخرب می توانند از آنها سوء استفاده کنند، کاهش می دهد.

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

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

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

آدام سیمونز، مدیر ارشد استراتژی در RDX Works، توسعه دهنده Radix، به Cointelegraph گفت: این فقط در مورد ساده‌تر کردن زبان نیست، بلکه در مورد ساخت ابزارهای توسعه‌دهنده بصری و ایمن است. ”

“در اوج خود، DeFi تنها در دو سال به بیش از ۲۰۰ میلیارد دلار در TVL افزایش یافته است. واضح است که سطح تقاضای بسیار بالایی وجود دارد. این تعداد فقط دو برابر شده است و مجموع را به حدود ۱۹۰۰۰ نفر رسانده است (از حدود ۳۰ میلیون توسعه دهنده در سراسر جهان). )”

علیرغم رشد بالا در امور مالی غیرمتمرکز، تعداد توسعه دهندگان آنقدر رشد نکرده است که بتواند با تقاضا همگام شود. سیمونز معتقد است که توسعه دهندگان ممکن است Solidity را برای انتقال به توسعه بلاک چین بسیار دشوار یافته باشند.

توسعه دهندگان در تمرکز بر روی Web3 مردد هستند زیرا Solidity دارای منحنی یادگیری شدید و خطرات امنیتی بالایی است. میلیون ها دلار صرف توسعه دهندگان با استعداد و ممیزی های امنیتی می شود. DeFi هنوز هم از طریق هک و سوء استفاده از پول زیادی استفاده می کند و این به تنهایی است. به اندازه ای است که توسعه دهندگان را از ورود به فضا منصرف کند.»

“با زبان‌ها و ابزارهای مناسب، توسعه‌دهندگان می‌توانند کل صنایع را بسیار سریع‌تر رشد دهند. همانطور که موتورهای بازی ابزارهایی را در اختیار توسعه‌دهندگان قرار دادند تا در دهه ۹۰ انقلابی در ساخت بازی‌های ویدیویی ایجاد کنند، زبان‌ها و ابزارهای مناسب Web3 به توسعه‌دهندگان این امکان را می‌دهد تا رشد را تسریع کنند. سیمونز اضافه کرد.

Scrypto همچنین بر امنیت، سادگی و سهولت استفاده تمرکز دارد. تراکنش های رمزنگاری متمرکز بر دارایی هستند. آنها نحوه توزیع منابع سیستم توسط کاربران را تعریف می کنند. همچنین ممکن است نشان دهد که کاربر یا مؤلفه دیگری از یک تراکنش چند جزئی چگونه منبع برگشتی را مدیریت می کند.

تراکنش‌های روی اتریوم معمولاً فراخوانی به قراردادهای هوشمند هستند (زیرا DAppها و توکن‌های موجود در اتریوم قراردادهای هوشمند هستند). در مقابل، تراکنش ها در Scrypto شامل جابجایی دارایی ها از یک جزء به جزء دیگر است.

به عنوان مثال، اگر کاربر A بخواهد ۱۰ توکن سفارشی را برای کاربر B ارسال کند، تراکنش کاربر B نشان می دهد که کاربر B در تلاش است تا ۱۰ توکن را از خزانه حاوی آن بازیابی کند. این تراکنش همچنین ارسال آن توکن ها را به روش واریز جزء حساب کاربر B نشان می دهد. یک سطل (کانتینر) برای انتقال توکن از کاربر A به کاربر B استفاده می شود، زیرا منبع (در این مورد نشانه) باید در جایی قرار گیرد.

در مثال بالا، کاربر به جای فراخوانی قرارداد هوشمند نشانه، سطل حاوی منبع (توکن ها) را به روش سپرده کاربر دوم منتقل می کند. تعامل با DApps نیز به همین صورت عمل می کند، به طوری که کاربران یک توکن را از حساب خود برداشته و آن را به مؤلفه مربوطه ای که می خواهند با آن تعامل داشته باشند، ارسال می کنند. به طور خلاصه، Scrypto یک رویکرد مبتنی بر دارایی را اتخاذ می کند، که در آن کاربران دارایی های واقعی را ذخیره و ارسال می کنند. رویکرد مبتنی بر دارایی همچنین کدنویسی DApps را برای توسعه‌دهندگان آسان‌تر می‌کند، زیرا تعامل با توکن‌ها (منابع)، استخرهای توکن (طاقچه‌ها) و کاربران (کامپوننت‌ها) را تسهیل می‌کند.

به عنوان مثال دیگر، اگر یک DApp مبادله (مانند Uniswap) در Scrypto کدگذاری شده باشد، توسعه دهنده فقط باید نحوه معامله مبادله را کدنویسی کند. ابتدا، DEX باید محفظه دریافت کننده رمز A کاربر را شناسایی کند، سپس نرخ مبادله را محاسبه کند. سپس توکن های دریافتی اعتبار داده می شوند و DEX مقدار صحیح توکن B را برای کاربر ارسال می کند.

یک توسعه دهنده بلاک چین باید کدام زبان برنامه نویسی را انتخاب کند؟

توسعه دهندگان می توانند از زبان های برنامه نویسی سنتی (C++، پایتون، جاوا اسکریپت) برای توسعه بلاک چین و همچنین راه حل های ویژه ساخته شده مانند Solidity، Vyper و Scrypto استفاده کنند. چندین زبان برنامه نویسی برای فضای بلاک چین مفید هستند زیرا ابزارهای مختلفی را ارائه می دهند که توسعه دهندگان می توانند از آنها استفاده کنند.

برای مثال، توسعه دهندگان آشنا با C++، جاوا اسکریپت و پایتون ممکن است Solidity را جذاب بدانند. توسعه دهندگان آشنا با Python ممکن است به سمت Vyper جذب شوند، در حالی که کسانی که با Rust آشنا هستند ممکن است از زبان Scrypto استفاده کنند.

اخیراً: توکن‌های اجتماعی موتور Web3 خواهند بود، از پایگاه‌های هواداران تا مشوق‌ها

سیمونز موافقت کرد و به کوین تلگراف گفت: از آنجایی که این زبان‌ها با توسعه‌دهندگان متناسب با محصول و بازار می‌شوند و مهم‌تر از همه، این برنامه‌نویس‌ها را قادر می‌سازند تا اپلیکیشن‌های قدرتمند، راحت و ایمن را بسازند، صنعت به سمت آن‌هایی که بهترین نتایج را ارائه می‌کنند جذب خواهد شد. ”

Solidity یک انتخاب طبیعی برای توسعه دهندگانی است که می خواهند روی اتریوم و شبکه های بلاک چین مشابه کار کنند. در همان زمان، Vyper و Scrypto احتمالا توسعه دهندگانی را که سادگی و امنیت بیشتر را ترجیح می دهند، جذب می کنند. Scrypto همچنین ممکن است توسط توسعه دهندگان به دلیل سادگی بهبود یافته و رویکرد دارایی محور آن ترجیح داده شود.

نویسنده: Anthony Clarke

به این مطلب چه امتیازی می‌دهید؟

میانگین امتیارها ۰ / ۵. مجموع آرا: ۰

دیدگاهتان را بنویسید

دکمه بازگشت به بالا