بررسی دقیق و فنی R3 Corda

پلتفرم Corda توسط کنسرسیوم بانکی R3 برای ایجاد ارتباط بین بانک‌های عضو این گروه ساخته شده است. در این پلتفرم، برخلاف بلاکچین های متعارف، هر نود تنها تراکنش‌هایی را می‌بیند که در آن سهیم است و به این ترتیب پردازش میلیون‌ها تراکنش در ثانیه ممکن می‌شود. اما این سیستم به وجود واسطه‌هایی مانند نوتاری وابسته است که با ماهیت بدون واسطه بلاکچین ها در تضاد هستند.

0 85

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

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

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

هدف ما از این مقاله این است که این تفاوت‌ها را توضیح داده و پیامدهای آن‌ها را،‌ چه خوب و چه بد، تبیین کنیم. در واقع، عبارات خوب و بد انتخاب‌های صحیحی نیستند، سوال جالبتر این است که «خوب و بد برای چه؟» این مقاله اصلا کوتاه نخواهد بود. اما امیدوارم که در پایان آن خوانندگان به درکی از تفاوت‌های Corda و خوبی‌ها و بدی‌های آن برسند. Corda از آن جهت اهمیت دارد که تصمیمات گرفته شده در فرآیند طراحی آن، بسیاری از معضلات بلاکچین‌های سازمانی را حل می‌کند.

معرفی بلاکچین‌ها

برای درک Corda، بهتر است که با بلاکچین های متعارف شروع کنیم. هدف بلاکچین این است که به یک پایگاه داده یا دفتر کل امکان دهد که به طور مستقیم و امن توسط طرف‌های بدون اعتماد به اشتراک گذاشته شود. این ایده با پایگاه‌های داده متمرکز در تضاد است که توسط یک سازمان واحد ذخیره و کنترل می‌شوند. یک بلاکچین دارای چندین «نود» است که هر کدام از آن‌ها یک کپی از پایگاه داده را ذخیره کرده و ممکن است هر یک به سازمانی متفاوت تعلق داشته باشند. نودها به صورت همتا به همتا و با تراکم بالا، با استفاده از «پروتکل گاسیپ (Gossip)» به یکدیگر متصل می‌شوند که در آن هر نود دائما هر چیزی را که می‌شود به همتایان خود گزارش می‌دهد. در نتیجه، هر نود می‌تواند از طریق بسیاری از مسیرهای جایگزین، پیام را به سرعت در کل شبکه منتشر کند.

یک پایگاه داده، چه متمرکز و چه مبتنی بر بلاکچین، از یک وضعیت خالی شروع شده و از طریق «تراکنش‌ها» به‌روز می‌شود. یک تراکنش به عنوان مجموعه‌ای از تغییرات مربوط به پایگاه داده تعریف می‌گردد که «اتمی» هستند، یعنی یا با هم موفق شده یا با هم شکست می‌خورند. پایگاه داده‌ای را تصور کنید که نمایانگر یک دفتر کل مالی با یک ردیف به ازای هر حساب است. تراکنشی که در آن آلیس (AliceAlice) ده دلار به باب (Bob) می‌پردازد شامل سه مرحله است: ۱) بررسی این که حساب آلیس حداقل ۱۰ دلار موجودی دارد؛ ۲) ۱۰ دلار از حساب آلیس کسر می‌شود؛ ۳) ۱۰ دلار به حساب باب اضافه می‌شود. به عنوان یکی از الزامات اساسی، هر پلتفرم پایگاه داده باید اطمینان حاصل کند که هیچ دو تراکنشی با هم تداخل ندارند. این «انزوا» با قفل کردن ردیف مربوط به آلیس و باب حین انجام پرداخت به دست می‌آید. هر تراکنش دیگری که مربوط به این دو ردیف باشد باید تا پایان این تراکنش منتظر بماند.

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

