تقریباً همه در مورد بلاک چین و جالب بودن آن شنیدهاند. اما بیشتر افراد نمیدانند که بلاک چین چیست و چگونه کار میکند. این مطلب وبلاگ ارزوال توضیح میدهد که بلاک چین (به انگلیسی Blockchain) لزوماً چیز عجیب و غریبی نیست.
بلاک چین یک دفتر خاطرات است که جعل آن تقریباً غیر ممکن است. حال شاید بپرسید چگونه. ولی قبل از این که بگوییم بلاک چین چیست باید هش و عملکرد آن را توضیح دهیم.
بیایید تصور کنیم که ۱۰ نفر در یک اتاق تصمیم گرفتهاند تا ارزی جداگانه بسازند. آن ها باید جریان بودجه را دنبال کنند. یک نفر – بیایید او را بابک صدا کنیم – تصمیم گرفت لیستی از تمام اقدامات را در یک دفترچه یادداشت ثبت کند و نگه دارد:
یک مرد – بگذارید او را احمد بنامیم – تصمیم به سرقت پول گرفت. برای پنهان کردن این سرقت، او اطلاعات نوشته شده در دفتر خاطرات را تغییر داد:
بابک متوجه شد که شخصی در دفتر خاطرات وی دخالت کرده است و لذا تصمیم گرفت جلوی این اتفاق را بگیرد.
وی برنامه ای مانند جدول زیر را پیدا کرد که تابع هش نام داشت و متن را به مجموعه ای از اعداد و حروف تبدیل می کرد.
هش رشته ای از اعداد و حروف است که توسط توابع هش تولید می شود. تابع هش در واقع یک تابع ریاضی است که تعداد متغیری از کاراکترها را می گیرد و آن را به رشته ای با تعداد کاراکترِ ثابت تبدیل می کند. حتی یک تغییر کوچک در رشته، یک هش کاملاً جدید ایجاد می کند.
بعد از هر رکورد، او یک هش وارد می کرد و لذا دفتر خاطرات جدید به شرح زیر بود:
احمد تصمیم گرفت دوباره ورودی ها را تغییر دهد لذا شب به دفتر خاطرات سر زد و رکورد ها را تغییر داد و یک هش جدید ایجاد کرد.
بابک متوجه شد که کسی دوباره دفتر خاطرات را وارسی و دستکاری کرده است. او تصمیم گرفت رکورد هر معامله را پیچیده کند. بعد از هر رکورد، او یک هش تولید شده از رکورد + آخرین هش را وارد می کند. بنابراین هر ورودی به قبلی بستگی دارد و به آن وابسته می شود.
اگر احمد سعی کند رکورد را تغییر دهد، باید هش را در همه ورودی های قبلی تغییر دهد. اما چون احمد واقعاً پول بیشتری می خواست، کل شب را با شمارش همه هش ها سپری کرد.
اما بابک نمی خواست تسلیم شود. او تصمیم گرفت بعد از هر رکورد یک عدد اضافه کند. این عدد «Nonce» نامیده می شود. Nonce باید طوری انتخاب شود که هش تولید شده در دو صفر خاتمه یابد.
اکنون، برای جعل سوابق، جک باید ساعت ها و ساعت ها برای انتخاب Nonce هر خط وقت بگذارد. کاری که نه تنها مردم، بلکه رایانه ها هم نمی توانند به سرعت Nonce را دریابند.
بعداً، بابک فهمید که تعداد زیادی رکورد وجود دارد و نمی تواند دفتر خاطرات را برای همیشه نگه دارد. بنابراین وقتی ۵۰۰۰ معامله نوشت، آن ها را به یک صفحه گسترده تبدیل کرد. نرگس بررسی کرد که همه معاملات درست بوده است.
بابک دفتر خاطرات گسترده خود را به بیش از ۵۰۰۰ کامپیوتر، که در سراسر جهان بودند، گسترش داد. به این رایانه ها گره (Nodes) گفته می شود. هر بار که معامله ای اتفاق می افتد باید توسط گره هایی تأیید شود که هرکدام اعتبار آن را بررسی می کنند. هنگامی که هر گره تراکنش را بررسی کرد، نوعی رأی گیری الکترونیکی بوجود می آید. زیرا ممکن است برخی از گره ها تراکنش را معتبر بدانند و برخی دیگر آن را کلاهبرداری بدانند و لذا بعد از آن اعتبار تراکنش تایید می شود.
گره های اشاره شده در بالا رایانه هستند. هر گره یک کپی از دفتر دیجیتال یا همان بلاک چین را دارد. هر گره اعتبار هر معامله را بررسی می کند. اگر اکثر گره ها بگویند که یک تراکنش معتبر است، اطلاعات آن در یک بلاک نوشته می شود.
حال، اگر احمد یک ورودی را تغییر دهد، همه رایانه های دیگر هش اصلی را دارند و لذا آن ها اجازه نمی دهند که تغییر مذکور ایجاد شود.
این صفحه گسترده یک بلاک نامیده می شود. کل خانواده ی بلاک ها را بلاک چین می گویند. هر گره یا رایانه یک نسخه از بلاک چین را دارد. هنگامی که یک بلاک به تعداد معینی از تراکنش های تأیید شده رسید، بلاک جدیدی تشکیل می شود.
بلاک چین هر ده دقیقه خود را به روز می کند. این کار را به صورت خودکار انجام می شود و هیچ رایانه اصلی یا سروری این کار را به کامپیوترها آموزش نمی دهد.
به محض بروزرسانی صفحه گسترده یا دفتر و ثبت آن، دیگر نمی توان اطلاعات را تغییر داد و بنابراین جعل آن غیرممکن است و شما فقط می توانید ورودی های جدیدی را به آن اضافه کنید. رجیستری و اطلاعات جدید به طور همزمان در تمام رایانه های موجود در شبکه به روز می شود.
بابک ۱۰ نفر را دور هم جمع کرد. او می خواست که نوع جدیدی از سکه را برای آن ها توضیح دهد. احمد گناهان خود را به گروه اعتراف کرده بود و عمیقاً عذرخواهی کرد. برای اثبات صداقت خود سکه های بابک و نرگس را به آن ها پس داد.
بابک بعد از مرتب شدن همه موارد یاد شده، توضیح داد که چرا این اتفاق هرگز تکرار نمی شود. او تصمیم گرفت برای تأیید هر معامله چیزی به نام امضای دیجیتالی را اجرا کند. اما اول، او به همه کیف پول داد.
بابک ۱۰ نفر را دور هم جمع کرد. او می خواست که نوع جدیدی از سکه را برای آن ها توضیح دهد. احمد گناهان خود را به گروه اعتراف کرده بود و عمیقاً عذرخواهی کرد. برای اثبات صداقت خود سکه های بابک و نرگس را به آن ها پس داد.
باب بعد از مرتب شدن همه موارد یاد شده، توضیح داد که چرا این اتفاق هرگز تکرار نمی شود. او تصمیم گرفت برای تأیید هر معامله چیزی به نام امضای دیجیتالی را اجرا کند. اما اول، او به همه کیف پول داد.
کیف پول رشته ای از اعداد و حروف است، مانند ۱۸c۱۷۷۹۲۶۶۵۰e۵۵۵۰۹۷۳۳۰۳c۳۰۰e۱۳۶f۲۲۶۷۳b۷۴. این آدرسی است که با انجام معاملات در بلوک های مختلف ظاهر می شود. هیچ پرونده ی قابل مشاهده ای مبنی بر اینکه چه کسی با چه کسی معامله انجام داده وجود ندارد. فقط تعدادی کیف پول وجود دارد و آدرس هر کیف پول خاص نیز یک کلید عمومی است.
برای انجام یک معامله به دو مورد نیاز دارید: به کلید خصوصی و کیف پول، که در اصل یک آدرس است. کلید خصوصی رشته ای از اعداد تصادفی است؛ اما باید برخلاف آدرس های عادی آن را مخفی نگه دارید.
وقتی کسی تصمیم به ارسال سکه برای شخص دیگری می گیرد، باید پیام حاوی معامله را با کلید خصوصی خود امضا کند. سیستمِ دو کلید در واقع قلب فرآیندِ رمزگذاری و رمزنگاری است و مدت ها قبل از وجود بلاک چین استفاده می شده است. این سیستم برای اولین بار در دهه ۱۹۷۰ پیشنهاد شد.
وقتی پیامی ارسال می کنید، آن پیام در کل شبکه بلاک چین منتشر می شود. سپس شبکه گره ها بر روی پیام کار می کنند تا مطمئن شوند معتبر است و تراکنش واقعی را در بر دارد. اگر اعتبار آن را تأیید کنند، معامله مذکور در یک بلوک قرار می گیرد و پس از آن هیچ یک از اطلاعات مربوط بدان قابل تغییر نیست.
کلید رمزنگاری رشته ای از اعداد و حروف است. کلیدهای رمزنگاری توسط مولدهای کلید یا keygen ها ساخته می شوند. این مولد ها برای ساخت کلید از توابع ریاضیِ بسیار پیشرفته ای استفاده می کنند که شامل اعداد اول است.
بلاک چین شامل خصوصیات رفتاری منحصر به فردی است که مجموعه ای از قوانین برنامه ریزی شده را در خود دارد. به این مشخصات پروتکل گفته می شود. اجرای پروتکل های خاص اساساً بلاک چین را به آنچه که می شناسیم تبدیل کرده است. یعنی یک پایگاه داده اطلاعاتی توزیع شده، همتا به همتا و ایمن.
پروتکل های بلاک چین اطمینان حاصل می کنند که شبکه به همان شکلی اجرا می شود که سازندگان در نظر گرفته اند، حتی اگر کاملاً مستقل باشد و توسط کسی کنترل نشود. در اینجا چند نمونه از پروتکل های اجرا شده در بلاک چین را آورده ایم:
قرار دادن یک معامله در یک بلوک نتیجه موفقیت آمیز چالشی به نام اثبات کار است و توسط گره های خاصی به نام miner انجام می شود.
سیستم اثبات کار در واقعیت سیستمی است که نیازمند برخی از خدمات و فعالیت ها برای انجام امور خود بوده و عموماً به معنی پردازش توسط رایانه تلقی می شود. نتیجه این سیستم عموماً یک فرآیند تصادفی با احتمال کم است و لذا برای اعتبار بخشی و انجام فرآیند اثبات کار می بایست آزمون و خطا های بسیاری انجام شود. در مورد بیت کوین فرآیند اثبات کار همان هش است که بدان اشاره کردیم.
ماینرهای موجود در بلاک چین گره هایی هستند که با حل فرآیند اثبات کار، یک بلاک جدید ایجاد می کنند. اگر ماینر بلاکی تولید کند که با اجماع الکترونیکی گره ها تأیید شود، ماینر مذکور پاداشی دریافت می کند که بر اساس سکه(بیت کوین) است. از اکتبر سال ۲۰۱۷ استخراج کنندگان بابت ایجاد هر بلاک، ۱۲.۵ بیت کوین دریافت می کنند.
البته این پاداش تنها مشوق ماینر ها برای افزایش توان سخت افزاری خود نیست؛ بلکه آن ها هزینه یا کمیسیونی را هم دریافت می کنند که کاربران بیت کوین می پردازند. در حال حاضر چون تعداد معاملات در شبکه بیت کوین افزایش پیدا کرده، این هزینه ها به رقم قابل توجهی رسیده است. ماینر ها همواره معاملات با کمیسیون بیشتر را در اولویت خود قرار می دهند و بدین جهت اگر هزینه قابل توجهی نپردازید ممکن است تایید تراکنش شما به طول بینجامد.
بلاک چین یک دفتر خاطرات است که جعل آن تقریباً غیر ممکن است.
هش رشته ای از اعداد و حروف است که توسط توابع هش تولید می شود. تابع هش در واقع یک تابع ریاضی است که تعداد متغیری از کاراکترها را می گیرد و آن را به رشته ای با تعداد کاراکترِ ثابت تبدیل می کند. حتی یک تغییر کوچک در رشته، یک هش کاملاً جدید ایجاد می کند.
این صفحه گسترده یک بلاک نامیده می شود. کل خانواده ی بلاک ها را بلاک چین می گویند. هر گره یا رایانه یک نسخه از بلاک چین را دارد. هنگامی که یک بلاک به تعداد معینی از تراکنش های تأیید شده رسید، بلاک جدیدی تشکیل می شود.
کیف پول رشته ای از اعداد و حروف است، مانند ۱۸c۱۷۷۹۲۶۶۵۰e۵۵۵۰۹۷۳۳۰۳c۳۰۰e۱۳۶f۲۲۶۷۳b۷۴. این آدرسی است که با انجام معاملات در بلوک های مختلف ظاهر می شود. هیچ پرونده ی قابل مشاهده ای مبنی بر اینکه چه کسی با چه کسی معامله انجام داده وجود ندارد. فقط تعدادی کیف پول وجود دارد و آدرس هر کیف پول خاص نیز یک کلید عمومی است.