کاردانو خانه ارز دیجیتال Ada است که میتوان از آن برای ارسال و دریافت وجه استفاده کرد. این ارز دیجیتال آینده پول را نشان میدهد و به انتقال سریع و مستقیم پول به روشی امن کمک میکند.
کاردانو یکی از جذاب ترین پروژههای موجود در حوزه ارزهای دیجیتال است. کاردانو هم مثل اتریوم پلتفرمی برای اجرای قراردادهای هوشمند است اما با پیاده سازی یک معماری لایه ای، امنیت و مقیاس پذیری را افزایش داده است.
روش مورد استفاده کاردانو کاملاً منحصربفرد است چون بر اساس تحقیقات دانشگاهی و رویکرد علمی طراحی شده است. در این مطلب نگاهی کامل به کاردانو خواهیم داشت و بعضی از ابتکارات و نوآوریهای جذاب آن را مرور میکنیم.
منشأ پیدایش کاردانو
مفهوم کاردانو توسط چارلز هاسکینسون ابداع شد که اتفاقاً یکی از همبنیانگذاران اتریوم است.
گرچه کار اتریوم در زمینه تشکیل یک پلتفرم قراردادهای هوشمند فوق العاده عمل کرد اما به گفته هاسکینسون این بلاکچین نسل دوم نیاز به رشد و تکامل بیشتری دارد. آنچه باعث متمایز شدن کاردانو شده، مراقبت و توجه بی نظیر نسبت به آن و تغییر و اصلاح پیوسته آن است. سه سازمان برای طراحی و مراقبت از کاردانو به صورت تمام وقت کار میکنند. این سه سازمان عبارتند از:
- بنیاد کاردانو
- IOHK
- Emurgo
بنیاد کاردانو یک سازمان غیرانتفاعی است که به نوعی حضانت کاردانو را در اختیار دارد. کار اصلی این سازمان استانداردسازی، حفاظت و ترویج فناوری پروتکل کاردانو است.
در سال 2015، هاسکینسون با همراهی جرمی وود IOHK (Input Output Hong Kong) را تأسیس کرد. IOHK یک شرکت تحقیق و توسعه و متعهد به استفاده از نوآوریهای نظیر به نظیر بلاکچین برای ساختن سرویسهای مالی دسترس پذیر برای همه است. این شرکت قرارداد دارد که تا سال 2020 به طراحی، ساخت و حفظ کاردانو کمک کند.
سومین شرکت Emurgo است. Emurgo یک شرکت ژاپنی است که کار توسعه، پشتیبانی و پرورش استارتاپهای تجاری را انجام میدهد که سعی دارند با استفاده از فناوری بلاک چین در صنایع خودشان تحول ایجاد کنند. بخش عمدهای از سرمایههای IOHK از قرارداد 5 سالهای که با Emurgo داشته به دست میآیند.
این سه سازمان در کنار هم به توسعه کاردانو کمک میکنند. حالا شاید این سوال برای شما ایجاد شده باشد که دلیل طراحی و راه اندازی خود کاردانو چیست؟ کاردانو خودش را بلاکچین نسل سوم معرفی میکند، اما منظور از بلاکچین نسل سوم چیست؟
سه نسل بلاکچینها
به گفته چارلز هاسکینسون بلاکچین تا به امروز سه نسل را طی کرده است.
نسل اول: بیتکوین و انتقال وجه
بیتکوین به این دلیل به وجود آمد که همه یک سوال داشتند.
آیا میتوان راهی برای انتقال وجه بین دو فرد بدون وجود هر گونه واسطهای ایجاد کرد؟
آیا میتوان یک پول غیرمتمرکز ساخت که روی بستری مثل بلاکچین کار کند؟
ساتوشی ناکاموتو با ساختن بیتکوین به این سوال پاسخ داد. بالاخره یک سیستم پولی غیرمتمرکز ایجاد شد که میتوانست پول را از شخصی به شخص دیگر منتقل کند.
اما یک مشکل خاص برای بلاکچین وجود داشت که البته مشکل همه بلاکچینهای نسل اول است. با این بلاکچینها فقط امکان اجرای تراکنشهای پولی وجود داشت و راهی برای اضافه کردن شرط به این تراکنشها وجود ندارد.
مثلاً آلیس میتواند 5 بیتکوین برای باب ارسال کند اما نمیتواند برای این تراکنشها شرایط مشخص کند یعنی نمیتواند به باب اعلام کند که تنها در صورتی پول را دریافت میکند که کارهای خاصی را انجام دهد.
پیاده سازی چنین شرایطی نیاز به نوشتن اسکریپتهای به شدت پیچیده دارد و برای انجام هر چه راحت تر این کار نیاز به یک تغییر وجود داشت.
نسل دوم: اتریوم و قراردادهای هوشمند
در این نسل به قراردادهای هوشمند میرسیم.
قراردادهای هوشمند به مبادله پول، املاک، سهام یا هر چیز ارزشمندی به روش شفاف و بدون نیاز به مداخله واسطهها کمک میکنند.
اتریوم، ساخته ویتالیک بوترین، مهم ترین محصول این نسل بود. اتریوم نشان داد که چطور میتوان بلاکچین را از یک مکانیزم پرداخت ساده به ابزاری قدرتمندتر و معنادارتر تبدیل کرد اما در این نسل یکسری سوال هم به وجود آمد.
با شکل گیری کاربردهایی جالب تر برای بیتکوین، میزان پذیرش و استفاده از آن هم افزایش یافت.
اما مشکل این بود که این نسل از بلاکچینها آنطور که لازم بود برای مقیاس پذیری آماده نشده بودند. بعلاوه، سیستم حاکمیتی آنها آنطور که تصور میشد خوب و بی نقص نبود. به گفته هاسکینسون، تقسیم شدن اتریوم و اتریوم کلاسیک یک نمونه بارز از بد بودن مدل حاکمیتی این بلاکچینها بود.
به این ترتیب بود که نسل سوم شکل گرفت.
نسل سوم: کاردانو
هاسکینسون میدانست که بلاکچین نیاز به تغییر و تحول دارد. او ویژگیهای خوب دو نسل قبلی بلاکچین را برداشت و یکسری المانهای جدید را به آنها اضافه کرد. حاصل این تغییر کاردانو بود.
سه مشکلی که کاردانو به دنبال حل آنها بود، عبارتند از:
- مقیاس پذیری
- تعامل پذیری
- دوام و ماندگاری
همانطور که قبلاً اشاره شد، کاردانو نسبت به پروژههای مشابه کاملاً منحصربفرد است و بر مبنای تحقیقات دانشگاهی و روشهای علمی طراحی شده است. هدف همه مهندسی انجام شده بر روی این پروژه، تولید کدی با اطمینان بالا بوده و برای انجام این کار بررسیهای دقیقی از کیفیت کد انجام شده است. به گفته هاسکینسون این اقدام مانع از بروز مشکلاتی مثل جدایی اتریوم و اتریوم کلاسیک خواهد شد.
قبل از پرداختن به سایر موضوعات، در ادامه به فلسلفه کاردانو میپردازیم.
فلسفه کاردانو
تیم کاردانو سعی دارد به یک مجموعه اصول و فلسفه پایبند بماند. برای این پروژه مقاله سفید یا نقشه راه کاملی منتشر نشده و تمرکز اصلی آن پایبندی به یکسری اصول طراحی، مهندسی اصولی و ایجاد روشهایی برای بررسی و کاوش کد است.
در ادامه یکسری از این اصول را که در سایت خود کاردانو نوشته شده، مرور میکنیم:
- تفکیک حسابداری و محاسبات و قرار دادن آنها در لایههای متفاوت
- پیاده سازی کد به صورت پیمانه ای
- رقابت گروهی از دانشگاهیان و توسعه دهندگان برای اجرای تحقیقاتی که توسط همتایان بررسی میشوند
- استفاده از تیمهای چند رشتهای از جمله کارشناسان حوزه امنیت اطلاعات
- انجام سریع کارهایی مثل انتشار مقالات سفید، پیاده سازی و اجرای تحقیقات تازه برای رفع مشکلاتی که حین بازبینی پیدا میشوند.
- قابلیت ارتقای سیستمها پس از پیاده سازی، بدون ایجاد اختلال در عملکرد شبکه
- توسعه یک مکانیزم جذب سرمایه غیرمتمرکز برای کارهای آتی
- داشتن نگاهی بلندمدت بر طراحی ارزهای دیجیتال به نحوی که امکان کار کردن با آنها روی دستگاههای موبایل همزمان با ایجاد تجربیات کاربری قوی و امن وجود داشته باشد.
- جذب مشارکت همه طرفهای دخیل برای انجام کارها و حفظ و مراقبت از این ارز دیجیتال
- تأیید نیاز به وجود انواع داراییها در یک دفتر کل
- درج ابردادههای اختیاری در تراکنشها برای مطابقت هر چه بهتر با نیازهای سیستمهای سنتی
- درس گرفتن از حدود هزار آلت کوین موجود و استفاده از قابلیتهای مفید آنها
- استفاده از یک فرایند مبتنی بر استاندارد بر اساس اصول «کارگروه مهندسی اینترنت» با کمک یک بنیاد اختصاصی که برای بررسی و تأیید طراحی نهایی پروتکل تشکیل شده است
- بررسی مباحث اجتماعی حوزه تجارت
- ایجاد مسیری مناسب برای تعامل قانونگذاران با تجارت بدون به خطر انداختن اصول بنیادی بیتکوین
حالا که با فلسلفه کاردانو آشنا شدیم، در ادامه نگاهی به سه موضوع اصلی که کاردانو به دنبال حل آنهاست میپردازیم.
1. مقیاس پذیری
منظور از مقیاس پذیری تعداد تراکنشهایی است که شبکه قادر است در هر ثانیه اجرا کند یا به عبارتی توان عملیاتی شبکه اما به گفته هاسکینسون این تنها بخشی از مسئله است. مقیاس پذیری کامل در اصل مثل یک اژدهای چند سر است! برای مقیاس پذیر شدن شبکه باید به سه عنصر توجه داشت:
- تعداد تراکنشهای قابل اجرا در هر ثانیه/ توان عملیاتی
- شبکه
- مقیاس پذیری دادهها
1. توان عملیاتی
در مقالههای مختلف به مقیاس پذیر نبودن شبکه بیتکوین و اتریوم پرداخته شده است. بیتکوین قادر است 7 تراکنش در ثانیه اجرا کند و این رقم برای اتریوم به 15 تا 20 تراکنش میرسد. بدون شک این رقم برای یک سیستم اقتصادی وسیع و پرکاربرد قابل قبول نیست.
کاردانو امیدوار است که این مشکل را با مکانیزم اجماع اوروبروس حل کند. اوروبروس یک الگوریتم اثبات سهام است که میتوان ایمن بودن آن را ثابت کرد. اوروبروس در اجلاس کریپتو 2017 توسط محققان بررسی و تأیید شد.
همانطور که پیش از این اشاره شد، اوروبروس یک الگوریتم اثبات سهامی است. پیش از پرداختن مفصل به این مکانیزم، اول باید در رابطه با خود اثبات سهام صحبت کنیم.
پروتکل بیتکوین از نوع اثبات کار است.
اثبات کار شامل مراحل زیر است:
- ماینرها معماهای رمزنگاری را حل میکنند تا یک بلاک را ماین (یا استخراج) کنند و به بلاکچین اضافه کنند.
- این فرایند انرژی و توان محاسباتی زیادی را مصرف میکند. این معماها طوری طراحی شده اند که حل کردن آنها سخت است و بار زیادی روی سیستم ایجاد میکنند.
- وقتی ماینری معمایی را حل میکند، بلاک خودش را برای تأیید در اختیار شبکه قرار میدهد.
- بررسی اینکه بلاکی به زنجیره تعلق دارد یا خیر کار بسیار سادهای است.
عملکرد کلی سیستم اثبات کار به همین صورت است. حل کردن معماها کار سختی است اما بررسی اینکه راهکار مربوطه درست است یا خیر کار راحتی است. بیتکوین و اتریوم هر دو با الگوریتم اثبات کار طراحی شدند (که این الگوریتم برای اتریوم در حال تغییر است) اما چنین سیستمی نقایص خاصی دارد.
مشکلات اثبات کار
سیستم اثبات کار مشکلات خاصی دارد که عبارتند از:
- اول و مهم تر از همه اینکه اجرای این فرایند بسیار سخت است چون این فرایند انرژی و توان پردازش زیادی مصرف میکند.
- افراد و سازمانهایی که بتوانند هزینه خرید ماینرهای پرقدرت تر (مثل ASIC) را پرداخت کنند، نسبت به دیگران شانس بیشتری برای موفقیت در ماینینگ دارند.
- در نتیجه بیتکوین آنطور که باید غیرمتمرکز نیست. در ادامه نمودار توزیع نرخ هش بیتکوین را مشاهده میکنید.
همانطور که مشاهده میکنید حدود 75 درصد از نرخ هش شبکه بین 5 استخر ماینینگ بزرگ توزیع شده است.
- از نظر تئوری، استخرهای ماینینگ میتوانند با هم متحد شوند و حمله 51 درصد را علیه شبکه بیت کوین اجرا کنند.
در نتیجه اتریوم برای حل این مشکلات، به دنبال پیاده سازی الگوریتم اثبات سهام است.
اثبات سهام چیست؟
اثبات سهام فرایند ماینینگ را مجازی کرده و ماینرها را با اعتبارسنج جایگزین میکند.
عملکرد این فرایند به این شرح است:
- اعتبارسنجها مقداری از ارزهای دیجیتال خودشان را به عنوان وثیقه در شبکه بلوکه میکنند (گرو گذاشتن).
- پس از آن اعتبارسنجی بلاکها شروع میشود یعنی وقتی بلاک جدیدی ایجاد شود که اعتبارسنجها فکر میکنند باید به زنجیره اضافه شود، روی معتبر بودن آن شرط بندی میکنند.
- اگر بلاکی به بلاکچین اضافه شود، در این صورت اعتبارسنجها پاداشی متناسب با مبلغ شرط خودشان دریافت میکنند.
حالا که متوجه شدیم اثبات سهام چیست، نگاهی به مکانیزم اوروبروس خواهیم داشت.
استفاده از اوروبروس در بلاکچین کاردانو
اوروبروس توزیع توکنها در اکوسیستم را در نظر گرفته و یک منبع از اعداد تصادفی ایجاد میکند. سپس دنیای مسئله را به دورهای مختلف (epoch) تقسیم میکند و هر دور به اسلاتهای مختلف تقسیم میشود. هر دور برای یک مدت بسیار کوتاه یعنی حدود 20 ثانیه باقی میماند.
سپس برای هر اسلات به صورت تصادفی یک لیدر انتخاب میشود.
عملکرد لیدر اسلات در این سیستم به نوعی شبیه به عملکرد ماینرها در پروتکل اثبات کار است از این جهت که میتواند بلاکهایی که قرار است به بلاکچین اضافه شوند را انتخاب کند اما فقط قادر به اضافه کردن یک بلاک است.
اگر یک لیدر به هر دلیلی این شانس را از دست داده و بلاک را انتخاب نکند، فرصت او از بین رفته و باید منتظر بماند تا وقتی که دوباره به عنوان لیدر انتخاب شود. خالی ماندن یک یا چند اسلات (و عدم تولید بلاک برای آنها) مشکلی ندارد اما باید اکثر بلاکها (حداقل 50 درصد بعلاوه یکی) در هر دور ایجاد شوند.
همانطور که مشاهده میکنید لیدرها نقش خیلی مهمی در این اکوسیستم دارند. برای اینکه واجد شرایط انجام این کار باشید، باید 2 درصد سهم کاردانو داشته باشید. به این سهام داران انتخاب کننده گفته میشود و میتوانند لیدرهای اسلات دور بعد را انتخاب کنند. هر چقدر سهام بیشتری داشته باشید شانس شما برای انتخاب شدن به عنوان لیدر بیشتر میشود.
از آنجایی که سهامداران قدرت زیادی دارند، باید مراقب بود که انتخابات تا حد ممکن غیرجانبدارانه باشد. باید این فرایند تا حد امکان تصادفی باشد. به همین دلیل برای پیاده سازی ویژگی تصادفی بودن، از یکسری محاسبات چند طرفه (MPC) استفاده میشود.
در این روش، هر انتخاب کننده یک اقدام تصادفی به اسم پرتاب سکه را انجام میدهد و نتیجه آن را با سایر انتخاب کنندهها به اشتراک میگذارد. گرچه نتایج به صورت تصادفی توسط انتخاب کنندهها ایجاد میشوند اما در نهایت همگی روی عدد نهایی با هم توافق میکنند.
این انتخابات سه فاز دارد:
- مرحله پیمان
- مرحله آشکارسازی
- مرحله بازیابی
در ادامه به توضیح و بررسی هر یک از این مراحل میپردازیم.
فاز پیمان
در ابتدا، انتخاب کننده یک عدد تصادفی را ارسال کرده و بعد یک نوع پیمان ایجاد میکند. این پیمان پیامی است که حاوی سهم رمزنگاری شده و یک اثبات برای آن است.
پس از آن این پیمان را با کلید خصوصی خودش امضا کرده، شماره دور را مشخص کرده و کلید عمومی خودش را به آن پیوست میکند. این کار با دو هدف انجام میشود:
- همه بتوانند بررسی کنند که چه شخصی این پیمان را ایجاد کرده (چون کلید عمومی به آن پیوست میشود).
- بتوان مشخص کرد که این پیمان مربوط به کدام دور است.
پس از انجام این کار، انتخاب کننده پیمانش را برای سایر انتخاب کنندهها ارسال میکند. در نهایت، هر انتخاب کننده پیمانهای سایر انتخاب کنندهها را انتخاب میکند (که وارد بلاک شده و جزئی از بلاکچین میشوند).
فاز آشکارسازی
مرحله دوم، فاز آشکارسازی است.
پیمانهای ارائه شده را شبیه به یک جعبه قفل شده در نظر بگیرید که یک راز در آن قرار دارد و یک عدد خاص وجود دارد که قفل جعبه را باز میکند. این مقدار خاص opening یا بازگشایی نام دارد. کل هدف این فاز این است که انتخاب کنندهها، مقدار بازگشایی خودشان را ارسال کنند که وارد بلاک شده و بخشی از بلاک چین میشود.
فاز بازیابی
آخرین مرحله، بازیابی است.
در این زمان انتخاب کننده مقادیر مربوط به پیمان و بازگشایی را در اختیار دارد اما ممکن است بعضی از انتخاب کنندهها مخرب عمل کنند و پیمان را بدون مقدار بازگشایی منتشر کنند. به این ترتیب یک جعبه قفل شده داریم بدون عبارت ورود.
برای مقابله با چنین شرایطی، انتخاب کنندههای صادق میتوانند همه سهمهای رمزنگاری شده را ارسال کرده و رازها را بازسازی کنند. به این ترتیب حتی اگر بعضی از انتخاب کنندهها مخرب عمل کنند، سیستم باز هم کار خواهد کرد. اوروبروس با همین روش تحمل خطای بیزانس را پیاده سازی میکند.
در نهایت یک انتخاب کننده بررسی میکند که پیمانها و مقدار بازگشایی آنها تطبیق داشته باشند و وقتی این اتفاق رخ داد، عبارتهای رمزی درون پیمانها با استفاده از یک عبارت بذر (seed) استخراج میشود. این عبارت بذر رشتهای است که به صورت تصادفی ایجاد میشود.
حالا همه انتخاب کنندهها این عبارت را دارند.
حالا یک لحظه متوقف شده و بررسی میکنیم که کجای این فرایند هستیم.
ما لیدرهای اسلات را برای دور بعدی انتخاب میکنیم. برای اینکه مطمئن شویم انتخاب تا حد امکان به صورت غیرجانبدارانه انجام میشود، باید این فرایند را به نوعی تصادفی کنیم. عبارت بذر قابلیت تصادفی بودن را فراهم میکند. حالا نوبت به انتخاب لیدرهای اسلات میرسد.
برای انجام این کار از الگوریتم دنبال کردن ساتوشی Follow the Satoshi (به اختصار FTS) استفاده میکنیم.
الگوریتم FTS
نام این الگوریتم از نام ساتوشی ناکاموتو خالق ناشناس بیتکوین به دست آمده است.
الگوریتم FTS یک سکه تصادفی را از بین سهمها انتخاب میکند. مالک این کوین لیدر اسلات میشود. به همین سالگی!
به همین دلیل هر شخصی که سهم بیشتری در شبکه داشته باشد، شانس بیشتری برای انتخاب در این بخت آزمایی دارد.
این لیدرها میتوانند علاوه بر انتخاب بلاک در بلاکچین اصلی، بلاکهای سایر بلاکچینهای اکوسیستم کاردانو را هم انتخاب کنند.
2. شبکه
مورد دوم در مقیاس پذیری، شبکه است. برای در نظر گرفتن شبکه در بحث مقیاس پذیری، پهنای باند را در نظر میگیریم.
تراکنشها دادهها را حمل میکنند بنابراین با افزایش تعداد تراکنشها نیاز به منابع شبکه هم افزایش مییابد.
این مفهوم کاملاً ساده و سرراست است. اگر سیستم بخواهد طوری افزایش مقیاس پیدا کند تا میلیونها کاربر را تحت پوشش قرار دهد، به صدها ترابایت یا اگزابایت منابع نیاز دارد.
بنابراین نمیتوان توپولوژی شبکه را به صورت همگن حفظ کرد. اما این مسئله چه پیامدهایی دارد؟
در یک شبکه همگن، هر نود شبکه همه پیامها را مخابره میکند. اسکایپ یک نمونه از چنین شبکهای است که در آن بیشتر ارزش شبکه ناشی از وجود یک کلاس از کاربران است که به برقراری تماس تلفنی علاقمند هستند.
اما در یک شبکه غیرمتمرکز، ممکن است امکان انجام این کار وجود نداشته باشد. ممکن است همه نودها منابع لازم برای مخابره اطلاعات به روش کارآمد و مؤثر را نداشته باشند.
کاردانو برای حل این مشکل به دنبال پیاده سازی یک فناوری جدید به نام RINA (Recursive Inter-Network Architecture) است که توسط جان ری طراحی شده است. RINA یک معماری شبکه جدید است که از سیاستها و اصول مهندسی مبتکرانه و بدیع استفاده میکند.
هدف RINA ایجاد شبکهای همگن است که وجود ویژگیهای زیر را تضمین میکند:
- حریم خصوصی
- شفافیت
- مقیاس پذیری
این کار طوری انجام میشود که بتوان چگونگی سازماندهی شبکه را بررسی و تأیید کرد. انتظار میرود که این پروتکل به صورت بی وقفه و روان با پروتکلهای TCP/IP ادغام شود. کاردانو امیدوار است که بخشی از این پروتکل در سال 2018 و بخشی از آن در سال 2019 پیاده سازی شود.
طبق آنچه در دانشنامه ویکی پدیا نوشته شده “RINA از کیفیت سرویس، قابلیت جابجایی و چند خانگی حمایت میکند بدون اینکه نیاز به نصب مکانیزمهای اضافه وجود داشته باشد. این فناری یک محیط امن و قابل برنامه نویسی ایجاد میکند، منجر به شکل گیری بازاری رقابتی تر شده و امکان پذیرش و استفاده گسترده از این سیستم را فراهم میکند.”
3. مقیاس پذیری داده
در نهایت مقیاس پذیری دادهای را داریم.
بلاکچینها اطلاعات را برای همیشه حفظ میکنند. هر داده با ربط یا بی ربطی برای همیشه در بلاکچین ثبت میشود. با افزایش مقیاس سیستم و ورود افراد بیشتر به این اکوسیستم، انبوهی داده به بلاکچین وارد شده و بزرگتر و سنگین تر میشود.
همانطور که قبلاً اشاره شد، بلاکچین متشکل از یکسری نود است. هر نود یک کاربر است که یک کپی از بلاکچین را در سیستم خودش ذخیره میکند.
با بزرگتر شدن بلاکچین نیاز به فضایی بیشتر برای ذخیره اطلاعات در آن وجود دارد و انجام این کار برای یک کاربر معمولی با کامپیوتری معمولی منطقی نیست.
کاردانو با استفاده از یک فلسلفه ساده یعنی اینکه «هرکسی نیاز به همه دادهها ندارد» این مشکل را حل میکند.
اگر قرار باشد آلیس و باب یک تراکنش اجرا کنند، ممکن است این تراکنش به هر فردی در شبکه مرتبط نباشد. تنها اطلاعاتی که دیگران باید داشته باشند این است که تراکنش اجرا شده و معتبر و درست است.
تکنیکهای مورد استفاده کاردانو عبارتند از:
- هرس کردن
- طرح اشتراک
- فشرده سازی
اگر این تکنیکها به درستی استفاده شوند، میتوانند حجم دادههایی که کاربر باید حفظ کند را به طور چشمگیری کاهش دهند.
علاوه بر این، مفهوم پارتیشنینگ (Partitioning یا بخش بندی) هم وجود دارد. پارتیشنینگ یعنی هر کاربر به جای نیاز به حفظ کل بلاکچین، فقط باید یک پیمانه از آن را حفظ کند و به این ترتیب میزان دادههایی که کاربر باید حفظ کند به طور چشمگیری کاهش مییابد. قرار است این کار از طریق زنجیرههای جانبی انجام شود (که در ادامه مطلب بیشتر به آن میپردازیم).
هدف کاردانو استفاده از همه این اطلاعات برای فشرده سازی دادههایی است که کاربران باید حفظ کنند بدون اینکه امنیت شبکه یا اجرای درست تراکنشها دچار مخاطره شود. تحقیقات مربوط به این پروژه در دانشگاه ادینبورگ در حال اجرا است.
2. تعامل پذیری
حالا که با روش پیاده سازی مقیاس پذیری در کاردانو آشنا شدیم، نگاهی به دومین قطب آن یعنی تعامل پذیری داریم. طبق تعریف چارلز هاسکینسون به زبان ساده هدف تعامل پذیری این است که تنها یک توکن وجود نداشته باشد که بر همه حاکم باشد.
در دنیای فعلی ارزهای دیجیتال، کوینهای مختلفی مثل بیتکوین، اتریوم، ریپل، دش و غیره داریم. به همین صورت در دنیای اقتصاد سنتی سیستمهای مختلفی داریم که بانکها از آنها استفاده میکنند مثل سوئیفت، ACH و غیره.
مشکل این مسئله این است که برقراری ارتباط بین این موجودیتها کار سختی است. یعنی بیتکوین نمیتواند آنچه که در اتریوم رخ میدهد را درک کند و بالعکس. این مسئله برای برقراری ارتباط بین بانکها و ارزهای دیجیتال شدیدتر هم میشود.
به همین دلیل اکسچنجهای ارزهای دیجیتال که درگاهی بین بانکها و دنیای ارزهای دیجیتال ایجاد میکنند تا این حد قدرتمند و مهم شده اند. اما یک مشکل در این زمینه وجود دارد. اکسچنجها، مؤسساتی غیرمتمرکز نیستند و فوق العاده آسیب پذیر هستند.
- امکان هک شدن اکسچنجها وجود دارد.
- ممکن است حین ارتقای اکسچنجها، سرویسهای آنها برای مدتی طولانی از دسترس خارج شود که اخیراً همین اتفاق برای بایننس هم رخ داد.
بعلاوه، یک حوزه دیگر هم وجود دارد که در آن این قطع ارتباط بین دنیای سنتی و دنیای کریپتو میتواند منجر به فاجعه شود یعنی در عرضه اولیه کوین یا ICO.
معمولاً در ICO میلیونها دلار سرمایه برای خرید توکن پرداخت میشود اما واریز این سرمایه به حسابهای بانکی کار سختی است. بانکها به دنبال بررسی و موشکافی دقیق منشأ ایجاد این سرمایهها هستند و اینکه این پول توسط چه اشخاصی تأمین شده که انجام این کار تقریباً غیرممکن است.
در نتیجه نیاز به یک راهکار مناسب تر و بدون ریسک برای پیاده سازی تعامل پذیری وجود دارد.
نسل سوم ارزهای دیجیتال باید اکوسیستمی ایجاد کنند که در آن هر بلاکچین قابلیت برقراری ارتباط با سایر بلاکچینها و سیستمهای اقتصادی سنتی را دارد.
در ادامه خواهیم دید که کاردانو چطور این قابلیت را پیاده سازی میکند.
ارتباطات بین زنجیرهای و زنجیرههای جانبی
هدف کاردانو ایجاد اینترنت بلاکچینها است. اکوسیستمی را تصور کنید که در آن میتوان بیتکوین را به بلاکچین اتریوم واریز کرد و یا ریپل را به صورت روان و بی وقفه به لایت کوین واریز کرد بدون اینکه نیاز به طی کردن این فرایند از طریق اکسچنجهای متمرکز وجود داشته باشد. به همین دلیل کاردانو سعی دارد نقل و انتقالات بین زنجیرهای را بدون نیاز به وجود واسطه اجرا کند.
کاردانو سعی دارد با استفاده از زنجیرههای جانبی این قابلیت را پیاده سازی کند.
مفهوم زنجیره جانبی مدتی هست که در دنیای کریپتو جریان دارد و هدف و ایده کلی آن ساده است. در این سیستم شما یک زنجیره جانبی دارید که در کنار و به موازات زنجیره اصلی کار میکند. زنجیره جانبی به صورت دو طرفه به زنجیره اصلی پیوند میخورد.
کاردانو هم بر اساس تحقیقات انجام شده توسط Kiayias، Miller و Zindros (به اختصار KMZ) این تکنیک را پیاده سازی میکند که شامل «اثباتِ اثباتِ کار غیر تعاملی» است.
به گفته هاسکینسون، ایده زنجیرههای جانبی مبتنی بر دو اصل است:
- به دست آوردن یک نسخه فشرده از بلاکچین
- پیاده سازی قابلیت تعامل پذیری بین زنجیرهها
کاردانو چه کاربردهایی دارد؟
از نظر برقراری تعامل با دنیای سنتی، کاردانو متمرکز بر سه مانع است که باعث ناسازگاری دنیای کریپتو با دنیای سنتی میشود، یعنی:
- ابر دادهها
- نسبت دادن
- پیروی از استانداردهای قانونی
مانع اول: ابر دادهها
ابر دادهها داستانی که پشت هر تراکنش وجود دارد را مشخص میکنند.
اگر آلیس 50 دلار خرج میکند، ابر دادهها حاوی اطلاعات زیر هستند:
- آلیس این پول را برای چه کاری خرج کرده است؟
- آلیس پول را برای چه کسی انتقال داده است؟
- آلیس این پول را کجا خرج کرده است؟
گر چه این قابلیت برای دنیای ارزهای دیجیتال خیلی خوب پیاده سازی نشده اما در دنیای بانکداری سنتی وجود آن ضروری است. در واقع، یکی از دلایل اصلی ناتوانی خیلی از مؤسسات برای اجرای ICO همین است چون ابر دادههای لازم برای تحویل به بانکها را ندارند.
در دنیای سنتی ابر دادهها اهمیت زیادی دارند. از جمله کاربردهای آنها میتوان به این موارد اشاره کرد:
- پیدا کردن و تشخیص منابع
- سازماندهی کارآمد دادههای الکترونیک
- مشخص کردن نحوه تبادل داده بین سیستمهای مختلف و ارتقای قابلیت تعامل پذیری
- حفاظت از منابع و کمک به تشخیص رفتار و ویژگیهای دادهها برای جایگزینی آن در صورت لزوم.
اما مشکل ابر دادهها این است که چنین دادههایی به شدت شخصی هستند و از آنجایی که دادهها به صورت شفاف و دائمی روی بلاکچین ذخیره میشوند، ما درگیر شرایطی میشویم که در آن دادههای به شدت خصوصی برای همیشه در بلاکچین ثبت شده اند.
یکی از موضوعاتی که کاردانو در حال تحقیق و بررسی آن است، اضافه کردن ابر دادههای دلخواه به زنجیره است.
مانع دوم: نسبت دادن
مثل ابر دادهها، فرایند «نسبت دادن» نام اشخاص دخیل در تراکنش را مشخص میکند و اینکه یک تراکنش خاص مربوط به چه افرادی است.
اگر قرار باشد هویت و انتساب تراکنشها در بلاکچین به صورت دائم ثبت شود، حریم خصوصی افراد دخیل به شدت نقض خواهد شد.
بنابراین کاردانو سعی دارد به کاربران امکان دهد هر زمان و هر طور لازم بود انتساب را انجام دهند.
مانع سوم: پیروی از قوانین
سومین مانع، استانداردهای قانونی است.
از جمله این قوانین میتوان به قانون «شناسایی مشتریان» (KYC)، «قانون ضد پولشویی» (AML)، «قانون ضد تأمین مالی ترورسیم» (AFT) و غیره اشاره کرد.
این استانداردهای قانونی اعتبار و مجاز بودن تراکنشها را بررسی و تأیید میکنند. در واقع اگر آلیس 50 دلار به باب بپردازد، این قوانین تضمین میدهند که این کار با هدف انجام کارهای نادرست انجام نشده است.
گر چه دنیای کریپتو در این حوزه کار زیادی انجام نداده اما انجام آن در دنیای اقتصاد سنتی که باید تاریخچه و مجاز بودن هر تراکنش مورد تأیید باشد، اهمیت زیادی دارد.
کاردانو سعی دارد از ابردادهها و نسبت دادن تراکنشها همگام با استانداردهای قانونی استفاده کند تا کاربران آن هر آنچه برای تعامل با بانکها نیاز دارند را در اختیار داشته باشند.
3. ماندگاری
در نهایت، به سومین قطب یعنی ماندگاری میرسیم.
به گفته هاسکینسون حل کردن این مسئله نسبت به دو مورد قبل سخت تر است. ماندگاری یعنی کاردانو برای توسعه و رشد آینده این اکوسیستم چقدر هزینه میکند؟
معمولاً وقتی قرار است سیستم توسعه پیدا کند و انجام این کار نیازمند سرمایه است، این کار به روشهای مختلفی انجام میشود مثل حمایت مالی و ICO اما هر دو روش مشکلات خاص خودشان را دارند.
در روش حمایت مالی، امکان متمرکز شدن پروژه وجود دارد. اگر یک شرکت بزرگ سرمایه زیادی در یک پروژه بلاکچین داشته باشد، ممکن است به دنبال تغییر جهت توسعه سیستم در راستای خواستههای خودش باشد.
در روش ICO ناگهان پول زیادی به سمت پروژه سرازیر میشود بدون اینکه یک مدل ماندگار و بادوام وجود داشته باشد. علاوه بر آن یکسری توکن به اکوسیستم اضافه میشود که شاید وجود آنها بیهوده باشد.
در نتیجه نیاز به انجام یک کار متفاوت و ماندگارتر حس میشود.
کاردانو سعی دارد برای انجام این کار از دش الهام گرفته و یک خزانه بسازد.
سیستم خزانه چطور کار میکند؟
هر زمان بلاکی به زنجیره اضافه میشود، بخشی از پاداش بلاک به خزانه اضافه میشود. بنابراین اگر قرار باشد تغییراتی در اکوسیستم کاردانو انجام شود، توسعه دهندهی این تغییر درخواست دریافت کمک هزینه را برای خزانه ارسال میکند.
سهامداران خزانه درباره این مسئله رأی گیری کرده و تصمیم میگیرند که این کمک هزینه را پرداخت کنند یا خیر.
اگر با انجام این کار موافقت شود، شخصی که این درخواست را ارسال کرده کمک هزینه را دریافت میکند.
این سیستم چندین مزیت دارد:
- با پیدا شدن بلاکها خزانه هم دائماً پر و پرتر میشود.
- این مسئله به سایز شبکه ارتباط دارد. هر چقدر شبکه بزرگتر باشد، منابع بیشتری موجود خواهد بود و سیستم رأی گیری هم غیرمتمرکزتر خواهد شد.
اما برای پیاده سازی این روش چند مانع وجود دارد.
- باید یک سیستم رأی گیری عادلانه پیاده سازی شود.
- رأی دهندهها باید برای رأی دادن و مشارکت در سیستم انگیزه داشته باشند.
- رأی همه باید ارزشی داشته باشد تا از ایجاد مشکل «تراژدی منابع مشترک» پیشگیری شود.
- فرایند ارسال درخواست کمک هزینه باید ساده و راحت باشد.
- کل فرایند باید تا حد امکان غیرمتمرکز باشد.
در حال حاضر کاردانو سیستمی را پیدا کرده که احتمالاً امکان استفاده از آن وجود دارد و مدل خزانه و دموکراسی روان را با هم ترکیب میکند.
دموکراسی روان چگونه کار میکند؟
دموکراسی روان سیستمی است که به صورت روان بین دموکراسی مستقیم و نمایندهای تغییر حالت میدهد.
این فرایند شامل ویژگیهای زیر است:
- اشخاص میتوانند مستقیماً درباره سیاستها رأی دهند.
- اشخاص میتوانند یک نماینده انتخاب کنند تا از جانب آنها درباره سیاستها رأی دهد.
- خود این نمایندهها هم میتوانند مسئولیتهای رأی دهی خودشان را به شخص دیگری محول کنند تا از طرف آنها رأی دهد. این ویژگی که در آن میتوان شخص دیگری را به عنوان نماینده انتخاب کرد، قابلیت انتقال نامیده میشود.
- اگر شخصی که رأی خودش را به شخص دیگری منتقل کرده، رأی نماینده اش را نپسندد میتواند حق رأی خودش را پس گرفته و خودش رأی دهد.
مزایای دموکراسی روان چیست؟
- دیدگاه همه ارزیابی شده و در انتخاب تصمیم نهایی نقش دارد.
- برای تبدیل شدن به یک نماینده، کافیست اعتماد شخص را جلب کنید. برای انجام این کار نیازی به اجرای کارزارهای تبلیغاتی پرهزینه و خرج کردن میلیونها دلار پول وجود ندارد. به همین دلیل موانع ورود به این سیستم بسیار کمتر میشود.
- وجود قابلیت جابجایی بین دموکراسی مستقیم و انتخاب نماینده باعث میشود که اقلیتها بتوانند نمایندگی بهتری برای خودشان انتخاب کنند.
- در نهایت، این سیستم یک مدل مقیاس پذیر دارد. هر شخصی که فرصت رأی دادن درباره سیاستها را ندارد میتواند این مسئولیت را به شخص دیگری محول کند.
هسکل و پلوتوس
کدنویسی کاردانو به زبان هسکل (Haskell) نوشته شده و قراردادهای هوشمند آن هم به زبان پلوتوس (Plutus) نوشته میشود. برای آشنایی با این زبانها اول باید کمی درباره زبانهای برنامه نویسی اطلاعات کسب کنیم.
زبانهای برنامه نویسی دو گروه کلی دارند:
- دستوری
- تابعی
زبانهای برنامه نویسی دستوری
در زبان برنامه نویسی دستوری، کد نویس باید همه مراحل لازم برای رسیدن به هدف را برای کامپیوتر بنویسد. همه زبانهای برنامه نویسی سنتی مثل سی پلاس پلاس، جاوا و حتی سالیدیتی جزء زبانهای برنامه نویسی دستوری هستند. به این روش برنامه نویسی الگوریتمی هم گفته میشود.
برای مثال، فرض کنید قرار است در زبان سی پلاس پلاس دو عدد 3 و 5 را با هم جمع کنیم. به این ترتیب کد ما به این نحو خواهد بود:
;int a = 5
;int b = 3
;int c
;c= a + b
همانطور که مشاهده میکنید، این فرایند طی چند گام انجام شده و اجرای هر گام منجر به تغییر وضعیت برنامه میشود.
فرایند جمع 4 مرحله دارد که عبارتند از:
- تعریف متغیر a از نوع اعداد صحیح و قرار دادن عدد 5 در آن
- تعریف متغیر b از نوع اعداد صحیح و قرار دادن عدد 3 در آن
- تعریف متغیر صحیح c
- جمع کردن a و b و ذخیره کردن حاصل در c
زبانهای برنامه نویسی تابعی کاردانو
دومین خانواده از زبانهای برنامه نویسی، زبانهای تابعی هستند. این سبک از زبانهای برنامه نویسی با این هدف طراحی شدند که یک رویکرد تابعی برای حل مسئله ایجاد شود. به این رویکرد برنامه نویسی اعلانی هم گفته میشود.
فرض کنید که یک تابع f(x) وجود دارد و میخواهیم یک تابع مثل g(x) را محاسبه کرده و بعد، از حاصل آن برای کار با تابع h(x) استفاده کنیم. به جای انجام این کارها به صورت پشت سر هم، میتوانیم آنها را به صورت زنجیرهای اجرا کنیم، به این صورت:
h(g(f(x)))
به این ترتیب انجام محاسبات و استدلالهای ریاضی آسان تر میشود. به همین دلیل زبانهای تابعی برای نوشتن قراردادهای هوشمند ایمن تر هستند. همچنین در صورت استفاده از این زبانها اعتبارسنجی فرمولی برنامه و اثبات امنیت آن با فرمولهای ریاضی آسان تر خواهد شد. این ویژگی باعث شده که کدهای کاردانو در سطح اطمینان بالایی قرار داشته باشند.
حالا یک مثال از زندگی واقعی را در نظر میگیریم تا ببینیم که چرا این موضوع تا این حد اهمیت دارد و حتی ممکن است حیاتی باشد.
فرض کنید قرار است برنامهای بنویسیم که ترافیک هوایی را کنترل میکند.
همانطور که مشاهده میکنید، کدنویسی در چنین سیستمی نیازمند دقت زیادی است. نمیتوانیم بدون برنامه ریزی و تفکر دقیق برنامه نویسی کنیم و امیدوار باشیم که جان انسانها در معرض خطر قرار نگیرد. در چنین شرایطی به کدی نیاز داریم که بتوانیم درستی آن را از طریق فرمولهای ریاضی اثبات کنیم.
ویژگی زبانهای اعلانی دقیقاً همین است.
به همین دلیل کاردانو از هسکل برای کدنویسی اکوسیستم و پلوتوس برای قراردادهای هوشمندش استفاده میکند چون هر دو تابعی هستند.
در جدول زیر مقایسهای از روش دستوری و تابعی مشاهده میکنید.
ویژگی | روش دستوری | روش تابعی |
تمرکز برنامه نویس | چگونه کار مورد نظر را انجام داده و چگونه تغییرات وضعیت را دنبال کنیم | چه اطلاعات و تغییرهایی مورد نیاز است |
تغییرات وضعیت | مهم | وجود ندارد |
ترتیب اجرا | مهم | کم اهمیت |
کنترل جریان اصلی برنامه | حلقه، شرط و فراخوانی تابع (متد) | فراخوانی توابع از جمله توابع بازگشتی |
واحد دستکاری و تغییر اصلی | نمونههای کلاس یا بلوک | توابع به عنوان اشیای کلاس اول و کالکشنهای داده |
مزایای روش تابعی عبارتند از:
- به تولید کدهایی با اطمینان بالا کمک میکند چون اثبات رفتار کد با فرمولهای ریاضی راحت تر انجام میشود.
- افزایش قابلیت خوانایی و امکان تغییر و نگهداری کد چون هر تابع برای انجام یک کار خاص طراحی شده است. همچنین توابع از نظر حالت از هم مستقل هستند.
- تحلیل کد آسان تر است و پیاده سازی تغییرات کد ساده تر انجام میشود در نتیجه توسعه کد به روش تکرار شونده آسان تر انجام میشود.
- می توان هر تابع را به راحتی تفکیک کرد در نتیجه تست و خطایابی توابع راحت تر انجام میشود.
اما این روش برنامه نویسی هم مثل هر پدیده دیگری معایب خاص خودش را دارد از جمله تازه بودن این روش.
به همین دلیل پیدا کردن برنامه نویس هسکل نسبت به جاوا و سی پلاس پلاس سخت تر است و باید آن را به طور گستردهای در شرایط واقعی تست کرد.
عرضه اولیه کوین (ICO) کاردانو
ICO کاردانو موفق به جذب حدود 62 میلیون دلار سرمایه شد.
نام توکن کاردانو بر اساس نام آدا لاولیس ریاضیدان قرن نوزدهم انتخاب شده که دختر لرد بایرن و اولین برنامه نویس کامپیوتر است.
اولین نسخه اصلی کاردانو به نام بایرون در 29 سپتامبر 2017 منتشر شد که راه اندازی مین نت کاردانو هم در همین زمان انجام شد.
کارمزدهای کاردانو
کارمزد انتقال ADA با استفاده از فرمول زیر محاسبه میشود:
- کارمزد انتقال وجه: a + b ضربدر اندازه تراکنش
که در این فرمول
- a = یک عدد ثابت که معادل با 0.155381 آدا است.
- b = یک عدد ثابت دیگر که معادل با 0.000043946 آدا است.
- اندازه: اندازه تراکنش بر حسب بایت.
این یعنی حداقل کارمزد تراکنش که پرداخت میشود، 0.155381 آدا است و این رقم به ازای هر یک بایت افزایش حجم تراکنش 0.000043946 آدا بیشتر میشود.
در هر دور، کارمزدها در یک مخزن جمع شده و به لیدر اسلات تعلق میگیرد.
نقشه راه کاردانو
بر اساس نقشه راه کاردانو، راه اندازی آن در 5 مرحله انجام میشود:
- بایرون: امکان مبادله و انتقال آدا را فراهم میکند. مین نت کاردانو هم راه اندازی میشود.
- شلی: این اطمینان را ایجاد میکند که فناوریهای لازم برای غیرمتمرکز شدن و مستقل شدن کامل سیستم وجود دارد.
- گوگان: منجر به اضافه شدن قابلیت اجرای قراردادهای هوشمند میشود.
- باشو: متمرکز بر ارتقای سطح کارایی است.
- ولتر: IOHK یک سیستم حاکمیتی و خزانه را اضافه میکند.
نتیجه گیری
کاردانو علاوه بر این که بر اساس یک فلسلفه قوی طراحی شده، یک علم دقیق هم دارد. این ویژگی باعث شده کاردانو نسبت به رقبا مزیت رقابتی بیشتری داشته باشد. بعلاوه، این واقعیت که شخصی مثل چارلز هاسکینسون پروژه را مدیریت میکند هم اعتبار بیشتری به آن میبخشد. باید منتظر ماند و دید که در آینده این پروژه طبق وعدههای داده شده و نقشه راه خودش عمل میکند یا خیر.