در کنار قوانینی که اعتبار تراکنش‌ها را تعیین می‌کنند، بلاکچین باید همچنین نحوه ترتیب تراکنش‌ها را تعیین کند، چرا که در بسیاری از مواقع این ترتیب اهمیت بسیاری دارد. اگر آلیس ۱۵ دلار داشته باشد و تلاش کند که طی دو تراکنش مجزا برای هم باب و هم چارلی ۱۰ دلار ارسال کند، تنها یکی از این پرداخت‌ها می‌توانند موفق‌آمیز باشند. در حالی که شاید تمایل داشته باشیم که بگوییم اولین تراکنش اولویت دارد، یک شبکه همتا به همتا هیچ تعریف عینی از «اولین» ندارد، زیرا پیام‌ها می‌توانند با ترتیب متفاوت به نودهای متفاوت وارد شوند.

قوانین تراکنش

به طور کلی، اطلاعات در هر پایگاه داده به سوابق یا ردیف‌هایی تقسیم می‌شوند و یک تراکنش می‌تواند سه کار انجام دهد: حذف ردیف‌ها، ایجاد ردیف‌ها و/ یا اصلاح ردیف‌ها. این‌ها قوانین را می‌توان به دو مورد کاهش داد، چرا که اصلاح یک ردیف در واقع حذف یک ردیف و افزودن ردیفی دیگر به جای آن است. به تراکنش بین آلیس و باب بازگردیم. اکنون ردیفی که متعلق به آلیس بود و ۱۵ دلار داشت حذف و دو ردیف جدید ایجاد شده است: یکی با ۱۰ دلار برای باب و دیگری با ۵ دلار «باقیمانده» برای آلیس.

در دنیای بیت‌کوین و Corda، ما ردیف‌های حذف شده توسط یک تراکنش را ورودی‌های آن، و ردیف‌های ایجاد شده را «خروجی»‌های آن می‌نامیم. هر ردیفی که توسط تراکنشی حذف شده قطعا قبلا توسط تراکنشی دیگر ایجاد شده است. بنابراین هر ورودی تراکنش، خروجی یک تراکنش پیشین را مصرف (یا «خرج») می‌کند. محتوای به‌روز پایگاه داده توسط مجموعه‌ای از «خروجی‌های خرج نشده تراکنش» یا «UTXOها» تعریف می‌گردد.

در یک بلاکچین، یک تراکنش زمانی معتبر است که سه شرایط زیر را احراز کند:

  1. صحت. تراکنش باید نماینده تبدیل مشروع ورودی‌ها به خروجی‌ها باشد. به عنوان مثال، در یک دفتر کل مالی، مقدار کلی وجوه در ورودی‌ها باید با مجموع خروجی‌ها مطابقت داشته باشد تا از پدیدار یا ناپدید شدن جادویی پول‌ها جلوگیری شود. تنها استثناها تراکنش‌های خاص «صدور» یا «ابطال» هستند که در آن ‌ها وجوه به صراحت اضافه یا حذف می‌شوند.
  2. اجازه. مالک همه خروجی‌های صرف شده توسط ورودی‌های یک تراکنش، باید اجازه تراکنش را صادر کند. در یک دفتر کل مالی، این شرط از این جلوگیری می‌کند که شرکت‌کنندگان پول یکدیگر را بدون اجازه خرج کنند. اجازه تراکنش با استفاده از رمزنگاری نامتقارن (یا کلید عمومی-خصوصی) مدیریت می‌شود. هر ردیف یک صاحب دارد که توسط یک کلید عمومی شناسایی می‌شود و کلید خصوصی متناظر با آن مخفی می‌ماند. یک تراکنش برای مجاز شدن باید توسط صاحب همه ورودی‌های آن به صورت دیجیتالی امضا شود. (توجه داشته باشید که ردیف‌ها همچنین ممکن است صاحبان پیچیده‌تر «چندامضایی» داشته باشند، مثلا اگر دو نفر از سه طرف برای استفاده از آن اجازه صادر کنند.)
  3. منحصر به فرد بودن. اگر یک تراکنش یک خروجی مشخص را مصرف کند، هیچ تراکنش دیگری نمی‌تواند مجددا آن خروجی مصرف کند. به این ترتیب ما از این که آلیس پرداخت‌های متضادی را به باب و چارلی انجام دهد جلوگیری می‌کنیم. در حالی که تراکنش‌های هر دوی این پرداخت‌ها می‌توانند صحیح و مجاز باشند، قانون منحصر به فرد بودن اطمینان حاصل می‌کند که تنها یکی از تراکنش‌ها توسط پایگاه داده پردازش می‌شود.

