بلاک چین به زبان ساده

233 بازدید
بلاک چین

احتمالاً تاکنون اسمِ بلاک چین (Blockchain) به گوشتان خورده است. این تکنولوژی همانند یک دفترِ کل، تمامِ تراکنش‌های بیت کوین را درونِ خود ذخیره می‌کند. درواقع اساسِ بیت کوین بر پایۀ این تکنولوژی بنا شده است. در این مقاله با زبانی ساده و غیرفنی فناوری بلاک چین را توضیح خواهیم داد.

اصلاً چرا بیت کوین به وجود آمد؟

دوستِ شما علی دراثنای سفر با شما تماس می‌گیرد و درخواست پول می‌کند.

بلاک چین

برای سادگی بحث فرض کنید کارتِ بانکی و کامپیوتر وجود ندارد و کارها همگی توسط انسان انجام می‌شود. به بانک مراجعه می‌کنید و درخواست می‌کنید ۱۰۰۰ دلار به‌حساب علی منتقل شود. مسئولِ باجه به دفترش نگاه می‌کند تا موجودی حسابِ شما را چک کند. بله موجودی به‌اندازۀ کافی دارید و عمل انتقالِ پول با موفقیت انجام می‌شود. مسئول باجه تراکنش را در دفترِ خود ثبت می‌کند.

بلاک چین

به علی زنگ می‌زنید و واریزِ پول را خبر می‌دهید تا هر وقت خواست به بانک مراجعه و پول را برداشت کند.

بلاک چین

اینجا شما و علی به بانک به‌عنوان یک واسطِ مطمئن اعتماد می‌کنید و بر اساسِ این اعتماد مدیریت پول‌هایتان را به بانک واگذار می‌کنید. اینجا هیچ جابه‌جایی فیزیکی پول در کار نیست. تمامِ چیزی که لازم است دفترِ موجودی است که کنترلِ آن بر عهدۀ بانک است؛ و این دقیقاً مشکل سیستم‌های بانکی است. برای برقراری اعتماد بین دو نفر به یک نفر سوم وابسته می‌شویم. سال‌هاست که این سیستمِ مالی در بانک‌ها وجود داشته و دارد!

ممکن است بپرسید مشکل کجاست؟

اگر هرج و مرج به وجود آید، اوضاع اقتصاد خراب شود، بانک‌ها در معرض ورشکستگی قرار گیرند و جنگ و شرایط فوق‌العاده به وجود آید آیا بازهم می‌توان به پابرجا بودن نظام‌های بانکی امید داشت؟ آیا چنین بلبشویی زمینه را برای سوءاستفادۀ افراد سودجو فراهم نمی‌کند؟ آیا شخصِ ثالثی که به او اعتماد داشتید در شرایط بحرانی نیز قابلِ اعتماد هست؟ چه می‌شود اگر دفتر موجودیِ حساب‌ها در آتش بسوزد؟ یا هنگام انتقال پول رقمِ اشتباهی در دفتر ثبت شود. یا اصلاً از روی عمد اختلالاتی در این سیستم به وجود آید. داستان بلوکه شدن پول در برخی از موسسات مالی یک نمونه از همین بلبشوها است که چه‌بسا خودِ شما هم قربانیِ آن باشید.

آیا سیستمی وجود دارد که بدون واسطه بتوان پول منتقل کرد؟

سوالِ خوبی است ولی سوالِ بهتر این است که منظور از انتقالِ پول چیست؟ آیا صرفاً ثبتِ تراکنش‌ها در یک دفترِ مالی است؟ چرا خودمان این کار را انجام ندهیم؟ بلاک چین در پاسخ به همین سوال خلق شد. در این روش دفترِ کل توسطِ خودِ کاربرانی که از سیستم استفاده می‌کنند کنترل می‌شود. اینجا به‌جای یک نفر کلِ اعضای شبکه به دفتر دسترسی دارند. حساب و کتاب‌ها برای همه به‌صورت شفاف وجود دارد؛ اما چگونه این کار صورت می‌گیرید؟ ملزومات چنین سیستمی وجودِ افرادِ بیشتری چون شما و دوستتان علی است که نمی‌خواهند به بانک و سایر سیستم‌های واسط وابسته باشند. چند نفر کافی است؟ حداقل سه نفر. فرض کنید ۱۰ نفر پیدا شده‌اند که نمی‌خواهند به هیچ نهادی وابسته باشند. این افراد بعد از توافقات اولیه به موجودی حساب و جزئیات تراکنش‌های یکدیگر دسترسی دارند بدون اینکه شناختی از هویت هم داشته باشند.

