بلاکچین کوردا چیست و چه کاربردی دارد؟
به گزارش خبرنگار «نبض فناوری» در اصل کوردا از بلاکچین بهعنوان یک گاوصندوق توزیعشده استفاده نمیکند. کوردا الهام گرفته از بلاکچین است و مثل بلاکچین یک تکنولوژی گاوصندوق توزیعشده (Distributed Ledger Technology) یا DLT است.
در گاوصندوق توزیعشده کوردا، برخلاف بلاکچین بیشتر ارزهای دیجیتال (به غیر ارز دیجیتال لیبرای فیسبوک) هرکسی نمیتواند وارد سیستم شود، تراکنش انجام دهد یا تراکنشها را تأیید کند. تنها کسانی میتوانند در این سیستم وارد شوند که از طرف نهاد مرکزی این کنسرسیوم تایید شده باشند و هویتشان هم معلوم باشد.
البته، چون در کوردا چیزی با عنوان ماینینگ اتفاق نمیافتد لازم هم نیست که کسی تراکنش را به معنایی که از قبل میدانیم تایید کند؛ اما اگر چنین چیزی در کوردا وجود داشت، میتوانستیم آن را اثبات صلاحیت (Proof of Authority) بمانیم. چیزی مثل ارز دیجیتال لیبرای فیسبوک.
چرا کوردا از بلاکچین استفاده نمیکند؟
در شبکههای بلاکچین یک نسخه از بلاکچین موجود در همه نودها کپی میشود. پیش از کوردا گاوصندوقهای توزیعشده دیگری مثل هایپرلجر فابریک (Hyperledger Fabric) برای استفاده در مبادلات تجاری ساختهشدهاند، اما حتی همین هایپرلجر فابریک نیز مثل ارزهای دیجیتال، بلاکچین خود را در همه سازمانهایی که با آن کار میکنند، کپی میکند.
کوردا این رهیافت را غیرلازم و از بین برنده حریم خصوصی شرکا میداند. در نظر کوردا تنها کسانی که باید از اطلاعات تراکنش با خبر باشند، طرفین یک تراکنش مالی و احیانا اشخاصی حقیقی یا حقوقی هستند که با این تراکنش ارتباط دارند. اگر بانک یک اعتبارنامه صادر میکند تا به مشتری بگوید که مثلا ۱۰۰ هزار تومان به بانک بدهکار است، فقط بانک، مشتری و شاید یک سازمان مربوط، باید از آن خبردار شوند.
تبادل اطلاعات مستقیم بهجای پخش اطلاعات در بلاکچین
در شبکه بلاکچین وقتی تراکنشی انجام میشود، بلاکی ساخته میشود یا هر اتفاقی رخ میدهد، دادههای این اتفاق در کل شبکه پخش میشوند تا همه از آن خبر داشته باشند. چیزی که البته کوردا نمیخواهد.
چنین چیزی البته در شبکههای که هویت افراد در آن ناشناس است مشکلی ندارد؛ زیرا وقتی شما میخواهید پیامی به کسی خاصی بدهید و بقیه نفهمند مخاطب پیام کیست، بهتر است آن را به همه ارسال کنید، ولی فقط مخاطب پیام محتوای پیام را خواهد فهمید. البته همین هم در حالتی ممکن است که مثل شبکه بیتکوین، آدرس افراد ارتباطی با هویتشان نداشته باشد.
شبکه کوردا چیزی به نام نقشه شبکه (Network Map) دارد که اطلاعات هویتی اعضا و نحوه اتصال به هرکدام از اعضای شبکه در آن مشخصشده است. این مسئله امکان میدهد که هرکدام از اعضا مستقیما بتوانند به دیگر عضو طرف خود وصل شوند.
اگر یک سازمان یا موسسه مالی بخواهد وارد شبکه تبادل اطلاعات مالی کوردا شود، باید در آن ثبتنام کند و پس از اجازه کنسرسیوم، با هویت مشخص خود در شبکه فعالیت کند؛ یعنی در این شبکه هویت اعضا نامعلوم نیست. هر موسسهای هم بهواسطه نقشه شبکه میداند که چگونه با موسسه موردنظر خود تبادل داده کند.
مشخصا در این سیستم لازم نیست کارهایی مثل اثبات کار برای تایید تراکنشها انجام شود. اثبات کار هم زمانبر و سخت است و هم تبادل اطلاعات تراکنشها را کند میکند.
در این سیستم که هویت همه اعضا مشخص است، اولا یکطرف به دلایلی در ادامه میآیند نمیتواند تاثیری روی کل شبکه بگذارد. در ثانی حتی اگر چنین کاری بکند، تاثیرش چندان چشمگیر نخواهد بود.
در بلاکچینهایی که تا امروز وجود داشتند، تراکنشها در بلوکها ثبت میشد و در نهایت به بلاکچین متصل میشد. اما در کوردا نه بلوک وجود دارد و نه بلاکچین.
یکی از دلایلی که در بلاکچینهای موجود، تراکنشها باهم در یک بلاک جمع میشدند، این است که در این شبکهها باید پیامها پخش شوند تا همه از آن اطلاع یابند؛ اما، چون پخش شدن پیامها در کل شبکه زمان میبرد، در همین بازه زمانی تراکنشهای دیگری هم رخ میدادند.
در یک سیستم اثبات کار که همه تلاش میکنند برای خود یک بلوک معتبر بسازند، این نکته مهم است که همه نود دقیقا و باهم بدانند که آخرین بلوک معتبر ساختهشده چه بوده است. به همین دلیل باید سرعت تولید بلاکها بهاندازه کافی کم باشد تا قبل از تولید بلوک جدید، زمانی کافی برای اینکه بلوک قبلی به دست همه اعضای شبکه برسد وجود داشته باشد.
کوردا بهجای پخش اطلاعات در شبکه، از ارتباط مستقیم استفاده میکند. در نتیجه لازم نیست این زمان لازم برای پخش اطلاعات در شبکه را بهحساب آورد. تراکنشها از طرف سازمان متقاضی مستقیما به سازمان هدف ارسال میشوند که فرآیندی سریعی است.
اما چون تراکنشها به همه شبکه ارسال نمیشوند، هیچکدام از اعضای شبکه کل تاریخچه تراکنشهای شبکه را ندارند. فقط آنهایی را دارند که بهنوعی در تراکنش دخیل بودهاند. در نتیجه باید روشی باشد که بتوان اعتبار یک تراکنش را تایید کرد و وضعیت فعلی اعضا را فهمید.
تراکنشها در کوردا چگونه اتفاق میافتد؟
تراکنشها در کوردا بر پایه مفهوم وضعیت مصرفشدنی (consumable states) انجام میشوند. برای مثال یک وضعیت میتواند چنین باشد موسسه الف مالک تاییدشده دارایی A است.
حال موسسه الف میتواند این وضعیت را خرج کند تا بتواند یک تراکنش انجام دهد که انجام این تراکنش باعث ایجاد «وضعیت» جدید میشود. وضعیتی مثل موسسه ب مالک تاییدشده دارایی A است.
توجه داشته باشید که وقتی این وضعیت ابتدایی مصرف شد، دیگر اعتبار ندارد و بعد از انجام تراکنش، موسسه الف دیگر مالک دارایی A نیست.
این وضعیتهای مصرف شدنی در کوردا شبیه وضعیت لحظهای یک بلاکچین هستند؛ زیرا تراکنشهای جدید تنها میتوانند بر مبنای وضعیت فعلی بلاکچین که تعیین میکند هر طرفی چقدر بیتکوین دارد، انجام شوند؛ و قتی یک تراکنش انجام و تایید شود، دیگر وضعیت ده دقیقه پیش بلاکچین بیتکوین معتبر نخواهد بود بلکه باید به سراغ وضعیت فعلی برویم.
کاری که کوردا انجام میدهد این است که وضعیت فعلی کل مجموعه را به بخشهای کوچک تکهتکه میکند و نمیگذارد کل آنها برای همه قابلدیدن باشند و فقط اجازه میدهد طرفهای درگیر یک تراکنش آن را ببیند.
این روش البته یک بخش مهم را کم دارد. اگر طرف ب وارد یک تراکنش شود که در آن «وضعیتی» را «مصرف کند» که چیزی در مورد آن نمیداند، چگونه باید مطمئن شود که تراکنش معتبر است؟
مثلا از کجا باید بداند که موسسه الف، خود هنوز مالک دارایی A هست که میخواهد به من منتقلش کند؟
دفاتر اسناد رسمی دیجیتال کوردا
این کار توسط دفاتر اسناد رسمی کوردا (Corda Notaries) انجام میشود. هر دفتر سند رسمی در کوردا، برنامهای است که به بخشی از اطلاعات وضعیت کل سیستم دسترسی دارد. با داشتن این دفاتر اسناد رسمی، یک تراکنش به این صورت انجام میشود.