در بلاکچین متعارف، هر نود هر تراکنش را بر اساس این سه قاعده بررسی می‌کند. جلوتر خواهیم دید که چگونه Corda این مسئولیت را به شکلی متفاوت تقسیم می‌کند.

سنگ‌ بناها

بلاکچین به معنای واقعی کلمه چینی از بلاک‌ها است که در آن هر بلاک به وسیله یک «هش» به بلاک قبلی ارتباط دارد. هش، به صورت انحصاری محتوای آن را شناسایی می‌کند. هر بلاک حاوی مجموعه‌ای ترتیب‌دهی شده از تراکنش‌ها است که نباید با یکدیگر یا با تراکنش‌های بلاک‌های قبلی تناقض داشته باشند. همچنین یک برچسب زمان و برخی اطلاعات نیز در بلاک قرار دارند. همانند تراکنش‌ها، بلاک‌ها به سرعت در سراسر شبکه پخش شده و به طور مستقل توسط هر نود تایید می‌شوند. هنگامی که تراکنشی در بلاکی ظاهر شود، «تأیید شده است» و در پی آن نودها تراکنش‌های متناقض را رد می‌کنند.

چه کسانی مسئول ایجاد این بلاک‌ها است و چگونه می‌توان مطمئن بود که تمام نودها در مورد این که چین معتبر کدام است توافق دارند؟ مبحث «الگوریتم‌های اجماع» به تنهایی یک موضوع عظیم و مملو از مخفف‌های شگفت انگیز مانند PoW (اثبات کار)، PBFT (تحمل خطای بیزانسی کاربردی) و DPoS (اثبات سهام محول شده) است. ما در اینجا به همه آن‌ها نمی‌پردازیم. تنها به گفتن این اکتفا می‌کنیم که بلاکچین‌های سازمانی دارای دسترسی محدود، از نوعی از طرح رأی‌گیری استفاده می‌کنند که در آن رای‌ها به «نودهای معتبری» اعطا می‌شوند که جمعا مسئول هستند. این طرح تضمین می‌کند که تا زمانی که اکثریت نودهای اعتبارسنج درست و صادقانه عمل می‌کنند، تراکنش‌ها با نظمی (نزدیک به) منصفانه وارد زنجیره شده، زمان‌بندی‌ها (تقریبا) صحیح بوده و امکان معکوس کردن تراکنش‌های تایید شده وجود ندارد.

پیش از این که برخی از چالش‌های بلاکچین را توضیح دهیم، قصد داریم در مورد سه نکته تکمیلی شفاف‌سازی کنیم. ابتدا، در حالی که در این مقاله مثلا از یک دفتر کل مالی نام می‌بریم، مدل ورودی-خروجی تراکنش‌ها موارد استفاده بسیار بیشتری را شامل می‌شود. هر سطر می‌تواند حاوی یک شیء داده غنی بوده (مثل JSON) که دارای انواع مختلفی از اطلاعات است؛ در واقع، Corda به جای کلمه «ردیف» از کلمه «وضعیت» استفاده می‌کند. وضعیت‌ها هیچ چیز در مورد قوانین تراکنش را از اساس تغییر نمی‌دهند: صحت هنوز در بر مبانی ورودی‌ها و خروجی‌ها تعریف می‌شود، هنوز هر ورودی به اجازه نیاز دارد و منحصر به فرد بودن اطمینان حاصل می‌کند که هر خروجی تنها یک بار قابل مصرف است.

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

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

چالش‌های بلاکچین