بلاک چین

هر یک از این افراد در شروعِ کار یک پوشۀ خالی دارند. بعدها جزئیاتِ تراکنش‌ها در یک برگۀ کاغذ به این فولدر اضافه می‌شود. (برای سادگیِ بحث به‌جای بلوک از برگۀ کاغذ استفاده کرده‌ایم). تمامِ افراد با یک قلم و کاغذ آمادۀ ثبتِ تراکنش‌ها هستند. فرض کنید شمارۀ ۲ می‌خواهد ۱۰ دلار به شمارۀ ۹ منتقل کند. او درخواستش را با صدای بلند به بقیۀ نفرات اعلام می‌کند. من می‌خواهم ۱۰ دلار به‌حساب شمارۀ ۹ منتقل کنم. لطفاً همه این تراکنش را در دفتر خود ثبت کنید.

بلاک چین

تمامِ اعضا، موجودی شمارۀ ۲ (فرستندۀ پول) را بررسی می‌کنند اگر کافی بود تراکنش را در برگۀ خود ثبت می‌کنند. اکنون تراکنش با موفقیت انجام شده است.

بلاک چین

با گذشتِ زمان افرادِ بیشتری مایل به انتقال پول هستند. هرکسی که می‌خواهد پول منتقل کند درخواستش را با صدایِ بلند به بقیۀ اعلام می‌کند تا در برگۀ خود ثبت کنند. این کار آن‌قدر ادامه پیدا می‌کند تا ظرفیتِ برگه پر شود. فرض کنید هر برگه ظرفیتِ ثبت ۱۰ تراکنش را دارد. با ثبتِ دهمین تراکنش ظرفیتِ آن پر می‌شود و دیگر جایی برای ثبتِ تراکنش‌های بیشتر وجود ندارد.

بلاک چین

در این حالت لازم است تا برگ دیگری به پوشه اضافه شود و ثبت تراکنش‌ها از سر گرفته شود. اما تکلیفِ برگۀ قبلی که ظرفیتش پرشده چه می‌شود؟

قبل از بایگانی برگه لازم است آن را با کدی موردِ پذیرشِ همۀ اعضای سیستم مهر و موم کنید. این کار باعث می‌شود محتویات برگه تغییر نکند یا اگر تغییر کرد از درجۀ اعتبار ساقط شود. به فرایند تولیدِ این کد اصطلاحاً ماینینگ (mining) گفته می‌شود که اینجا برای سادگیِ بیشتر از واژۀ «مهر و موم کردن» استفاده می‌کنیم. خب ببینیم صفحه چطور مهر و موم می‌شود؟

ماشینِ جادویی

یک ماشین با دیوارهای ضخیم تجسم کنید. شما از مکانیزم داخلیِ این ماشین اطلاعی ندارید. فقط می‌توانید به ورودی به آن بدهید و یک خروجی تحویل بگیرید. جعبه‌ای از سمتِ چپ وارد دستگاه می‌کنید و از سمتِ راست جعبۀ متفاوتی تحویل می‌گیرید. اسمِ این ماشین در اصطلاحِ برنامه نویسی Hash Function یا تابعِ هش است. چون نمی‌خواهیم فنی صحبت کنیم از همان واژۀ «ماشینِ جادویی» استفاده می‌کنیم.

یک مطالب جالب دیگر...! بخوانید »  دستگاه ماینینگ؛ آشنایی با انواع مدل های استخراج بیت کوین

بلاک چین

فرض کنید شما عددِ ۴ را از سمتِ چپ وارد ماشین می‌کنید. در سمتِ راست چیز کاملاً متفاوتی مثلاً dcbea دریافت خواهید کرد. اینکه ماشین چگونه این خروجی را تولید می‌کند معلوم نیست. این یک فرایندِ یک‌طرفه است؛ یعنی صرفاً از روی خروجیِ dcbea نمی‌توان متوجه شد که ورودیِ آنچه بوده است. ولی این را می‌دانید که هر وقت عددِ ۴ را به ماشین بدهید همین خروجیِ یکسان را دریافت می‌کنید.

بلاک چین

hash(4) == dcbea

