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