بیایید تصور کنیم که بانک‌های جهانی دفتر مشترکی برای نشان دادن مالکیت، انتقال و تبادل انواع دارایی‌های مالی ایجاد کرده‌اند. همانطور که در بالا توضیح داده شد، این کار را می‌توان به صورت نظری با یک بلاکچین عادی انجام داد. هر ردیف شامل سه ستون است: یک شناسه دارایی مانند GOOG یا USD، مقدار تحت مالکیت و کلید عمومی مالک. به جز موارد خاص صدور و ابطال، هر تراکنش یک یا چند دارایی را از ورودی‌های خود به خروجی‌های خود منتقل می‌کند.

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

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

اما بیایید مساله مقیاس پذیری را کنار بگذاریم، چرا که در نهایت می‌توان آن را با استفاده از کامپیوترهای گران‌قیمت و مهندسی هوشمندانه حل کرد. مسئله اساسی‌تر محرمانگی است. شاید این که همه تراکنش‌ها همه جا قابل مشاهده باشند بسیار آرمانگرایانه به نظر برسد، اما در دنیای واقعی چنین شفافیتی به دلیل رقابت و مقررات شدنی نیست. اگر J.P. Morgan و HSBC تعدادی دارایی را به مبادله کنند، احتمالا تمایل ندارند که Citi و بانک چین از معامله آن‌ها آگاه شوند. اگر تراکنش از طرف مشتریان این بانک‌ها انجام شده باشد، شاید افشای آن به این صورت برای آن‌ها غیر قانونی باشد.

یک راه حل پیشنهادی برای مشکل محرمانگی «کانال‌ها» هستند، مانند چیزی که در Hyperledger Fabric به کار گرفته شده است. هر کانال اعضای خاصی دارد که همگی زیر مجموعه‌ای از نودهای شبکه هستند. تراکنش‌های یک کانال تنها برای اعضای آن کانال قابل مشاهده است، به طوری که هر کانال عملا به عنوان یک بلاکچین مجزا فعالیت می‌کند. در حالی که این روش به محرمانگی کمک می‌کند، اما در عین حال به هدف عملیات صدمه می‌زند. نمی‌توان بدون کمک واسطه‌ای معتمد که در هر دو کانال فعال است، نمی‌توان دارایی‌ها را از کانالی به کانال دیگر انتقال داد. دشواری این رویکرد به تازگی در اثبات مفهوم مصالحه SWIFT نشان داده شده است، که برآورد می‌کند برای بخش تولید به بیش از ۱۰۰٬۰۰۰ کانال نیاز خواهد بود. این یعنی ۱۰۰٬۰۰۰ جزیره که نمی‌توان دارایی‌ها را مستقیما بین آن‌ها انتقال داد.

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

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

Corda قصد دارد تا این مسائل به هم پیوسته مقیاس پذیری، محرمانگی و قابلیت تعامل متقابل را از طریق بازنگری اساسی چگونگی کارکرد دفاتر کل توزیع شده حل کند.

نمای جزئی Corda

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

بنابراین نود Corda کدام تراکنش‌ها را می‌بیند؟ اولا، کسانی که در آن به طور مستقیم در تراکنش شرکت داشته‌اند، چرا که یکی از ورودی‌ها یا خروجی‌های آن تراکنش به آن‌ها تعلق دارد. در یک دفتر کل مالی، این موضوع شامل تمام تراکنش‌هایی می‌شود که در آن‌ها نودی در حال ارسال یا دریافت وجوه است. تصور کنید آلیس تراکنشی را ایجاد می‌کند که ۱۵ دلار وی را در یک ورودی مصرف می‌کند و دو خروجی دارد: یک تراکنش با ۱۰ دلار برای من و دیگری ۵ دلار «باقیمانده» برای او. پس از این که آلیس این تراکنش را برای من می‌فرستد، می‌توانم صحت و اجازه آن را کنترل کرده و تأیید کنم که ورودی‌ها و خروجی‌ها توازن دارند و آلیس تراکنش را امضا کرده است.