بیایید یک عددِ دیگر به ورودی بدهیم. مثلاً ۲۶

بلاک چین

این بار رشتۀ جدیدِ ۹۴c8e را دریافت می‌کنیم.

یک سوال: چه عددی از سمتِ چپ واردِ ماشین کنم تا در سمتِ راست رشته‌ای با سه کاراکتر صفر در ابتدای آن دریافت کنم؛ مثلاً ۰۰۰ab, 00098, 000fa و … .

بلاک چین

مگر نگفتیم ماشین یک‌طرفه است؟ پس چطور می‌شود به این سوال پاسخ داد؟ یک‌راه هست و آن این است که اعدادِ مختلف را به ورودی بدهیم تا به خروجیِ موردنظر (عددی با سه صفر در ابتدایِ آن) برسیم. این همان کاری است که ماینرها انجام می‌دهند. بله ماینرها برای این کار جایزه (پول) می‌گیرند. جلوتر توضیح می‌دهیم.

بلاک چین

بالاخره با تلاشِ و آزمون خطای فراوان بالاخره مقدارِ مناسبی برای ورودی پیدا خواهیم کرد.

بلاک چین

قطعاً این کار دشوار و زمان‌بر است. ولی بررسی صحت و سقمِ این ادعا که عدد ۷۲۵۳۳ خروجی ۰۰۰ca را تولید می‌کند کارِ ساده‌ای است. درواقع مهم‌ترین ویژگی ماشین جادویی این است که با داشتنِ یک خروجی به‌سختی می‌توان ورودیِ متناظر را تشخیص داد ولی با داشتنِ ورودی و خروجی به‌راحتی می‌توان تأیید کرد که آیا ورودی به خروجی تبدیل می‌شود یا نه.

این ماشین چگونه برگۀ تراکنش‌ها را مهروموم می‌کند؟

برگۀ تراکنش را یک جعبۀ سیاه حاویِ عدد ۲۰۸۹۳ در نظر بگیرید. حالا از خودتان بپرسید «با اضافه کردن چه عددی به درون این جعبه می‌توانم مقداری را در خروجی تولید کنم که در ابتدایش سه رقمِ صفر وجود داشته باشد.» اینکه مدام در مثال‌ها از «سه صفر» صحبت می‌کنیم برای درکِ آسان‌تر تابعِ هَش است وگرنه فرایند هشینگ در بیت کوین بسیار پیچیده‌تر از این حرف‌هاست.

بلاک چین

اینجا نیز دقیقاً همان سناریوی قبلی را داریم. باید این‌قدر عددهای مختلف به‌جای علامت سوال قرار دهیم تا نهایتاً به خروجیِ موردنظر برسیم. خلاصه بعد از هزاران بار تلاش به عددِ ۲۱۱۹۱ خواهیم رسید که خروجیِ موردنظر ما را تولید می‌کند. این عدد به‌علاوۀ عدد ۲۰۸۹۳ وقتی به ماشین داده می‌شود خروجی‌ای تولید می‌کند که در ابتدای آن سه رقمِ صفر وجود دارد؛ همان چیزی که دنبالش بودیم.

بلاک چین

با این حساب، عدد ۲۱۱۹۱ برای مهر کردن ۲۰۸۹۳ به کار می‌رود. برای مهر و موم کردن برگه تراکنش‌ها، برچسبی با عددِ ۲۱۱۹۱ روی آن می‌چسبانیم. مادامی که این برچسب روی برگه وجود داشته باشد یعنی مهر و موم شده است.

بلاک چین

عددِ محاسبه شده برای مهر در فرهنگِ بیت کوین ماینینگ اصطلاحاً Proof of Work (اثباتِ کار) گفته می‌شود. این عدد نشان می‌دهد که برای محاسبۀ آن تلاشی صورت گرفته است. ما برای سادگیِ بحث از «شمارۀ مهر» استفاده می‌کنیم. هرکسی بخواهد بداند که محتویات برگه تغییر کرده یا نه کافی است محتویاتِ برگه به‌علاوۀ شمارۀ مهر را به ماشین بدهد و خروجی را بررسی کند. اگر کلمه‌ای با سه صفر در ابتدا ظاهر شد یعنی محتویات برگه دست‌نخورده است و اگر چیزی خلافِ این بود می‌توانید برگه را دور بیندازید چون اطلاعاتِ آن دستکاری‌شده و دیگر اعتباری ندارد. از همین مکانیزم برای مهر کردن تمام برگه‌ها استفاده می‌کنیم.

