ساتوشی ناکاموتو با ارائه بیتکوین یک تکنولوژی را بهصورت کاملا عملیاتی به دنیا معرفی کرد که علیرغم حیات چندینساله اجزایش، یک ایده ناب به حساب میآمد؛ و آن تکنولوژی چیزی نبود جز بلاکچین.
بلاکچین مجموعهای کارآمد از تکنولوژیهایی بود که قبلا معرفی شده و در برخی امور نیز مورد استفاده قرار میگرفتند؛ اما رمزارز بیتکوین و موفقیت بیچونوچرای آن در عرصه عملیاتی، باعث شد نام بلاکچین بر سر زبانها بیافتد و راه خود را در تمام ارکان زندگی باز کند.
بلاکچین بهقدری قدرتمند و دارای ویژگیهای فراوان است که کارشناسان را وسوسه میکند تا از آن برای هر کار روزمرهای استفاده کنند. مکانیسمهای رایگیری، زنجیرهتامین، نگهداری اسناد، حقوق مالکیت و رمزارزها تنها بخشی از حوزههایی است که با ورود بلاکچین دچار تحولات اساسی شده است.
اما آن چیزی که باعث ارزش بلاکچین شده، پیادهسازی یک دفترکل توزیعشده متشکل از بلوکهای اطلاعاتی بهم زنجیرشده است که بدون نیاز به شخص ثالث، تضمین میکند نسخههای ثبت شده آن بر روی تمام اعضا یکسان و غیرقابل تغییر است. وظیفه اثبات یکسان بودن آن بر عهده "پروتکل اجماع" و وظیفه نگهداری بدون تغییر آن بر عهده "بلوکهای زنجیرشده" است.
حال سوال اینجاست که دفترکل توزیع شده بهتر است یا دفترکل متمرکز؟
از آنجا که دفترکل توزیعشده را میتوان نسل جدیدی از دیتابیس درنظر گرفت و بلاکچین هم یک نمونه موفق از پیادهسازی دفترکل توزیعشده است؛ سوالی که ذهن برخی کارشناسان این حوزه را درگیر خود کرده، این است که با توجه به ویژگیهای منحصربهفرد بلاکچین، آیا میتوان یک نسخه کلی برای دیتابیس پیچید و به طورکل از دیتابیسهای توزیعشده استفاده نمود؟
جواب قطعا "خیر" است. دیتابیسهای توزیع شده و متمرکز هر کدام دارای مزایا و نقاط ضعفهایی هستند که یک توسعه دهنده باید بر اساس نیازها، محدودیتها و امکانات، یکی از آنها را برای استفاده انتخاب نماید.
در ادامه برخی از ویژگیهای دیتابیس متمرکز و دیتابیس توزیعشده (بر مبنای پیادهسازی بلاکچین) را با هم مورد بررسی قرار میدهیم. دانستن مزایا و معایب هر یک از این تکنولوژیها میتواند ما را در انتخاب دیتابیس مورد نیازمان یاری کند.
الف) دیتابیس متمرکز
مزایا:
· متمرکز است. در یک محل امن و بر روی سختافزار مناسب قرار دارد.
· هزینه نگهداری و تامین منابع مورد نیاز برعهده سازمان مربوطه است.
· دادههای ثبت شده در دیتابیس کاملا محرمانه است.
· هرکسی به قدری که نیاز است میتواند به دادهها دسترسی داشته باشد.
· فقط داده نهایی در دیتابیس نگهداری میشود.
· سرعت بالایی در خواندن و نوشتن تراکنشها دارد.
· تعداد "تراکنش بر ثانیه" بالایی را پشتیبانی میکند. (با روشهایی مثل کلاستر میتوان این ظرفیت را افزایش داد.)
معایب:
· یک شخص ثالث تمام اطلاعات کاربران عضو را در اختیار داشته و مسئول بررسی صحت تراکنشها است.
· به دلیل متمرکز بودن، در برابر خرابیها آسیبپذیر خواهد بود. (با افزونگی میتوان تا حدودی این ضعف را برطرف نمود.)
· پذیرش عضو جدید و حذف عضو قدیمی، فقط بر اساس نظر و سیاستهای مدیر دیتابیس انجام میگیرد.
· سوابق تراکنشها وجود ندارد.
· امکان تغییر در دیتا وجود دارد.
ب) دیتابیس توزیعشده
مزایا:
· تحت کنترل هیچ شخص یا سازمانی نیست .
· تمام اعضا امکان دیدن تراکنشهای ثبت شده در دیتابیس را دارند.
· توزیع شده است. تمام اعضا یک نسخه از دیتابیس را نزد خود نگه میدارند.
· از تحمل خطای بسیار بالایی برخوردار است.
· دادهها غیرقابل تغییر است.
· به دلیل نگهداری کامل سوابق، امکان تقلب در دادهها بهراحتی وجود ندارد.
· امکان مخفی نگه داشتن هویت واقعی اعضا وجود دارد.
· هر عضو میتواند به صورت کاملا مستقل اقدام به تبادل داده خود با سایر اعضا نماید.
معایب:
· اعضا جهت نگهداری یک نسخه از دیتابیس به فضای ذخیرهسازی نیاز دارند.
· تعداد "تراکنش بر ثانیه"، دارای محدودیت است.
· به علت نگهداری سوابق تمام تراکنشها، حجم دیتابیس بزرگ خواهد شد.
· دادهها بهصورت محرمانه نگهداری نمیشوند. (در هایپرلجر فابریک تا حدودی این ضعف برطرف گردیده است.)
· کارایی آن نسبت به دیتابیس متمرکز به مقدار قابل توجهی کمتر است.
· برای یکسان بودن دادهها، نیاز به پروتکل اجماع دارد که ممکن است منابع و زمان زیادی را نیاز داشته باشد.
· ناتوانی یک عضو در نگهداری اطلاعات شناسایی خود، ممکن است به از دست رفتن تمام داراییهای او بیانجامد.
امنیت در دیتابیسهای متمرکز و توزیعشده
خطرات بالقوه برای هر دو فناوری تقریبا یکسان است. هر دو محیط متمرکز و توزیعشده دارای حملات مشابهی هستند که البته ممکن است جزئیات پیادهسازی حملات در هریک متفاوت باشد. به عنوان مثال برای حملات منعسرویس (DoS) هر دو فناوری آسیبپذیر هستند. اما اجرای آن در دیتابیسهای متمرکز بر روی سرور مرکزی و در دیتابیسهای توزیعشده بر روی تولید تعداد بالای تراکنشها است.
همچنین میتوان به کد مورد استفاده جهت ثبت تراکنشها اشاره کرد. در دیتابیسهای متمرکز این کد توسط یک مسئول مرکزی تولید شده و مورد استفاده کاربران قرار میگیرد. در دیتابیسهای توزیع شده نیز کدها در قالب قراردادهای هوشمند ممکن است توسط هر یک از اعضا ارائه شود. نقص احتمالی در هر یک از این کدها عواقبی شبیه به هم برای دیتابیس به ارمغان خواهد آورد.
نتیجهگیری:
همانطور که در سطور فوق ملاحظه کردید برخی مزایایی که برای هریک از دیتابیسها بیان شد به نوعی میتواند از جمله معایب همان دیتابیس نیز ذکر شود. لذا پژوهشگران بلاکچین سعی کردند با تعریف دو کلاس مختلف از بلاکچین با نامهای Permissioned و Permissionless (یا Private و Public) برخی از ویژگیهای بارز و غیرقابل انکار دیتابیسهای متمرکز را با فناوری بلاکچین ترکیب کرده و باعث افزایش مقبولیت این تکنولوژی جدید در میان توسعهدهندگان شوند.
دیتابیسهای متمرکز و توزیعشده در زمینه امنیت و حملاتی که ممکن است بر روی آنها روی دهد نیز تقریبا با یکدیگر برابری میکنند. پس همانطور که قبلا گفته شد بهترین راه برای انتخاب نوع دیتابیس مورد استفاده، بررسی نیازها و شرایط است.
دیاگرام زیر با در نظر گرفتن ویژگیهای بلاکچین Private و Public در مقایسه با دیتابیسهای متمرکز، میتواند یک راهنمای گرافیکی مفید برای انتخاب نوع دیتابیس باشد.