با این حال، این تراکنش به خودی خود کافی نیست. من همچنین باید تایید کنم که ورودی ۱۵ دلاری آلیس واقعا وجود دارد و ساخته ذهن او نیست. این یعنی من باید تراکنشی که این وضعیت را ایجاد کرده ببینم و صحت و جواز آن را نیز کنترل کنم. اگر تراکنش قبلی که ۱۵ دلار به آلیس ارسال کرده است، یک ورودی ۱۰ دلاری متعلق به دنزل (Denzel) و یک ورودی ۵ دلاری دیگر از اریک (Eric) داشته باشد، باید تراکنش‌هایی که آن‌ها را تولید کرده‌اند را نیز تایید کنم. و به همین ترتیب، به تراکنش اصلی «صدور» می‌رسیم که دارایی در آن ایجاد شده است. تعداد تراکنش‌هایی که باید تایید کنم بستگی به تعداد دفعاتی که دارایی‌ها دست به دست شده و میزان انشعاب پس‌رو دارد.

از آنجایی که نودهای Corda به طور خودکار همه تراکنش‌ها را نمی‌بینند، چگونه به آن‌هایی که نیاز دارند دسترسی پیدا می‌کنند؟ پاسخ، از فرستنده هر تراکنش جدید است. پیش از اینکه آلیس تراکنشی را ایجاد کند که ۱۵ دلار او را مصرف می‌کند، او قطعا باید تراکنشی را تایید کرده باشد که به موجب آن این مبلغ را دریافت کرده است. و از آنجایی که آلیس باید قطعا روش بازگشتی بالا را اعمال کرده باشد، او نسخه‌ای از تمام تراکنش‌های مورد نیاز برای این تایید را در اختیار خواهد داشت. باب به سادگی این تراکنش‌ها را به عنوان بخشی از تراکنش‌ بین آن‌ها از آلیس درخواست می‌کند. اگر آلیس پاسخ مناسبی ندهد، باب نتیجه می‌گیرد که آلیس در پی فریب او است و پرداخت ورودی را رد می‌کند. در مواردی که باب تراکنش جدیدی دریافت می‌کند که ورودی‌های آن صاحبان متعددی دارد، او می‌تواند مدارک لازم را از هر یک از آن‌ها دریافت کند.

معرفی نوتاری‌ها (notary)

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

بلاکچین‌های متعارف این مشکل را با این روش حل می‌کنند که هر نود همه تراکنش‌ها را می‌بیند، که این باعث می‌شود تضادها به راحتی شناسایی شده و رد شوند. پس چگونه Corda با شفافیت جزئی تراکنش‌های خود این مشکل را حل می‌کند؟ پاسخ با کمک یک «نوتاری» است. یک نوتاری یک طرف معتمد است (یا مجموعه‌ای از طرف‌ها که با هم کار می‌کنند) که تضمین می‌کند یک وضعیت خاص فقط یک بار مصرف می‌شود. هر وضعیت یک نوتاری خاص دارد که باید هر تراکنشی که وضعیت در آن صرف می‌شود را امضا کند. هنگامی که نوتاری این کار را انجام دهد، نباید تراکنش دیگری را برای همین وضعیت امضا کند. نوتاری‌ها نگهبانان شبکه برای منحصر به فرد بودن تراکنش هستند.

