بلاک چین، جایگزینی مترقی برای دیتابیسهای متمرکز
براساس نتایج یک پروژهی تحقیقاتی در مؤسسهی Boston Computing، بیش از ۶۰ درصد کسبوکارهایی که در سازوکار نگهداری دادههایشان با حوادث جدی مواجه میشوند، ۶ ماه پس از آن رخدادها عملا به کار خود پایان میدهند. این رخدادهای نامطلوب همان از دست رفتن دادهها و زیرساختهای نگهداری آنها است که در مواجهه به خطراتی نظیر نفوذ مخرب، نقایص سختافزاری، آسیبهای فیزیکی و... رخ میدهند.
تصور کنید یک کسبوکار نوپا و کوچک فروش اینترنتی که تمام زیرساختهای میزبانی آن (حتی نسخههای پشتیبان) در یک دیتاسنتر متمرکز است، در پی یک حادثه دچار نقص شود یا از بین برود. کمینهی مضرات این رخداد، از دسترس خارج شدن سایت برای مدت قابل توجهی است که اثر نامطلوبی بر رفتار مصرفکننده و مشتریان خواهد داشت. کاربرانی که در آن زمان برای دریافت خدمت یا خرید محصول به سایت مراجعه کردهاند، با ناامیدی بازمیگردند. اما در پشت پردهی ماجرا عدهای در دیتاسنتر مشغول رسیدگی به اوضاع هستند. اقداماتی نظیر خرید تجهیزات جدید، تنظیم دامنهها و مسیرهای جایگزین و بهویژه بازسازی دادهها درحال انجام است تا همه چیز به روال عادی بازگردد. با وجود این، بازهم ممکن است امکان رسیدن به نقطهی پایدار قبل از حادثه میسر نشود.
البته این مسئله با معرفی سرویسهای میزبانی ابری تا حد زیادی مرتفع شد. سرورهای ابری به تدریج به سازوکارهای میزبانی اضافه شدند. راهکاری که هم ضریب اطمینان بالایی داشت و هم اینکه غالبا ارزانتر بود.
اما باز هم سایهی ترس از دست رفتن پایگاه دادهها و بهطور کلی رخداد نامطلوب برای دیتاسنتر همواره بهدنبال مدیران کسبوکارهای حوزهی فناوری است. اینجا است که بلاکچین این سایه را برمیچیند.
بلاک چین همهی آنچه برای زیرساخت دادهای امن، با ضریب دسترسی بالا، خودادارهشونده و بهویژه خودترمیم و بازگشتپذیر لازم است را در بر دارد. معماری غیرمتمرکز و بدون سرور بلاکچین، راهکاری پایدار برای نگهداری دادهها در سطوح تشکیلاتی است، بدون آنکه هزینهی گزافی به سازمان یک کسبوکار تحمیل کند.
وقتی صحبت از بلاکچین میشود، مشخص است که هر بلاک یا نود بهطور مداوم سایر بلاکها یا نودها را از تغییرات خود آگاه میکند و مدام درحال جورسازی و همگامسازی (Replication) است. این موضوع در پایگاههای دادهی سنتی هم برقرار است، لیکن در این فناوری در نقاط بیشتر و با هزینهی معقول، در مجموع انتخاب بهتری نسبت به پایگاهدادههای متمرکز است و خیال صاحب کسبوکار را از پایداری سازوکارهای دادهای خود راحت میکند.
اکنون ممکن است این پرسش مطرح باشد که چه راهحلی برای مسئلهی تداخل و پایایی دادهها وجود دارد؟ یک فناوری تکمیلی در کنار بلاکچین، قراردادهای هوشمند است. قراردادهای هوشمند علاوهبر اجرای فرآیندهای کسبوکاری، وظیفهی ساماندهی تغییرات دادهها را نیز بهعهده دارند.
اگر بخواهیم آنچه تاکنون گفته شد را بهطور خلاصه و با تشبیه بیان کنیم، باید بگوییم: از منظر کارکردی، بلاکچین مانند سروری است که فعالیتش هرگز متوقف نمیشود و پایگاه دادهای است که هرگز دادههایش آسیب نمیبیند.
اما باید این نکته را هم مدنظر داشت که بلاکچین نسخهی جامع و راهحل قطعی برای هر نیاز پردازش دادهای نیست. برای درک بهتر این موضوع میتوان کارکرد نرمافزارهای پیامرسان را در مقایسه با سرویس ایمیل مثال زد. بدیهی است که هر یک کارکرد خود را دارند و ایمیل نمیتواند جایگزین یک سرویس پیامرسان مانند واتساپ باشد.
بهطور دقیقتر در پروژههای مهداده (Big Data) که سرویسهای تحلیلی از یک ساختمان چندبعدی داده ارائه میشود (Data Warehouse)، بهکارگیری این فناوری غیرمتمرکز چندان مقرونبهصرفه نیست. تصور کنید حجم سرسامآوری از داده باید در یک زمان کم در تمام بلاکها همگامسازی و بهروزرسانی شود؛ این مسئله عملا هزینهی بالایی در پی دارد و هدایت لود سنگین دادهها در شبکه، به هیچ وجه راهکاری مناسبی برای جایی نیست که کسبوکار اصلی مبتنی بر نتایج تحلیل داده بوده و جریان درآمدی از آن حاصل میشود (مانند سرویسهای تبلیغات اینترنتی). درحقیقت میتوان گفت بلاکچینها راهکار بهینه برای تراکنش داده در هستهی یک کسبوکار هستند. یک مصداق روشن در اینجا همان بهکارگیری بلاکچین در فناوریهای مالی است؛ جایی که یک حساب بانکی نگهداری و پردازش میشود و انتقال وجوه روی آن صورت میگیرد. این کار نیاز به جابجایی حجم بالای داده ندارد و صرفا صحت و دقت آن مهم است. در چنین فضایی است که اصالت و صحت داده و همچنین ایمنی و حفظ مالکیت داده و حریم اختصاصی آن در فرآیندهای یک سامانهی نرمافزاری اهمیت دارد و لطمه به هر یک از این ارکان، کل کسبوکار را تهدید خواهد کرد. بلاکچین راهکاری مناسب برای این حوزه است. بهعنوان مثالی دیگر درنظر بگیرید اگر دیجیکالا دادههای مربوط به میزان ترافیک وبسایت خود را از دست بدهد، تاب خواهد آورد، اما اگر دادههای مربوط به موجودی انبار آسیب ببیند، ممکن است تلفات جبرانناپذیر باشد.
از آنجا که یک نیاز اساسی و حساس مشتری این است که هروقت مراجعه کرد، بتواند خدمات دریافت کند، پیوستگی و آمادگی زیرساختها هم یک دغدغهی جدی برای مدیران کسبوکارها است. از سوی دیگر، طرحهای ارتقاء و توسعه همیشه آبستن بهروزرسانیها و مهاجرت به پلتفرمهای جدید است که بهناچار مستلزم توقف خدمت برای یک زمان مشخص است و این توقف هم نارضایتی و عصبانیت بهدنبال دارد.
بعضا در راهاندازی و کوچ به پلتفرمهای جدید آنقدر مراحل چک و بازبینی وجود دارد که ممکن است کل سرویس را ساعتها مختل کند. همانطور که پیشتر اشاره شد، نتایج برخی پروژههای تحقیقاتی حاکی از شکست و تعطیلی کسبوکارهایی است که در روند نگهداری پایگاههای دادهشان به مشکل میخورند. لذا در چنین شرایطی بلاکچین موهبتی است که این مراحل گذار و ارتقاء را بدون نگرانی از شکست یا عدم سرویسدهی و بهسرعت و مطمئن میسر میکند. اکنون دیگر تنها دغدغه، سرعت رخداد تراکنش در پایگاه داده نیست؛ بلکه مسئلهی ایمنسازی و صحتسنجی هر تراکنش نیز وجود دارد که این مهم تا مدتها در مبحث مدیریت سیستم مغفول مانده بود.
فناوری بلاکچین را میتوان همان تحول پایگاههای داده نامید. در سامانههای مبتنی بر بلاکچین در یک لایهی بالاتر قراردادهای هوشمند مشغول پردازش ضوابط کسبوکاری سیستم هستند و در لایهی زیرین دادهها مدام در حال بهروزرسانی و همگامسازی و صحتسنجی هستند. هر تغییری در سیستم پیش از اعمال شدن بهطور کامل، در یک یا چند بلاک (که عینا محیط واقعی هستند) از منظر پیشنیازهای زیرساختی و محاسباتی ارزیابی و تست میشود و از همان گام اول، ارتقاء سیستم با انطباق کامل و پایداری بالا پیش خواهد رفت.
در یک تشبیه فنیتر همه چیز مشابه عملکرد فراخوانی یک تابع API از یک کتابخانه است. یک لایه یا اینستنس (instance) از کلاس اصلی مشتمل بر تمام توابع و ویژگیها سمت سرور ساخته خواهد شد. پارامترها به آن پاس میشود و پاسخی که در قالب یک مقدار یا شیء باید بازگردد. در وضیت عادی لایهی منطق کسبوکار در سمت سرور مستقر است و کل فرایندی که به آن اشاره شد، در همان سمت انجام میشود. اما تمایز در بلاکچین آنجا است که کل بستهی عملیاتی میتواند مستقلاً در سمت ایستگاه فراخواننده اجرا شود، بدون اینکه تغییری در نحوهی عملکرد آن مشاهده شود. این یعنی هر نقطه، همهی ظرفیتهای لازم را برای اجرای تابع بهتنهایی و بدون آمد و شد دادهای بر بستر شبکه دارا است.
حال تصور کنید پایگاه دادهای روی یک شبکهی بلاکچین و روی هر یک از نودها مستقر است. پروسیجرها و کدهای محاسباتی هم بالتبع درون آنها و روی تکتک بلاکها وجود دارد. سازوکار رپلیکیشن یا همگامسازی نیز برقرار است. در این شرایط هیچگاه نباید نگران از دست رفتن یک نود یا بلاک باشیم چراکه پردازشها و محاسبات و همگامسازی با سایر نقاط شبکه در تکتک بلاکها برقرار است و بلاک ازدسترفته بهمحض بازگشت به شبکه بهروز خواهد شد.
در بلاکچینهای عمومی هم تمامی داراییهای نرمافزاری با الگوریتمهای کریپتوگرافی رمز شدهاند. این رمزنگاری و نگهداری نیز به عهدهی ماینرهای شبکه در سطح جهان است. اگر هم پای یک شبکه بلاکچین خصوصی درمیان باشد، مالک سامانه و پلتفرم میتواند تمام نودها را در اختیار خود داشته باشد و قید سازوکارهای رمزنگاری را بزند و از مکانیزم امنیتی دیگری استفاده کند. یک راهکار جالب دیگر، پیادهسازی شبکه روی پلتفرمهای ابری مانند مایکروسافت آژور و وبسرویسهای آمازون است که عملا دیگر زیرساخت دادهای کاملا بدون سختافزار خواهد بود.
نکتهی اصلی در مفهوم بلاکچین این است که هر بلاک در شبکه مدام با بلاکهای دیگر مشغول همگامسازی است و این موضوع ریسک آسیب و ازدسترفتن دادهها را تا حد زیادی کاهش میدهد؛ درحالی که مراقبت از ساختارهای متمرکز پایگاههای داده در برابر خطراتی که گفته شد، مستلزم صرف هزینههای بالا و مکانیزمهای پیچیده است.
در نتیجه زمانیکه ما از بلاکچین استفاده میکنیم که ویژگیهای اساسی امنیت، همگامسازی و لایهی منطق کسبوکار را در بطن خود دارد، بههمراه قراردادهای هوشمند که سازوکار توزیعشده و امنی برای اجرای فرآیندهای کسبوکار هستند، عملاً یک ساختمان دادهی مترقی و ایمنتر و پایدارتر دراختیار داریم.
اینگونه است که بلاکچین بهمرور و در بسیاری از سامانههای نرمافزاری جایگزین پایگاه دادههای نسل قبل میشود.