بسیاری واژه بلاکچین (Blockchain) را با بیتکوین و فناوری پشت رمزارزها میشناسند. معروفیت بیتکوین باعث شد که بلاکچین فراتر از رمزارزها و به عنوان راهکاری برای بسیاری از کاربردها نیز پیشنهاد شود از نگهداری اطلاعات پزشکی تا دولت الکترونیک بلاکچینی، انتخابات بلاکچینی و...
اما قابل تصور بود که بسیاری از ایدهها و پروژههای منتسب به بلاکچین بیشتر تحت تاثیر معروفیت آن بودند تا مزایای راهکار فنی ارائه شده و در نهایت بسیاری از آنها شکست خورده یا تعطیل شدند. بطور مثال در یک بررسی در سال 2017 بیش از 90 درصد پروژه ها و استارتاپهایی که مبتنی بر بلاکچین بودند شکست خورده بودند و از آنها که باقی مانده اند نیز بخش قابل توجهی در همان حوزه رمزارزها یا مرتبط با آن هستند.
اما بلاکچین چیست؟ و چرا راهکار خوبی برای رمزارزهاست؟ گذارید نگاهی به فناوری بلاکچین داشته باشیم.
قبل از هر چیز باید بدانید در دنیای رمزارزها، بلاکچین تنها یکی از تکنیکهای استفاده شده است در واقع مجموعه ای از الگوریتمها و روشهایی رمزنگاری، ذخیره داده، ارتباط در شبکه،شیوه ساخت بلاکهای جدید، دادن حق ثبت اطلاعات و کارمزد در شبکه و ... وجود دارند که حتی بین رمزارزهای مختلف متفاوت است. بطور مثال شنیده یا خوانده اید که استخراج بیتکوین نیازمند دستگاههای خاص برای محاسبات ریاضی و صرف انرژی است اما این در واقع ارتباط خاصی به فناوری بلاکچین ندارد و مثلا امروز رمزارزهایی هستند که دیگر نیازی به چنین حجمی از صرف انرژی ندارند.
بلاکچین چیست؟
بطور ساده شاید بتوان بلاکچین را یک نوع ساختمان داده یا بانک اطلاعاتی دانست. در بلاکچین اطلاعات در بلاک هایی از داده ذخیره می شوند بطور مثال یک هزار تراکنش در یک بلاک اطلاعاتی (یا فرض کنید یک فایل) ذخیره می شوند و سپس تمام داده های ثبت شده در این بلاک با یک شیوه درهم آمیزی داده (هش hash) نشان گذاری می شوند.( "هش کردن" یک شیوه یا یک تابع برای تبدیل یکطرف داده ها است بطوریکه همواره با همان داده اولیه بتوان یک کد یا داده یکسان بدست آورد. داده ها میتوانند یک پسورد، یک نامه یا حتی یک فایل اجرایی یا فیلم باشند. اطلاعات هش شده را نمی توان رمزگشایی کرد و اصولا فاقد داده های اولیه هستند و صرفاً میتوانند اشاره به داده اولیه داشته باشند، خروجی الگوریتمهای هش معمولا بصورت یک هشکد هستند و عباراتی مثلا در حد 44 حرف ). پس از ثبت اطلاعات در یک بلاک داده و نشان گذاری آن ، همان کد نشان گذاری در یک بلاک داده جدید و بعدی نیز ثبت می شود و در واقع در هر بلاک داده علاوه بر هش کد داده های خود به هشکد بلاک قبلی نیز ثبت می شود. این شیوه خوبی برای نگهداری داده و فراهم نمودن روشی برای بررسی صحت داده است.
افسانه اول، دادهها در بلاکچین غیرقابل هک و تغییر ناپذیرند!
یکی از ادعاهای مکرر در مورد بلاکچنین تغییر ناپذیری اطلاعات ثبت شده است. حقیقت این است که اینطور نیست. صرف بلاکچین چنین تضمینی ندارد و در واقع به مانند یک فایل یا یک بانک اطلاعات شما میتوانید اطلاعات درون یک بلاک داده را تغییر دهید و البته "اگر" کسی این اطلاعات را با هشکد ثبت شده در آن بلاک چک کند متوجه تغییر داده می شود اما اگر شما هش کد اطلاعات همان بلاک و سپس بلاکهای بعد از آنرا تغییر دهید عملاٌ بطور درست همه اطلاعات را تغییر داده اید! هر فرد دیگری تنها زمانی متوجه تغییری خواهند شد که هشکد همه بلاکها را قبلاٌ در جاهای دیگری هم ثبت کرده و هش همه بلاکهای موجود را با هش کد از قبل ثبت شده مقایسه کند و البته که نیاز هم هست که همه اطلاعات در جاهای دیگری هم ذخیره شوند تا در صورت تشخیص تغییرات از اطلاعات قبلی استفاده شود. بنابراین صرف بلاکچین تضمین تغییرناپذیری نیست و نیازمند برنامه و شبکه ای جهت پشتیبانی از آن دارد.
در رمرزها از بلاکچین برای ثبت تراکنشهای کاربران استفاده می شود (شبیه دفتر روزنامه در حسابداری) و البته همانطور که گفته شد نیاز است که بارها این اطلاعات در جاهای دیگر ثبت و بارها توسط نرم افزارها و سرورهای متفاوت این اطلاعات با اطلاعات قبلی ذخیره شده (فهرست هش کد بلاکها) قیاس شوند و البته بازهم اگر بخش غالب شبکه تصمیم به تایید اطلاعات تغییر یافته داشته باشد عملاً میتوان اطلاعات را تغییر یا حذف کرد.
افسانه دوم، در بلاکچین نیازی به هزینه سخت افزار نیست!
جدا از بحث استخراج بلاک در برخی رمزارزها (مانند بیتکوین) که صرف برق و هزاران دستگاه محاسباتی است، همانطور که اشاره شده برای پشتیبانی از یک بلاکچین نیاز برنامه ها و سرورهای دیگری است که داده ها را نگهداری، روی صحت اطلاعات نظارت و در اطلاعات جستجو و... کنند. برای مثال در مورد بیتکوین در حال حاضر صحبت از 5 تا 10 هزار سروری است که به آنها Full Node گفته می شود و اطلاعات تمامی بلاکهای دادهی تراکنشهای بیتکوین را دارند. در حال حاضر حجم داده های بیتکوین حدود 340 گیگابایت است و در واقع حداقل این اطلاعات در پنج هزار سرور بطور کامل کپی و نگهداری می شوند و بغیر از این چند هزار سرور نیز بدون کپی همه اطلاعات اما بصورت لحظه ای صحت این دادهها را در هر کدام از این سرورهای اصلی بررسی می کنند. البته با این تعداد کپی از داده ها احتمال تغییر و از دست رفتن داده ها بسیار کم است اما احتمالاً با من هم نظر هستید که این حجم سخت افزار و انرژی مصرفی بیش از حد است. جالب است بدانید که بیتکوین با وجود چنین شبکه ای تنها قادر به پشتیبانی از حداکثر 7 تراکنش در لحظه است و اصولا این تعداد سرور تاثیری در افزایش پتانسل ثبت تراکنش در لحظه در شبکه بیتکوین را ندارند (در مقایسه به تنهایی Visacard تعداد تراکنشی حدود 250 برابر بیتکوین را هم اکنون در ثانیه پاسخ میدهد). صد البته در رمزارزهای دیگر و کاربردهای بلاکچین سرعت میتواند تا حدودی بالاتر رود(تا چند ده هزار تراکنس) اما در نهایت برای از پشتیبانی از یک شبکه مطمئن بلاکچین به سخت افزاری بیش از یک شبکه متمرکز نیاز خواهد بود و حتی اگر شما هزینه خرید این سخت افزار را ندهید نیاز است که بصورت کارمزد این هزینه پرداخت شود.
افسانه سوم، بلاکچین سریعتر از راهکاری سنتی ذخیره اطلاعات است!
دخیره داده ها بصورت بلاکچین تنها روی یک کامپیوتر تقریبا سرعتی برابر یک بانک اطلاعات دارد (و احتمالاً شاید کندتر هم باشد) اما وقتی صحبت از یک شبکه بزرگ بلاکچین است عوامل گوناگونی روی سرعت آن تاثیر میگذارند. مواردی مثل اندازه هر بلاک داده، دوره زمانی برای ساخت هر بلاک، شیوه ثبت اطلاعات و تقسیم کار در شبکه، صحت سنجی و ارتباط Node ها (همان سرورهایی که یک کپی از داده را نگاه داشته و یا صحت داده های بلاکها را بررسی میکنند) و ... در واقع حتی در خوشبینانه ترین حالتها نیز سرعتی مانند ثبت اطلاعات در بانکهای اطلاعاتی رایج را ندارند و البته باید توجه کنید که واقعاً بلاکچین با هدف سرعت طراحی نشده و راهکار خوبی برای ثبت اطلاعات بصورت غیرمتمرکز و بخصوص بصورت عمومی (با شفافیت بیشتر) است. به زبان ساده تر در یک مجموعه سخت افزار یکسان اگر شما یک کلاستر از بانکهای اطلاعاتی معمول مانند Oracle یا MsSql Server و یا نسخه های NoSql مانند Mongodb داشته باشید و اطلاعات چندین بار هم در کلاسترها کپی شده باشند احتمالا بازدهی بالاتری نسبت به اجرا و ثبت داده در همان شبکه بصورت بلاکچین خواهید داشت (برخی برنامه های بلاکچینی خود از بانک اطلاعات سنتی برای مدیریت اطلاعات استفاده میکنند)
افسانه چهارم، بلاکچین بهترین شیوه راهکاری غیرمتمرکز
یکی از بزرگترین برداشتهای اشتباه در مورد بلاکچین هم ارز و هم معنا دانستن آن با مفهوم غیرمتمرکز است و این احتمالاً اشتباهی است که باعث شکست در بسیاری از پروژههای بلاکچین شده است. اصولاً در اینکه آیا شیوه های غیرمتمرکز بهتر از شیوه های متمرکز هستند جای بحث است و در بسیاری از کاربردها واقعاً نیازی به آن نیست اما حتی در راهکارهای غیرمتمرکز هم بسیاری اوقات شیوه ای بغیر از بلاکچین شیوه بهتری است. امروزه چندین روش برای انتقال و نگهداری فایل بصورت غیرمتمرکز (مانند تورنت) یا انتقال پیام (مانند ماتریکس) و همچنین شیوه های مختلف صحت سنجی اطلاعات وجود دارد و اصولا بلاکچینزه کردن هر چیزی الزاماً به معنای بهترین شیوه اجرای آن نیست.
+ نوشته شده در چهارشنبه یکم اردیبهشت ۱۴۰۰ ساعت 16:37 توسط علیرضا
|