بلاک چین

مثل قبل باید دنبالِ عددی باشیم که با اضافه شدن به تراکنش‌های صفحه و ارسال به ماشین، خروجی مدنظر ما را تولید کند (کلمه‌ای با سه صفر در ابتدا). بعد از مهر شدن صفحه اگر کسی بخواهد محتوای آن را تغییر دهد خروجی ماشین تغییر می‌کند چون شمارۀ مهر به دیگر افرادِ شبکه اجازه می‌دهد سلامتِ برگه را امتحان کنند. حالا که با فرایند مهر کردن آشنا شدید سراغ ادامۀ بحثمان برویم. به‌محض پایان یافتنِ ظرفیتِ برگه، همۀ اعضا شروع می‌کنند به محاسبۀ شمارۀ مهر. هرکسی توانست شمارۀ مهر را زودتر کشف کند آن را به بقیه اعلام می‌کند.

بلاک چین

دیگر اعضای شبکه صحتِ مهر را تأیید می‌کنند. اگر درست بود با آن شماره برگه را مهر و در پوشۀ خود قرار می‌دهند. ولی چه می‌شود اگر یکی از اعضای شبکه مثلاً شماره ۷ شمارۀ اشتباهی را تولید کند که به تأیید بقیۀ اعضای سیستم نرسد؟ چنین حالتی محتمل است.

ممکن است تراکنش‌هایی که در شبکه اعلام شده را اشتباه شنیده باشد؛

ممکن است تراکنش را اشتباه در برگۀ خود ثبت کرده باشد؛

یا ممکن است عمداً برای تقلب تراکنشی را اشتباه ثبت کرده باشد.

خلاصه به هر دلیلی باشد آن برگه دیگر اعتبار ندارد و شمارۀ ۷ هیچ راهی جز دور انداختن آن و برداشتن یک نسخۀ کپی از سایر اعضای شبکه ندارد. این شخص تا زمانی که آن برگه را در پوشۀ خود قرار ندهد قادر به ثبت تراکنش‌های بیشتر نخواهد بود و درواقع دیگر عضوی از شبکه نیست.

یک مطالب جالب دیگر...! بخوانید »  ترید ارز دیجیتال چیست و چگونه کار می کند؟

یک سوال: چه دلیلی وجود دارد که اعضای شبکه برای محاسبۀ شمارۀ مهر، زمان و منابع مصرف کنند؟ چرا منتظر نمی‌مانند یک نفر دیگر محاسبه را انجام داده و به آن‌ها اعلام کند؟

سوالِ خوبی است. هر عضوی از شبکۀ بلاک چین به خاطرِ عضویت و گسترشِ این شبکه می‌تواند شانس خود را برای برنده شده مقداری پول امتحان کند؛ اما چطور؟ اولین کسی که شمارۀ مهر را کشف کند مقداری پول از طرفِ سیستم دریافت می‌کند. این جایزه به‌عنوان یک مشوق است؛ چون بالاخره فردی که عدد را استخراج کرده منابعِ سیستم و برق مصرف کرده است. این اساسِ وجودِ بیت کوین است؛ یعنی سیستمی که به خاطرِ عضویت و فعالیتِ در آن به شما پاداش می‌دهد. این پاداش مشوقی برای رشدِ شبکه و ارتقای ارزش بیت کوین است. هر چه افراد بیشتری از بیت کوین استفاده کنند ارزشِ بیت کوین بالاتر می‌رود و انگیزه برای پول در آوردن از آن بیشتر خواهد شد. وقتی دیگران درآمد ماینرها را می‌بینند مشتاق عضویت در شبکه می‌شوند و این دوباره باعث رونق سیستم خواهد شد. این چرخه همین‌طور ادامه پیدا می‌کند…بعد از محاسبۀ شمارۀ مهر و بایگانی صفحه، همۀ اعضای شبکه با یک برگۀ سفید شروع به ثبتِ تراکنش‌ها می‌کنند؛ و دوباره نوبتِ بعد هرکسی فرصت دارد شانسش را برای جایزۀ بعدی امتحان کند. هر چه توانِ پردازش سیستم بالاتر باشد یافتنِ پاسخ در مدت‌زمان کمتری میسر است و این شانسِ موفقیت شما را افزایش می‌دهد. به همین خاطر قدرتِ تجهیزات بیت کوین ماینینگ حرفِ اول را می‌زند. قطعاً شخصی که از یک سوپرکامپیوتر برای استخراج بیت کوین استفاده می‌کند از شما که با یک سیستمِ معمولی این کار را انجام می‌دهید شانسِ موفقیتِ بیشتری دارد. به لحاظ فنی صفحه بلوکی از تراکنش‌ها و فولدر زنجیره‌ای از صفحات (بلوک‌ها) است. این یعنی زنجیرۀ بلوک‌ها؛ یعنی بلاک‌ چین (Blockchain). البته هنوز یک‌چیزی این وسط مبهم است. فرض کنید داخلِ فولدر ۵ صفحۀ مهره شده داریم. چه می‌شود اگر صفحۀ دوم را به نفعِ خودم ویرایش کنم؟ احتمالاً پاسختان این است که دیگر اعضای شبکه با شمارۀ مهری که در اختیار دارند می‌توانند به دستکاری‌شده صفحه پی ببرند. حرفتان درست ولی اگر شمارۀ جدیدی نیز برای مهر کردن صفحه پیدا کردم و آن صفحه را با آن شماره مهر زدم چه؟ برای جلوگیری از تغییرِ بلوک‌ها (صفحات) مکانیزم بهتری لازم است که در ادامه توضیح خواهیم دادم.

