
ترکیبپذیری (Composability) یا قابلیت ترکیب، مفهومی است که بسیاری از توسعهدهندگان وب ۲ با آن آشنا هستند. ترکیب پذیری یعنی ساخت ترکیبهای نرمافزاری با قابلیت استفاده مجدد که بتوان آنها را برای ساخت برنامههای کاربردی جدید نیز استفاده کرد. منشا ترکیب پذیری به فناوری متنباز برمیگردد و عامل بسیار مهمی در رشد اولیه اینترنت محسوب میشود. علاوه بر وب ۲، وب ۳ یا نسل سوم وب نیز برای تولید ارزش و نوآوری به ترکیب پذیری نیاز دارد. در این مقاله از میهن بلاک چین، مفهوم، مزایا و کاربرد ترکیب پذیری در وب ۳ را بررسی خواهیم کرد.
ترکیب پذیری چیست؟
در زمینه توسعه اپلیکیشن، ترکیب پذیری به «قابلیت ترکیب اجزای موجود و استفاده از آن در تولید محصولات جدید» اشاره دارد. در یک ساختار ترکیبپذیر، هر جزء یا مولفه استفاده ویژهای دارد. توسعهدهندگان میتوانند با ترکیب این اجزا و اضافهکردن کاراییهای جدید، برنامههای جدید بسازند. در این صورت نیازی نیست که توسعهدهنده، کل ساختار برنامه را دوباره از اول بسازد.
همانطور که قبلتر اشاره شد، ترکیب پذیری یکی از ویژگیهای اصلی فناوری متنباز است. توسعهدهندگان میتوانند بدون ترس و نگرانی درباره مسائل قانونی یا نقض حقوق، از نرمافزارهای متنبازی که توسط دیگران تولید شده است، در محصولات خود استفاده کنند.
توسعههای اولیه اینترنت نیز بر اساس همین ایده دسترسی جمعی به فناوری بود؛ اما شرکتهای بزرگ و غولهای فناوری دنیا، برای حفظ منافع خود، استفاده از ترکیب پذیری را بهحداقل رساندهاند. شرکتهایی مثل گوگل، فیسبوک و آمازون با روشهای مختلفی از نرمافزارهایشان حفاظت میکنند. آنها از ثبت اختراع و الگو استفاده میکنند، از دادههایشان محافظت کرده و یا به صورت عمدی از فناوریهای ناسازگار در محصولاتشان استفاده میکنند.
علاوه بر اینها، شرکتهای وب ۲ کاربران را بهنوعی در پلتفرمها حبس میکنند و با وضع هزینههای بالا، امکان استفاده از پلتفرمهای رقیب را به آنها نمیدهند. در نتیجه، یک سیستم ناهماهنگ تشکیل شده است که اجزای آن نمیتوانند برای تولید ارزش بیشتر، ترکیب شده و همکاری کنند.
اهمیت ترکیب پذیری در تکنولوژی بلاک چین
رشد انفجاری فناوری غیرمتمرکز یا نسل سوم وب، توجه افراد را به مفهوم ترکیب پذیری جلب کرده است. همانند فناوریهای متنباز، اپلیکیشنهای بلاکچینی نیز قابلیت همکاری بالایی دارند و میتوانند با استفاده از پایگاههای داده موجود، تجربههای جدیدی را برای کاربران ایجاد کنند.
در حوزه وب ۳، ترکیب پذیری به قابلیت برنامههای بلاک چینی در ارتباط و همکاری با یکدیگر اشاره دارد. صرافیهای غیرمتمرکز (DEX)، برنامههای غرمتمرکز (DApps) و سازهای مستقل غیرمتمرکز (DAOs) مثالهایی از برنامههای بلاک چینی هستند.
ترکیب پذیری در تکنولوژی بلاک چین به این معناست که توسعهدهندگان میتوانند آزادانه از کدهای برنامههای دیگر در محصولات خود استفاده کنند. به همین دلیل قراردادهای هوشمند که عملکرد برنامهها را کنترل میکنند، متنباز و برای عموم قابلاستفاده هستند.
ترکیب پذیری در تکنولوژی بلاک چین، چرخه موردنیاز برای توسعه برنامههای غیرمتمرکز را کاهش میدهد. قبلا توسعهدهندگان باید تک تک ویژگیهای یک برنامه را از ابتدا میساختند. بهلطف قابلیت ترکیبپذیری، توسعهدهندگان میتوانند از کدهای برنامه موجود، برای ساخت اپلیکیشنهای جدید استفاده کرده و زمان صرفشده برای نوشتن کدهای طولانی را به حداقل برسانند.
یکی از حوزههای فناوری بلاک چین که نرمافزارهای ترکیبپذیر در آن استفاده میشود، امور مالی غیرمتمرکز یا دیفای (DeFi) است. برای مثال، سوشی سواپ (SushiSwap) صرافی غیرمتمرکز خود را با کپیکردن از کدهای کدبیس یونی سواپ (uniswap) و اضافهکردن چند ویژگی جدید مانند توکن حاکمیتی و استخراج نقدینگی ساخته است. ترکیب پذیری در حوزه وب ۳ نیز استفاده زیادی دارد که در بخش بعدی مقاله به آن میپردازیم.
کاربرد ترکیب پذیری در وب ۳
زمانی که عناصر متمایز یک سیستم امکان ترکیب با یکدیگر را داشته باشند، قابلیت ترکیب پذیری میتواند یک سیستم تعاملی یکپارچه ایجاد کند. اجزای تکنولوژی بلاک چین مانند DAppها، DEXها و DAOها، ذاتا ترکیبپذیر هستند و امکان تولید دوباره، کپی یا ادغام آنها وجود دارد.
ترکیب پذیری بلاک چین معمولا در سطح پروژه یا قرارداد هوشمند رخ میدهد. در این صورت توسعهدهندگان میتوانند با ترکیب اجزای قدرتمند، برنامههای جدید طراحی کرده و امکانات بیشتری را برای کاربران فراهم کنند.
ترکیب پذیری ساختاری (Syntactic Composability)
ترکیب پذیری ساختاری یعنی اجزای مختلف به نحوی در کنارهم قرار بگیرند که ترکیب آنها، به تولید سیستمهای کاملا جدید منجر شود. بر اساس این مقاله از سایت Ionic، ترکیب پذیری نحوی شامل ۳ بخش زیر است:
ماژولار بودن (Modularity): در یک ساختار ترکیبپذیر، هر جزء باید یک مسئله و مشکل خاص را بهخوبی حل کند. در این صورت توسعهدهندگان میتوانند اجزای ماژولار مختلف را به نحوی در یک محصول ترکیب کنند که هر جزء، یک وظیفه جداگانه داشته باشد.
خودمختاری یا خودگردانی (Autonomy): اجزای یک ساختار ترکیبپذیر باید بتوانند بهطور مستقل کار کنند و عملکرد آنها به اجزای دیگر وابسته نباشد. با وجود این ویژگی، هر عنصری را میتوان بدون اثرگذاری بر کل ساختار، تغییر داد.
قابلیت کشف (Discoverability): ترکیب پذیری امکان استفاده مجدد از چهارچوبهای نرمافزاری و پایگاههای داده را برای توسعهدهندگان فراهم میکند. البته این چهارچوبها و پایگاهها، باید قابلکشف و استفاده برای دیگران باشند. در واقع کدها باید متنباز باشند تا بتوان بدون محدودیت، از آنها استفاده کرده یا آنها را تغییر داد.
یکی از بهترین مثالهای ترکیبپذیری ساختاری در فناوری بلاک چین، اتریوم است: قراردادهای هوشمند اتریوم همانند اجزایی هستند که هر کسی میتواند بارها از آنها استفاده کند. یعنی توسعهدهندگان میتوانند از کد قرارداد پایه، مجددا برای ایجاد زیرساخت اصلی DAppها استفاده کنند.
این ویژگی در وبسایت اتریوم اینگونه بیان شده است:
قراردادهای هوشمند اتریوم عمومی هستند و میتوان آنها را APIهای باز فرض کرد. برای توسعه یک برنامه غیرمترکز، نیازی به نوشتن قرارداد هوشمند جدید نیست، بلکه باید شیوه استفاده از آنها را یاد بگیرید. برای مثال، میتوانید برای مدیریت نحوه مبادله توکنها در برنامه خود، از قراردادهای هوشمند صرافی غیرمتمرکز یونی سواپ استفاده کنید و نیازی نیست که از صفر شروع کنید.
در اکوسیستم اتریوم، قراردادهای هوشمند همانند آجرهای یک ساختمان هستند که توسعهدهندگان میتوانند با استفاده از آنها، سازهها و برنامههای خود را پیچیدهتر بسازند. مثال سوشی سواپ و یونی سواپ که قبلتر به آن اشاره شد، نشان میدهد که چگونه پروژههای مختلف، میتوانند از کدهای یکسان برای اهداف متفاوت استفاده کنند.
ترکیبپذیری نحوی در سایر برنامههای بلاک چینی نیز کاربرد دارد. برای مثال، ممکن است ساخت یک سیستم حاکمیتی سفارشی برای یک دائو هزینهبر و وقتگیر باشد؛ اما این سازمان غیرمتمرکز بهراحتی میتواند از ابزارهای حاکمیتی موجود، مانند کلاینت آراگون (Aragon Client) برای ساخت یک سیستم حاکمیتی استفاده کند.
ترکیب پذیری اتمیک
تجزیهناپذیری یا یکپارچگی (Atomicity) در بلاک چین یعنی ایجاد یک تراکنش واحد از ترکیب چند عملیات مختلف. این تراکنش میتواند یک توکن سواپ (Token swap) یا ارتباط با قراردادهای هوشمند دیگر باشد.
بر اساس اصل تجزیهناپذیری، تک تک عملیاتهای تراکنش باید صحیح باشند تا تراکنش به درستی کار کند. اگر تنها یک بخش از تراکنش دچار خطا شود، تراکنش بهکلی انجام نمیگیرد.
در نتیجه، ترکیبپذیری اتمی که ادغامی از مفاهیم تجزیهناپذیری و ترکیبپذیری است، به این معنی است که یک تراکنش میتواند با چند قرارداد هوشمند مختلف در ارتباط باشد. خطا در یکی از بخش های تراکنش، منجر به توقف تراکنش میشود. در واقع تراکنش یا بهصورت کلی انجام میشود یا انجام نمیشود.
ضمنا، ترکیبپذیری اتمیک تنها در صورتی انجام میشود که تمام بخشهای تراکنش، بر بستر یک لایه اجرایی قرار گرفته باشند. ساخت یک تراکنش پیچیده که در آن از برنامه غیرمتمرکز بلاک چینهای مختلف (مثلا اتریوم که لایه ۱ است و پالیگان که لایه ۲ است) استفاده شده باشد، غیرممکن است.
بهترین مثالهای ترکیب پذیری اتمیک را میتوان در اکوسیستم دیفای مشاهده کرد. در ادامه مثالهایی از کاربرد ترکیبپذیری اتمیک را بررسی میکنیم:
وامهای آنی (Flash Loans)
برای کسانی که عمیقا با دنیای ارزهای دیجیتال و دیفای آشنا نیستند، مفهوم وامهای آنی یا سریع شاید کمی غیرمعقول یا نامحتمل به نظر برسد؛ اما بهدلیل ترکیب پذیری اتمیک، وام های آنی الگو و نحوهکار سادهای دارند.
ایده وام آنی بسیار ساده است؛ تنها با یک تراکنش، وام گرفته و آن را پرداخت میکنید. وامهای سریع بر پایه قواعد تجزیهناپذیری عمل میکنند. یعنی اگر تراکنش با خطا مواجه شود، وامدهندگان پول خود را پس میگیرند. در این صورت برای وامگیری نیازی به وثیقه نخواهد بود، زیرا کاربران نمیتوانند در بازپرداخت وام کوتاهی کنند.
ترکیب پذیری اتمیک یعنی یک وامی آنی میتواند شامل چند عملیات مختلف باشد و هر یک از این عملیاتها، در پلتفرمهای مختلف اجرا شود (البته این عملیاتها باید توکنهای کافی برای بازپرداخت وام ایجاد کنند). به یک مثال در مورد آربیتراژ توجه کنید:
فرض کنید قیمت یک توکن یا ارز دیجیتال، مثلا MKR، در یک صرافی ارز دیجیتال بیشتر از صرافی دیگر باشد. یک معاملهگر یا تریدر آربیتراژ، سرمایه کافی برای خرید MKR و فروش آن در صرافی دیگر یا به اصطلاح آربیتراژ کردن را ندارد. پس برای خرید آن یک وام آنی درخواست میکند.
این تریدر میتواند با وامی که دریافت کرده، MKR را در یک صرافی خریداری کرده، در صرافی دیگر بفروشد و با سود این آربیتراژ مبلغ وام را به وامدهنده پرداخت کند. تمام این کارها تنها با یک تراکنش انجام میشود. اگر در یکی از مراحل مشکلی پیش بیاید، کل فرایند متوقف میشود و مبلغ وام به وامدهنده بازگشت داده میشود.
دریافت وام در دنیای واقعی شامل یک فرایند کاغذ بازی طاقتفرسا و هدر رفتن وقت است و امکان آربیتراژ نیز وجود ندارد. بهلطف ترکیب پذیری اتمیک، وامهای آنی امکان آربیتراژ و دریافت سود را فراهم میکنند.
بازارساز خودکار (AMM)
بازارسازهای خودکار پروتکلهایی هستند که امکان معامله اتمیک و بدون نیاز به اعتماد ارزهای دیجیتال را فراهم میکنند. AMMها را میتوان بهعنوان یک ربات «مدیریتکننده پورتفولیو» در نظر گرفت که شرایط بازار را بررسی میکند و طبق این شرایط، برای سرمایهگذاری تصمیم میگیرد.
پروتکل Yearn یکی از محبوبترین بازارسازهای خودکار در حوزه دیفای است. بازارساز خودکار Yearn میتواند بهصورت اتوماتیک پلتفرمهای دیفای مختلف را بررسی کرده و ارزهای دیجیتال شما را به پربازدهترین پلتفرم (مثلا از نظر پاداش معاملات) منتقل کند.
نحوه کار پروتکل Yearn بر اساس ۲ اصل زیر است:
۱. این پروتکل میتواند به اطلاعات قیمت توکنها در پلتفرمهای دیفای مختلف دسترسی داشته باشد. اگر یکی از پلتفرمها از دادههای قیمتی خود محافظت کند، Yearn دیگر قادر به مقایسه قیمتها نخواهد بود.
۲. اجزای مختلف اکوسیستم دیفای، با استفاده از یک تراکنش یکسان بهسرعت ترکیب میشوند. برای مثال، ربات معامله Yearn میتواند از اتریوم بهعنوان وثیقه برای قرضگرفتن استیبل کوین DAI از MakerDAO استفاده کند، این استیبل کوینها را در پلتفرم Curve برای دریافت توکنهای CRV استفاده کند، CRV را فروخته و اتریوم بخرد و نهایتا اتریومها را بهعنوان وثیقه به MakerDAO پرداخت کند.
ترکیب پذیری و هویت غیرمتمرکز
یکی دیگر از کاربردهای ترکیب پذیری در وب ۳، مدیریت هویت است. در حال حاضر، از آنجایی که هر پلتفرم برای جمعآوری و مدیریت هویت کاربران باید سیستم خود را طراحی و اداره کند، چهارچوبهای هویتی چندان قابل ترکیب نیستند.
یکی از بزرگترین پیشرفتهای وب ۳ این است که کاربران میتوانند هویت خود را بین برنامههای غیرمتمرکز منتقل کنند. کاربران میتوانند هویت غیرمتمرکز خود را در کیف پولها ذخیره کرده و به سیستمهای احراز هویت DAppها، تنها اجازه خواندن این هویت را بدهند. یعنی نیازی نیست که کاربر رمزهای عبور طولانی را حفظ کرده و یا اطلاعات یکسان را هر بار در برنامههای مختلف دوباره وارد کند.
مشکلات و موانع ترکیب پذیری در وب ۳
ترکیب پذیری ایده بسیار خوبی است اما ممکن است اجرای آن با مشکلات مختلفی روبهرو شود. پس از بررسی کاربردهایی که ترکیبپذیری میتواند داشته باشد، در این بخش از مقاله، به مشکلات اجرای ترکیب پذیری در نسل سوم وب خواهیم پرداخت.
مسائل امنیتی
بخش بزرگی از کارایی ترکیب پذیری به ارتباط قراردادهای هوشمند با یکدیگر مربوط میشود. در واقع، امکان استفاده از تراکنشهای پیچیده در قراردادهای مختلف، از طریق این ویژگی ممکن میشود.
اما گاها ارتباط با قراردادهای خارجی دیگر ممکن است ایده خوبی نباشد. برای مثال، ارتباط و استفاده از یک قرارداد مخرب میتواند منجر به سوءاستفاده و حملههای هکری شود.
تقویت امنیت قراردادهای هوشمند، اهمیت ویژهای برای استاندارد شدن ترکیب پذیری دارد. در این صورت، توسعهدهندگان میتوانند بهصورت امن از قوانین قراردادهای دیگر در قراردادهای خود استفاده کنند.
حفاظت از حقوق معنوی (IP)
تاکنون پیشروی تکنولوژی بلاک چین در جهت فناوری متنباز و کدبیسهای عمومی بوده است، اما این وضعیت ممکن است بهزودی تغییر کند.
پس از حادثه یونی سواپ، سوشی سواپ در نسخه سوم نرمافزار خود ویژگی جدیدی را اضافه کرده است که از استفاده و فورک غیرمجاز جلوگیری میکند. چنین اقداماتی ممکن است شرایط و فضای بسته وب ۲ را دوباره حاکم کند که در آن سازمانها به جای نوآوری و رشد جمعی، حفظ منافع خود را در اولویت قرار میدهند.
اگر پروژهها شروع به ثبت قراردادهای هوشمند کنند و یا جلوی استفاده آنها را بگیرند، ترکیب پذیری بهمرور زمان از بین خواهد رفت. همانطور که قبلتر اشاره شد، ترکیب پذیری به نرمافزاری نیاز دارد که متنباز بوده و امکان تغییر و استفاده از آن آزاد باشد.
استانداردسازی نامساعد
ترکیب پذیری در بلاک چین از استانداردها استفاده میکند. برای مثال، اتریوم با ایجاد استانداردهایی به نام ERC (Ethereum Requests for Comment) برای رابطهای قرار هوشمند، قابلیت همکاری خود را تضمین کرده است.
مثلا استاندارد ERC-20 تعیین میکند که عملکرد یک توکن قابلمعاوضه چگونه باشد. در این صورت، همکاری این توکنها با دیگر اجزای اکوسیستم اتریوم مانند کیف پولها، DEXها، Dappها و غیره، تضمین میشود.
اما با افزایش چشمگیر محبوبیت بلاک چینها، احتمالا ساخت استاندارهایی که همکاری و ترکیب پذیری را تضمین کند، سخت خواهد بود. در هر صورت پذیرش استانداردهای یک صنعت، مهم است. امید است که وب ۳ خود نیز به مجموعهای از فضاهای بسته تبدیل نشود.
جمعبندی
ترکیب پذیری یا Composability، نقش بزرگی در پیشرفت وب ۲ داشت و همین نقش را در نسل سوم وب نیز میتواند داشته باشد. در وب ۲ کمپانیهای بزرگ مثل گوگل و آمازون، برای حفظ منافع خود در مقابل ترکیب پذیری ایستادند. همانند یک ارکستر، وب ۳ نیز اجزای مستقلی دارد که با همکاری و ترکیب با یکدیگر، نتایج جدیدی را میتواند خلق کند. در این مقاله مفهوم ترکیبپذیری و کاربرد ترکیب پذیری در وب ۳ را بررسی کردیم و در نهایت به مشکلات پیشروی این مفهوم نیز پرداختیم. البته، گذر زمان کارایی این مفهوم را بهتر آشکار خواهد کرد. به نظر شما آیا در وب ۳ هم همانند وب ۲ شاهد محدود شدن ترکیب پذیری خواهیم بود؟ نظرات خود را با ما بهاشتراک بگذارید.