در حالی که هر وضعیت می‌تواند نوتاری متفاوتی داشته باشد، تمام وضعیت‌هایی که توسط یک تراکنش خاص مصرف می‌شوند باید به همان نوتاری منتسب شوند. این موضوع از وقوع مشکلات مربوط به شرایط بن‌بست و همگام‌سازی اجتناب می‌کند، که باید برای افرادی که پایگاه داده توزیع شده را تجربه کرده‌اند آشنا باشد. بیایید تصور کنیم آلیس و باب توافق می‌کنند تا ۱۰ دلار آلیس و ۷ پوند باب را با هم معاوضه کنند. تراکنش این مبادله باید توسط نوتاری‌های هر دو وضعیت امضا شود، اما کدام یک اول این کار را انجام خواهد داد؟ اگر نوتاری آلیس امضا کرده اما نوتاری باب به هر دلیل از انجام چنین کاری عاجز باشد، آلیس در یک تراکنش ناقص باقی مانده و هرگز نمی‌تواند از آن ۱۰ دلار استفاده کند. اگر باب اولین امضا کننده باشد او نیز در معرض خطری مشابه قرار دارد. در حالی که شاید به نظر برسد بهتر است نوتاری‌ها با هم کار کنند، در عمل این مستلزم اعتماد متقابل و استفاده از پروتکل اجماع است. اما این‌ها پیچیدگی‌هایی هستند که طراحان Corda تصمیم به اجتناب از آن گرفتند.

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

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

ارزیابی

بیایید تفاوت‌های اصلی بین Corda و بلاکچین‌های متعارف را به طور خلاصه مرور کنیم. در Corda، هیچ بلاکچین متحدی وجود ندارد که شامل تمام تراکنش‌های تأیید شده باشد. نودها تنها تراکنش‌هایی را می‌بینند که مستقیما به آن‌ها مربوط است و یا به طور تاریخی به آن وابسته هستند. نودها مسئول بررسی صحت و اجازه تراکنش‌ها هستند، اما برای تأیید منحصر به فرد بودن به نوتاری‌ها متکی هستند.

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

پس آیا Corda به وعده‌های خود عمل می‌کند؟ آیا مسائل مربوط به مقیاس پذیری، محرمانگی و قابلیت تعامل متقابل بلاکچین‌ها را حل می‌کند؟ و در تصمیم‌گیری‌های خاص خود، Corda متحمل چه هزینه‌هایی می‌گردد؟

گاهی مقیاس‌پذیرتر

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

با این حال، یک موقعیت وجود دارد که در آن Corda بسیار بدتر از یک بلاکچین عمل می‌کند. این موقعیت زمانی اتفاق می‌افتد که یک نود یک تراکنش جدید دریافت می‌کند که تراکنش‌های زیادی بستگی دارد و آن نود قبل آن تراکنش‌ها را ندیده است. یک دارایی بسیار نقد را تصور کنید که ۱۰ سال پیش صادر شده است و هر پنج دقیقه دست به دست می‌شود. مسیر هر تراکنش جدید به سوی صدور این دارایی بیش از یک میلیون تراکنش خواهد بود. هنگامی که نودی این دارایی را برای اولین بار دریافت می‌کند، باید میلیون‌ها تراکنش را از فرستنده بازیابی کرده و به نوبت هر یک را تایید کند. با نرخ (نسبتا خوش بینانه) ۱۰۰۰ تراکنش در ثانیه، تا زمانی که گیرنده بتواند دارایی را در وضعیت جدید قرار دهد، تاخیری ۱۷ دقیقه‌ای وجود خواهد داشت که برای چیزی تا این حد نقد بسیار زیاد است.

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

تاحدی محرمانه‌تر

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

البته توسعه‌دهندگان Corda از این مشکل آگاه هستند و در فصل ۱۵ وایت‌پیپر فنی خود در مورد آن صحبت می‌کنند. این مقاله استراتژی‌های ساده‌ای مانند استفاده از کلیدهای عمومی متعدد به ازای هر نهاد یا کاهش قابلیت ردیابی به وسیله استرداد دارایی‌ها به صادرکنندگان آن‌ها جهت صدور مجدد را پیشنهاد می‌کند (شبیه به رمز ارزهای «میسکر سکه»). این مقاله همچنین به احتمالات پیشرفته‌تری در آینده مانند استفاده از شبکه‌های ناشناس‌ساز مانند Tor به منظور مخفی کردن آدرس‌های IP شرکت‌کنندگان و استفاده از اثبات دانایی صفر یا secure enclave اینتل برای اعتبارسنجی تراکنش‌ها بدون آشکارسازی محتوای آن‌ها اشاره می‌کند. در حالی که همه این پیشنهادها ممکن هستند، همچنین می‌توانند در مورد بلاکچین‌های عادی که از مدل ورودی-خروجی استفاده می‌کنند نیز به کار گرفته شوند و در واقع رمز ارز‌هایی مانند Dash، Zcash و Verge از این راهکارها استفاده می‌کنند. بنابراین تنها مزیت منحصر به فرد Corda از لحاظ محرمانگی همان نمایان بودن کاهش یافته تراکنش‌ها است که در بهترین حالت ناکامل است.

