روزنامه آسمان آبی - مهدی تقیزاده: این روزها حتما نام بیتکوین و بلاکچین یا همان زنجیره بلوک به گوشتان خورده است؛ موضوعات داغی که در برخی از محافل بهعنوان راهی کوتاه برای پولدارشدن مطرح میشود و در برخی دیگر بهعنوان آینده استارتآپها.
بسیاری از دوستان غیرفنی وقتی صحبت از چنین فناوریهایی میشود از من میخواهند درباره آنها برایشان توضیح دهم. هزاران کاربر معمولی اینترنت هم هستند که احساس مشابهی دارند؛ بهطوری که فقط در یک سال گذشته جستوجوی واژه بلاکچین در گوگل 400 درصد رشد داشته است؛ در نتیجه تصمیم گرفتم این موضوع را با انتشار مطلبی گلچینشده از توصیههای بسیاری از اهالی این فن خیلی ساده برایتان بازگو کنم تا به این ترتیب با تازهترین پدیده حوزه دیجیتال که احتمالا در سال آینده هم بیشتر در موردش خواهید شنید آشنا شوید.
چرا به بلاکچین نیاز داریم؟
بر خلاف بیشتر مطلبها درباره بیتکوین و بلاکچین که اغلب سریعا با تلاش برای توضیح بلاکچین شروع میشوند، میخواهم ابتدا مشکلی را که بلاکچین یا همان زنجیره بلوک آن را حل میکند، توضیح دهم.
فرض کنید یکی از بهترین دوستان شما در مسافرت خارج از کشور و در پنجمین روز تعطیلاتش با شما تماس میگیرد و میگوید: «رفیق، من مقداری پول لازم دارم، همه پولم تمام شده است.»
شما، آدم خوبه ماجرا، پاسخ میدهید: «همین الان برات میفرستم.» تلفن را قطع میکنید و با مدیر حساب خود در بانک تماس میگیرید و به او میگویید: «لطفا 1000 دلار از حساب من به حساب دوستم منتقل کنید.» او فهرست حساب و کتاب را باز میکند، موجودی حسابتان را چک میکند که ببیند آیا پول کافی برای انتقال 1000 دلار دارید یا نه؛ و چون شما آدم پولداری هستید و کلی پول برای بذل و بخشش دارید، پس او مقداری در فهرست تراکنشها وارد میکند.
با دوست خود تماس میگیرید و به او میگویید: «پول را به حسابت منتقل کردم.»
چه اتفاقی افتاد؟ شما و دوستتان هر دو به بانکی که پولتان را مدیریت میکند اعتماد دارید. هیچ انتقال فیزیکی اسکناسی انجام نشد. تمام چیزی که لازم بود، درج یک رکورد در فهرست تراکنشها بود. به بیان دقیقتر، یک رکورد در یک فهرست که هیچیک از شما کنترل یا مالکیتی بر آن ندارید. این دقیقا مشکل سیستمهای فعلی است. ما برای برقراری اعتماد بین خودمان، وابسته به اشخاص ثالث هستیم.
سالها، برای اعتماد به یکدیگر به این واسطهها وابسته بودهایم. شاید بپرسید مشکل وابستگی به آنها چیست؟
مشکل این است که آنها از نظر تعداد در اقلیت هستند. اگر هرج و مرجی در جامعه ایجاد شود، تنها چیزی که احتیاج است این است که یک شخص یا سازمان، عمدا یا سهوا فاسد شود.
آیا سیستمی وجود دارد که ما بتوانیم بدون نیاز به بانک، پول منتقل کنیم؟
برای پاسخ دادن به این سوال، نیاز داریم بیشتر عمیق شویم و از خود سوال بهتری بپرسیم. یک لحظه به این فکر کنید که انتقال پول به چه معنی است؟ فقط رکوردی در یک فهرست. پس سوال بهتر این است: آیا راهی هست که فهرستی برای خودمان داشته باشیم به جای اینکه دیگری آن را برای ما انجام دهد؟ پاسخ، بلاکچین است.
زنجیره بلوک چطور کار میکند
در این روش به افرادی نیاز است که دوست ندارند به شخص ثالثی وابسته باشند. تنها در این صورت این گروه میتواند فهرست خود را داشته باشد.
چند نفر کافی است؟ حداقل سه نفر. اما برای مثال، ما فرض میکنیم 10 نفر میخواهند از شر بانکها و سایر اشخاص ثالثی که تراکنشها را مدیریت میکنند خلاص شوند. بهمحض توافق جمعی، آنها جزئیات حسابهای یکدیگر را برای همیشه خواهند داشت، بدون اینکه از هویت هم باخبر باشند.
هر شخص یک پوشه خالی برای شروع با خود دارد. هر چه جلو میرویم، همه این 10 نفر برگههایی را به پوشههای خالی خود اضافه خواهند کرد که در حقیقت شامل تراکنشهایی است که آنها نوشتهاند. این مجموعه برگهها فهرست ما را که تمامی تراکنشها را رهگیری میکند تشکیل میدهند.
هر چه زمان میگذرد، اشخاص بیشتری در شبکه نیاز دارند به دیگران پول منتقل کنند. هر وقت آنها بخواهند تراکنشی انجام دهند، آن را به همه اشخاص دیگر شبکه اعلام میکنند. بهمحض اینکه کسی این اعلام را بشنود، آن را روی برگه خود مینویسد.
این کار ادامه پیدا میکند تا وقتی روی برگه جایی خالی برای هیچکس نباشد. حال زمان آن است که آن را در پوشه بگذاریم و برای تکرار فرآیند برگه جدیدی بیرون بکشیم.
اما داستان اصلی در حقیقت از اینجا شروع میشود: قبل از گذاشتن برگه در پوشههایمان، نیاز داریم آن را با کلید منحصربهفردی که همه اشخاص در شبکه بر آن اتفاق نظر دارند مهروموم کنیم. با این کار مطمئن میشویم هیچ کسی بعد از آنکه نسخهها در پوشههای هر شخصی قرار گرفت، نخواهد توانست تغییری در آن ایجاد کند، نه امروز، نه فردا و نه هیچوقت دیگر. این مهرومومکردن در حقیقت کلید این روش است.
این کار همان «ماینکردن» برای امن کردن آن است؛ یعنی کاری که پیش از این، اشخاص ثالث و واسطهها میکردند و به ما اطمینان میدادند هر آنچه در فهرست آنها ثبت میشود هرگز تغییر نخواهد کرد.
چه کسی برگهها را مهروموم میکند؟
قبل از اینکه یاد بگیریم چطور میتوانیم برگه را مهروموم کنیم، لازم است بدانیم بهصورت کلی، مهروموم چطور کار میکند. دستگاهی را فرض کنید که یک بخش ورودی و یک بخش خروجی دارد. به این ترتیب چیزی که وارد آن میشود تغییراتی مییابد و چیزی دیگر از آن خارج میشود. این دستگاه، تابع «هش» نامیده میشود. فرض کنید شما عدد 4 را از سمت چپ داخل میفرستید؛ میبینیم که از آن طرف کلمه ‹dcbea› بیرون میآید.
چطور این دستگاه عدد 4 را به این کلمه تبدیل کرد؟ هیچ کس نمیداند. علاوه بر این، این یک فرآیند برگشتناپذیر است. یعنی با دادن کلمه ‹dcbea› امکان ندارد بفهمیم چه چیزی از سمت چپ به دستگاه داده شده است. اما هر بار که عدد 4 را به دستگاه بدهید، همیشه مقدار یکسانی، یعنی ‹dcbea›، بر خواهد گرداند.
حال میخواهیم بدانیم مثلا چقدر باید از سمت چپ بفرستم تا دستگاه مقداری را در سمت راست تولید کند که با سه صفر در ابتدا شروع شود؟ قبلا گفتیم دستگاه ویژگیای دارد که میتوانیم مقداری را محاسبه کنیم که باید از سمت چپ بفرستیم تا مقدار مورد انتظارمان را در سمت راست بدهد. چرا هر عدد موجود در دنیا را یکی یکی امتحان نکنیم تا به کلمهای برسیم که با سه صفر در ابتدا شروع شود؟
بعد از تلاشهای بسیار، بالاخره به عددی خواهیم رسید که مقدار خروجی دلخواه در سمت راست را به ما بدهد. مهمترین ویژگی چنین دستگاههایی این است که با داشتن یک خروجی، محاسبه کردن ورودی بسیار سخت است، اما با داشتن ورودی و خروجی، بررسی این موضوع که آیا این ورودی آن خروجی را میدهد یا خیر، ساده خواهد شد. وقتی یک عدد پس از صرف زمان و برق روی یک دستگاه محاسبه شد، صفحه با آن عدد مهروموم میشود. حتی اگر کسی تلاش کند محتوای صفحه را تغییر دهد، عدد مهروموم شده، به هر شخص دیگری اجازه میدهد صحت آن برگه را بررسی کند.
حالا که ما درباره مهروموم کردن صفحه میدانیم، به زمانی برمیگردیم که نوشتن دهمین تراکنش روی برگه را تمام کرده بودیم و دیگر برای نوشتن بیشتر جای خالی نداشتیم. در این صورت، آنها برای آن صفحه شروع به محاسبه عدد مهروموم شده میکنند که بتوانند آن را در پوشه قرار دهند. همه در شبکه این محاسبه را انجام میدهند و اولین کسی که این عدد را در شبکه بیابد به دیگران اعلام میکند.
بهمحض شنیدن عدد مهروموم، شده همه صفحات خود را با آن برچسب میزنند و در پوشههایشان میگذارند. حال این سوال پیش میآید که چرا هر کسی منابع خود را صرف محاسبهای میکند، وقتی میداند که شخص دیگری آن را محاسبه و اعلام خواهد کرد؟ چرا راحت ننشینیم و منتظر اعلام آن نباشیم؟
سوال خوبی است. این همان جایی است که انگیزهها خود را نشان میدهند. هر که بخشی از بلاکچین باشد، واجد شرایط دریافت جایزه است. اولین کسی که عدد مهروموم را محاسبه کند، برای تلاشهایش مقداری پول مجانی (در اینجا مصرف برق و پردازنده کامپیوتر) جایزه میگیرد.
این چیزی است که بیتکوین از آن متولد شده است؛ اولین پولی که روی یک بلاکچین منتقل میشود؛ در مقابل برای اینکه اشخاص تلاشهایشان را ادامه دهند به آنها بیتکوین جایزه داده میشود.
وقتی اشخاص به قدر کافی مالک بیتکوین شوند، ارزش آن افزایش مییابد و باعث میشود دیگران نیز بیتکوین بخواهند. این متقاضیان آن را نیز بیشتر میکند.
جلوگیری از تقلب
درواقع، برای محاسبه عدد مهروموم در بلاکچین، به جای دو جعبه، سه جعبه وجود دارد؛ دو تای آن پر شده و یکی باید محاسبه شود. وقتی محتویات تمامی این سه جعبه به دستگاه داده میشود، پاسخی که از سمت راست آن بیرون میآید واجد شرایط مورد نیاز است.
ما از قبل میدانیم که یک جعبه حاوی فهرست تراکنشها، جعبه دیگر حاوی عدد مهروموم و جعبه سوم حاوی خروجی دستگاه جادویی برای برگه قبلی است. با این حقه کوچک مطمئن خواهیم شد که هر برگه به برگه قبلیاش وابسته است. در این صورت، اگر کسی برگهای قدیمی را ویرایش کند، برای معتبر نگهداشتن زنجیره باید محتویات و اعداد مهروموم شده تمامی صفحههای دیگر را نیز ویرایش کند.
اگر فردی دست به تقلب و ویرایش محتوای بلاکچین (پوشه حاوی برگههای محتوای فهرست تراکنشها) بزند، باید صفحات متعددی را تنظیم کند و اعداد مهروموم جدیدی را برای تمامی آن صفحات محاسبه کند. میدانیم که محاسبه اعداد مهروموم چقدر سخت است؛ بنابراین، شخص متقلب در یک شبکه نمیتواند بر سایرین غلبه کند.
آنچه اتفاق میافتد این است: متقلب میکوشد زنجیره دیگری در شبکه بسازد، اما زنجیرهای که هرگز قادر به هماهنگی با زنجیره درست نخواهد بود. دلیل ساده است: تلاشها و سرعت آن یک نفر نمیتواند بر تلاشها و سرعت مابقی افراد غلبه کند. بنابراین قطعا بلندترین زنجیره در شبکه زنجیره سالم خواهد بود.
البته این سیستم بر پایه این فرض بنا شده که اکثرافراد همیشه صادقاند، اما اگر زمانی در یک زنجیره تعداد زیادی از افراد تصمیم به تقلب بگیرند در آن صورت پروتکل با صورت به زمین خواهد خورد! چیزی که از آن بهعنوان «حمله 51 درصد» نام برده میشود. و این تنها دلیل آسیبپذیری بلاکچین خواهد بود و به فروپاشیاش خواهد انجامید.