چگونه از بلوک‌ها محافظت می‌شود؟

پیش‌تر گفتیم دو جعبه داریم که یکی حاویِ عددِ ۲۰۸۹۳ و دیگری خالی است که باید شما محاسبه کنید. در حالتِ واقعی برای محاسبۀ شمارۀ مهر، سه جعبه نیاز است؛ دوتایشان پر و یکی خالی که باید شما محاسبه کنید. وقتی محتویات این سه جعبه به ماشین وارد می‌شود خروجی مورد انتظار تولید خواهد شد. محتویات یکی از جعبه که حاویِ تراکنش‌های صورت گرفته است. جعبۀ دومی حاوی شمارۀ مهر است و در اینجا جعبۀ سومی تعریف شده که حاوی خروجی ماشین برای صفحۀ قبلی است؛ یعنی کدِ هشِ بلوکِ قبلی.

بلاک چین

با این ترفند هر صفحه‌ای به صفحۀ قبلی خود وابسته می‌شود؛ بنابراین اگر کسی بخواهد صفحه‌ای را تغییر دهد باید محتویات و شمارۀ مهرِ بقیۀ صفحاتی که بعدازآن می‌آید را نیز تغییر دهد تا سازگاری همۀ صفحات حفظ شود و آب از آب تکان نخورد. دقیقاً مثل دومینو؛ اگر یکی از قطعات را عقب‌تر ببرید باید تمام قطعاتی که بعدازآن می‌آید را نیز عقب‌تر برانید تا بازی به هم نخورد. در مثالِ ما اگر یکی از ۱۰ نفر بخواهد صفحه‌ای را تغییر دهد باید تمامِ صفحات بعدی را تغییر دهد و برای هرکدام شمارۀ مهرِ جدیدی طراحی کند. این کار گرچه برای شبکه‌ای با ۱۰ نفر عضو چندان سخت نیست ولی برای شبکۀ عظیمِ بیت کوین با میلیون‌ها کاربر و بلوکِ زنجیر شده تقریباً غیرممکن است. فقط در یک صورت بیت کوین ناامن خواهد شد؛ زمانی که بیش از نصفِ کاربرانش ناتو از آب درآیند؛ یعنی مثلاً به‌جای ۱ نفر ۶ نفر از ۱۰ نفر اختلال‌گر شوند. این را اصطلاحاً مشکل ۵۱% می‌گویند. ولی معمولاً چنین اتفاقی نمی‌افتد. ویکی‌پدیا بر مبنای اعتماد ساخته شده و به موفقیت هم رسید. بلاک چین نیز بر همین اساس ساخته شده و تا امروز به‌درستی در حالِ فعالیت است.

Screen Shot 2019-08-19 at 5.04.47 PM
درخواست مشاوره پذیرش

درخواست مشاوره ثبت نام

جهت مشاوره رایگان ثبت نام در دوره نخبگان کافیست فرم زیر را پر کرده و ارسال کنید.

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *