معرفی بلاک چین (Blockchain) و نحوه عملکرد آن
بلاک چین (Blockchain)
بلاک چین زیربنای موفقترین پروژههای رمز ارزها و یک فناوری با آینده کاملا روشن است. ارزهای دیجیتال نوین نظیر بیت کوین و اتریوم، که روز به روز توجه بسیاری را به سرمایهگذاری جلب میکنند، ویژگیهای منحصربهفردشان را مدیون تکنولوژی Blockchain هستند. پروژهها و ایدههای بسیار خلاقانهای بر بستر آن شکل گرفته و روز به روز کاربرد بلاک چین در عرصهها و صنایع مختلف افزایش پیدا میکند. اما بلاک چین چیست و چطور کار میکند؟
بلاک چین را باید نوع خاصی از پایگاه داده (دیتابیس) دانست. ممکن است در بررسی تخصصی رمز ارزها نظیر بیت کوین عبارت دفتر کل توزیع شده (DLT –> Distributed Ledger Technology) را نیز در کنار Blockchain شنیده باشید. هر دو، به مفهوم یکسانی اشاره میکنند. بهطور کلی میتوان گفت بلاک چینیا بهعبارتی زنجیره بلوکی ، پایگاه دادهای متشکل از فهرست سوابق تراکنشهایی است که همواره رشد میکند و بر تعداد آن افزوده میشود. به این سوابق بلاک (Block) میگویند که از طریق رمزنگاری به یکدیگر متصل میشوند.
بلاکها در زنجیرهای از گره هایی با شبکهی نظیر به نظیر(P2P) قرار میگیرند و به مخزن ذخیرهسازی که تشکیل میشود، دفتر کل دیجیتال (Digital Ledger) میگویند. البته همان طور که در بالا اشاره کردیم، بلاک چین بهعنوان نوعی دفتر کلی توزیعشده (Distributed Ledger Technology) شناخته میشود که تاریخچهی دارایی دیجیتال را با استفاده از غیر متمرکزسازی و رمزنگاری، غیر قابل تغییر و شفاف میکند.
اگر بخواهیم یک مثال ساده برای درک بلاک چین داشته باشیم، میتوانیم آن را با سرویس Google Doc مقایسه کنیم. زمانیکه یک کاربر سندی ایجاد میکند و آن را با گروهی از افراد به اشتراک میگذارد، در واقع سند به جای اینکه کپی یا واگذار شود، توزیع میشود. این فرایند زنجیرهی توزیع غیر متمرکز به وجود میآورد که همهی افراد بهصورت همزمان به سند دسترسی دارند. هیچکدام از افراد در انتظار اعمال تغییرات توسط فرد دیگری مسدود نمیشوند و تمام اصلاحات روی سند بدون معطلی ثبت میشوند و اعمال تغییرات کاملا شفاف صورت میپذیرد. البته که فناوری بلاک چین بسیار پیچیدهتر از Google Doc است.
تاریخچه بلاک چین و نوآوری های آن
سابقه فناوری بلاک چین به بیش از سه دهه ی قبل باز می گردد:
در سال 1982 میلادی ، دیوید چائوم برای نخستین بار پروتکل شبیه به بلاک چین را در رسالهی خود با نام «Computer Systems Established, Maintained, and Trusted by Mutually Suspicious Groups» ارائه کرد.
- سال 1991 میلادی استوارت هابرو دابلیو اسکات استورنتا ، زنجیرهای از بلاکهای رمزنگاریشده را برای نخستین بار معرفی کردند.
- سال 1998 میلادی دانشمند علوم کامپیوترنیک سابو روی پروژه (Bit Gold) بهعنوان ارز دیجیتال غیر متمرکز مطالعه و نظریهپردازی کرد. برخی افراد بر این باورند که ساتوشی ناکاموتوی احتمالی، آقای سابو است.
- سال 2000 میلادی، استفان کنست نظریهی خود دربارهی زنجیرههای رمزنگاریشده امن را به همراه ایدههایی برای اجرای آن منتشر کرد.
- سال 2008 میلادی ، توسعهدهنده یا توسعهدهندگانی با نام مستعار ساتوشی ناکاموتو نخستین اوراق سفید برای ایجاد مدلی از شبکه بلاک چین را منتشر کردند.
- ناکاموتو نخستین شبکه بلاک چین را بهعنوان دفتر کل توزیعشدهی عمومی برای تراکنشهای انجامشده با بیت کوین، پیادهسازی کرد.
- سال 2014 فناوری بلاک چین از ارز دیجیتال تفکیک شد و قابلیتهای آن برای سایر تراکنشهای مالی و بین سازمانی مورد بررسی قرار گرفت. نسخهی دوم بلاک چین پا به عرصهی ظهور گذاشت که شامل اپلیکیشنهایی فرای ارز میشود.
اگر بخواهیم نگاهی به نوآوری های فناوری بلاک چین داشته باشیم ، می توانیم موارد زیر را بررسی کنیم:
- نخستین نوآوری بزرگ بلاک چین، تولدبیت کوین بهعنوان نخستین رمزارز بود. ارزش بازار بیت کوین در حال حاضر بین ۱۰ تا ۲۰ میلیارد دلار شناور است.
- نوآوری بعدی این فناوری، تولد قرارداد هوشمند بود که در نسل دوم سیستم بلاک چین با ناماتریوم معرفی شد .
- نوآوری بزرگ بعدی در شبکههای مبتنی بر بلاک چین، معرفی اثبات سهام (Proof of Stake) به جای روش اثبات کار (Proof of Work) برای برقراری امنیت شبکه بود. در حال حاضر اغلب شبکههای بلاک چین از فرایند اثبات کار برای حفظ امنیت شبکه بهره میبرند که بر اساس آن، گروهی که بیشترین قدرت پردازشی برای تولید (استخراج) بلاکها را در اختیار دارد، تصمیم نهایی را اتخاذ میکند و دربارهی تراکنشها و بلاکها به اجماع میرسد؛ اما در مقابل، فرایند PoS با توجه به مقدار کوینهای بومی شبکه که تحت مالکیت دارند و در اختیار آن میگذارند، به افراد اجازه میدهد در تولید و اعتبارسنجی تراکنش بلوک مشارکت کنند.
- نوآوری بعدی بلاک چین،بلاک چین مقیاسبندی شده است. در حال حاضر، در دنیای بلاک چین هر کامپیوتر موجود در شبکه، تمام تراکنشها را پردازش میکند. این مسئله سبب کندی سرعت شبکه میشود. بلاک چین مقیاسبندیشده میتواند بدون کاهش امنیت، موجب افزایش سرعت پردازش شود. در این روش، با تشخیص تعداد کامپیوترهای مورد نیاز برای اعتبارسنجی هر تراکنش و تقسیم کار پردازش بین آنها، نتیجه با سرعت بیشتری مرتب میشود. در نتیجه با این کار ، شبکه بلاک چین می تواند با شیکه های بزرگی مثل ویزا یا سوییفت ، رقابت کند.
معماری بلاک چین و روش کار آن
برای دانستن معماری شبکه ، ابتدا لازم است مفاهیم زیر را به خوبی متوجه بشویم :
بلاک (Block) :
هر زنجیره از بلاک های متعددی تشکیل شده است و هر بلاک 3 عنصر اصلی دارد:
- داده های موجود در بلاک
- یک عدد ۳۲ بیتی که Nonce مینامیم. این عدد وقتی بلاک ایجاد میشود، بهصورت تصادفی تولید خواهد شد و سپس عنوان سربرگ هش بلاک را تولید میکند.
- هش یک عدد ۲۵۶ بیتی است که با عدد Nonce ترکیب میشود.
زمانیکه نخستین بلاک زنجیره ایجاد میشود، عدد nonce هش رمزنگاری را تولید میکند. دادههای درون بلاک مهروموم میشوند و برای همیشه به عدد نانس و هش گره میخورند، مگر آنکه استخراج شود.
ماینر (Miner) :
ماینرها در فرایند استخراج، بلاکهای جدید روی زنجیره میسازند. اینرها نرمافزارهای خاصی را برای انجام محاسبات مسائل پیچیدهی ریاضی استفاده میکنند تا عدد نانس خاصی را به دست آورند که hash درست بلاک چین را تولید کند. با توجه به سایز Nonce و hash ، تقریبا ۴ میلیارد ترکیب احتمالی برای Nonce و Hash وجود دارد که باید برای دستیابی به ترکیب درست استخراج شوند. اگر ماینر بتواند این ترکیب درست را پیدا کند در نتیجه Golden Nonce یا نانس طلایی را پیدا کرده و بلاک جدید آن را در زنجیره قرار می دهد.
نود (Node) :
هر کاربر روی شبکه با نام نود، شناخته میشود و تمام کاربران نسخهی بهروزی از دفتر کل را در اختیار دارند. هر نود برای ارتباط با سایر node ها ، روش ارتباطی متفاوتی دارد.در ابتدا کاربر تراکنشی را در شبکه درخواست میکند. با ثبت درخواست، یک بلاک با تمام اطلاعات تراکنش ساخته میشود. این بلاک رمزنگاری میشود تا امنیت اطلاعات تأمین شود. سپس، بلاک جدید بین تمام نودهای فعال در شبکه پخش میشود تا سایر نودها اعتبار درخواست کاربر را تأیید کنند. زمانی که بلاک ایجاد شده معتبر ارزیابی شود، در زنجیره قرار می گیرد و تراکنش درخواستی کاربر اجرا می شود.
در شکل زیر روش کارکرد بلاک چین را مشاهده می کنید.
اما شبکه بلاک چین ، به طور کلی از چندین لایه تشکیل می شود که در زیر به شرح آن ها خواهیم پرداخت. ترتیب لایه ها را از لایه درونی به بیرونی بصورت زیر در نظر می گیریم:
لایه اپلیکیشن ( کاربرد) :
در واقع، این لایه شامل اپلیکیشن غیر متمرکز(dApps)، مرورگر dApp، رابط کاربری و هاستینگ اپلیکیشن میشود. با استفاده از مرورگر dApp میتوان به اپلیکیشنهای غیر متمرکز دسترسی داشت. با مرورگرهای غیر متمرکز ( غیر از مرورگر های معمولی مانند کروم و فایرفاکس) میتوان در اینترنت معمولی گشتوگذار کرد. از مرورگرهای داخل اپلیکیشن متامسک یا تراست ولت میتوان به دَپها دسترسی پیدا کرد. سپس، هاستینگ اپلیکیشن امکان راهاندازی و اجرای تمام برنامههای غیر متمرکز را برای کاربر در این لایه فراهم میکند. بدون این عنصر، هیچ اپلیکیشن غیر متمرکزی نمیتواند روی اینترنت اجرا شود. پرواضح است که پروتکل هاستینگ نیز بهطور کامل غیر متمرکز است. علاوه بر این، نگهداری از این سرورهای هاستینگ کاملا امن است.
لایه خدمات :
در این ابزار هایی وجود دارد که شما با استفاده از آن ها می توانید لایهی اپلیکیشنهای غیر متمرکز را بسازید یا اجرا کنید. در این لایه فرایند خوراک دهی داده(Data Feed) به نودها اجازه میدهد که نسخه بروز اطلاعات از تمام منابع معتبر را دربارهی شبکه دریافت کنند. محاسبات خارج از زنجیره اجازه میدهد که پردازش محاسباتی خارج از شبکه بلاک چین انجام شود و حریم خصوصی را افزایش دهد. هم چنین در این لایه بخش های دیگری مانند امضای چندگانه ، قرارداد هوشمند، داراییهای دیجیتال، کیفهای پول و .. وجود دارد.
لایه معنایی :
لایه معنایی الگوریتم اجماع عام، ماشینهای مجازی ،مشارکت کاربران و… را در بر میگیرد. الگوریتم اجماع فرایندی ضروری برای توافق بین نودهای شبکه بلاک چین است. بدین ترتیب، در این فرایند تمام نودها برای تأیید اطلاعات در شبکه باید به توافق برسند؛ بنابراین، هیچ کاربری نمیتواند یک تراکنش را آغاز کند و آن را در دفتر کل اضافه کند، مگر آنکه با سایر کاربران به توافق برسد تا بعد از تأیید اعتبار اطلاعات، بلاک اضافه شود. انواع مختلفی از الگوریتمهای توافق تبیین شده است. برای مثال، نخستین الگوریتم اثبات کار نام دارد، الگوریتم گواه بر سهام و سایر مشتقات آنها از دیگر الگوریتمهای مورد استفاده در بلاک چین به شمار میروند. ماشینهای مجازی موجود در این لایه نیز در راستای افزایش امنیت و محیط اجرا برای تمام وظایف در شبکه تعبیه شده است
لایه شبکه:
این لایه متشکل از محیط اجرای قابل اطمینان ، پروتکل RLPx، شبکه تحویل بلاک و… است.
محیط اجرای قابل اطمینان (TEE) به معماری برای حفظ مسائل توسعهپذیری کمک میکند. این قابلیت نهتنها باعث میشود که شبکه این دسته از مسائل را مرتفع کند، بلکه سبب افزایش امنیت شبکه میشودپروتکل RLPx نیز مجموعهای از پروتکلهای شبکه است که به تبادل اطلاعات بین دو کاربر در بلاک چین کمک میکند.
لایه زیر ساخت:
لایه زیرساخت شامل سه سطح سختافزار، سیستم و سرور میشود. نودها و هر دستگاهی که به شبکه متصل میشود در این لایه طبقهبندی خواهد شد. حافظه ذخیرهسازی غیر متمرکز شبکه و توکنها از دیگر اجزای تشکیلدهندهی این لایه هستند.
برای درک مفهوم فورک بلاک چین لازم است که ماهیت غیرمتمرکز بودن بلاک چین را نیز درنظر بگیرید. این خصیصهی بلاک چین بدین معنی است که مشارکتکنندگان باید بتوانند دربارهی بخشهایی از شبکه بلاک چین ازجمله پروتکلها و بلاکها به توافق برسند. این توافق جمعی دربین نودهای شبکهی بلاک چین، تراکنشهای درون هر بلاک را تأیید میکند. گاهی اوقات، نودهای درون شبکه نمیتوانند دربارهی وضعیت آتی بلاک چین، به توافق و اجماع برسند. این عدم توافق عام منجر به ایجاد انواع فورکها میشود و زنجیرهی اصلی بلاکها را به دو یا چند شاخه تقسیم میکند که همگی آنها معتبر هستند.
سافت فورک (Soft Fork) : در این نوع انشعاب، پروتکل جدید بهصورت سازگار با قبل تغییر میکند. در این حالت نرمافزار بلاک چینی که روی نودهای درون شبکه اجرا میشود دچار تغییر جزئی میشود و بلاکهایی که طبق پروتکل جدید استخراج شدند، توسط نودهایی که نسخهی قدیمی بلاک چین را دارند نیز معتبر تلقی میشوند.
هارد فورک (Hard Fork) : ر این نوع انشعاب پروتکل بلاک چین اصطلاحا بهصورت ناسازگار با قبل ، دستخوش تغییر قرار میگیرد. بهعبارتی دیگر، نرمافزار بلاک چین بهگونهای تغییر میکند که بلاکهای استخراجشدهی جدید طبق پروتکل جدید، توسط نسخهی قبلی بلاک چین معتبر نخواهند بود.
فورک موقت (Temporary Fork) : این نوع از فورک زمانی اتفاق میافتد که دو ماینر بهصورت همزمان یک بلاک جدید را استخراج میکنند و ممکن است تمام شبکه روی انتخاب بلاک جدید توافق نداشته باشند و تعدادی از نودها بلاک استخراجشده توسط گروه A را بپذیرند و تعدادی دیگر بلاک استخراجشده توسط گروه B را قبول کنند. این عدم توافق عام روی یک بلاک که اغلب بهدلیل تفاوت زمانی رخ میدهد، سبب تولید زنجیرههای جدیدی میشود.
کاربرد فورک ها در بلاک چین : این کاربردها شامل ۱- افزودن قابلیت جدید؛ ۲- حل مشکلات امنیتی؛ ۳- بازگشت تراکنشهای آلوده یا برگشت رمزارزهای سرقتشده، میشود.
بلاک چین در ارز دیجیتال، قرارداد های هوشمند ، خدمات بانکی و مالی ، بازی های ویدیویی ، بازار سرمایه ، انرژی ، کلان داده و … کاربرد دارد.
حملات بلاک چین :
اسیب پذیری ها و حملات بلاک چین در 4 دسته زیر قرار می گیرند:
۱- حملات مبتنی بر شبکهی P2P
- Eclipse
- Sybil
۲- حملات مبتنی بر دفتر کل و اجماع
- Selfish Mining
- Mining Malware
- 51%
۳- حملات مبتنی بر قرارداد هوشمند
- DAO
۴- حملات مبتنی بر کیف پول
- Parity Multisig Wallet
- Dusting
حمله 51 %
- تراکنشها در امنیت کامل و بهطور خصوصی انجام میشوند.
- شفافیت عملکرد بلاک چین
- به شهروندان کشورهای توسعهنیافته یا دارای دولتهای بیثبات امکان میدهد اطلاعات شخصی خود را در امنیت حفظ کنند یا از خدمات بانکی آن استفاده کنند.
- افزایش امنیت در حفظ حریم شخصی
- هزینهی زیاد استخراج بیت کوین
- تعداد کم تراکنشها در هر ثانیه
- قوانین و مقررات دولتها دربارهی ارز دیجیتال