همه‌چیز در دست انجام

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

با توجه به این شجره خانوادگی، پیشینیان تراکنش را والدین، پدربزرگ‌ها و مادربزرگ‌ها و اجداد آن تعریف می‌کنیم. «آدم و حوا»ی درخت ما تراکنش‌های صدوری هستند که دارایی‌ها را ایجاد کرده و خود ولدی ندارند. همانند یک شجره خانوادگی عادی، دو تراکنش نمی‌توانند اجداد یکدیگر باشند. به زبان رسمی علوم کامپیوتر، این یک گراف جهت‌دار غیرمدور یا DAG است، که در آن پیشینه به عنوان بستار متعدی رابطه ولدی تعریف می‌شود.

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

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

شجره خانوادگی Cordaی خوب و Cordaی بد

تعامل متقابل

زنده باد تعامل متقابل!

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

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

واسطه‌گری مجدد

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

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

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

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

موجودی عجیب

با در نظر گرفتن مقیاس پذیری، محرمانگی، قابلیت تعامل متقابل و حذف واسطه‌ها، به سختی می‌تواند به نظری ساده در مورد Corda رسید. به طور کلی، Corda به نظر منِ توسعه‌دهنده بلاکچین… جالب اما عجیب می‌رسد. Corda که طراحی شده است تا مشکلات کلیدی مقیاس پذیری و محرمانگی را حل کند، راهکارهایی ناقص ارائه می‌دهد که به شکل «شجره خانوادگی» تراکنش بستگی دارد. با این حال، برای دستیابی به این مزایایی جزئی، Corda یکی از ویژگی‌های اصلی بلاکچین‌ها را از دست داده است: حذف واسطه‌های تراکنش. با وجود این که Corda بدون شک در قابلیت تعامل متقابل عالی عمل می‌کند، اما آیا این واقعا کافی است؟

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

کاستدی ۲٫۰ (Custody)

اما من ترجیح می‌دهم رویکردی مثبتتر اتخاذ کنم. به جای تمرکز بر مقایسه با بلاکچین، می‌توانیم Corda را به عنوان ارتقاء فنی بزرگی نسبت به وضعیت موجود حوزه مالی در نظر بگیریم. کافی است کلمه «نوتاری» را با «کاستدی» جایگزین کنید و همه چیز در جای خود قرار می‌گیرد. ( کاستدی یک نهاد مالی است که دارایی‌هایی را از طرف دیگران نگاه می‌دارد) بله، نوتاری‌ها واسطه هستند، که می‌توانند تراکنش‌ها را مسدود کرده و وقوع تناقض را ممکن سازند، اما این در مورد کاستدی ها امروز نیز صادق است. یک «تراکنش تغییر نوتاری» می‌تواند به عنوان انتقال دارایی‌ها از یک کاستدی به کاستدی دیگر تلقی گردد. و تراکنش‌های Corda به همان دلیلی تنها توسط یک نوتاری امضا می‌شوند که ما تمایل داریم مبادلات دارایی تنها در یک مکان اتفاق بیفتد: برای جلوگیری از این که هر یک از طرفین دارایی خود را از دست بدهد.

با نگاه به Corda از این منظر، می‌بینیم که چقدر مدل سنتی تولیت را بهبود داده است.

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

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

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

شاید از این مطالب هم خوشتان بیاید.

ارسال پاسخ

آدرس ایمیل شما منتشر نخواهد شد.