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

با الهام و استفاده از: رویترز گرافیک


برای فهم روش کار بیتکوین اول باید بلاکچین را بشناسیم. بلاکچین یک دیتابیس است که توسط شبکه ای از کامپیوترها به اشتراک گذاشته شده است. هرگاه رکوردی به این زنجیره اضافه شود، تغییر آن بسیار دشوار خواهد بود برای اینکه شبکه  مطمئن باشد‌، همه نسخه های دیتابیس که بر روی کامپیوترهای متفاوت قرار دارند، اختلافی ندارند، دائما آن‌ها را چک می‌کند. در یک کلام، بلاکچین، دیتابیسی است که صحت کارکرد و اطلاعاتش با مشارکت همه اعضایش تامین می‌شود.

یک دیتابیس

بلاکچین، دیتابیسی است که اطلاعات را داخل «بلاک» هایی ثبت می‌کند که زنجیروار پشت سر هم قرار می‌گیرند. بلاکچین از بخش های زیر تشکیل شده است:

زنجیره

مجموعه ای از بلاک های متصل به هم می‌باشد

بلاک

مجموعه ای از رکوردها

رکورد

هر نوع اطلاعاتی که بخواهیم روی بلاکچین ثبت کنیم. مثل انتقال بیتکوین بین دو حساب

برای ذخیره یک تراکنش در بلاکچین، مراحل زیر انجام می‌شود:

مرحله ۱

ثبت تراکنش. مثلا آقای «سگ سبیل» کالای خود را در ازای ۲۰۰ دلار به آقای «شیش تیغه» میفروشد. در این رکورد، جزییات تراکنش، شامل یک امضای دیجیتالی طرفین ذخیره می‌شود.

مرحله ۲

شبکه، اطلاعات تراکنش را توسط نودهایش بررسی می‌کند تا از صحت آن مطمئن شود. . این نودها همان کامپیوترهایی هستند که به شبکه متصل شده اند.

مرحله ۳

اطلاعات هر بلاک، رمزنگاری شده و یک خروجی منحصر به فرد که (هش) نام دارد از آن به دست می‌آید. البته توجه کنید که هر بلاک، به جز هش خود، هش بلاک قبلی را هم در خود نگهداری می‌کند.

مرحله ۴

بلاک جدید به انتهاب بلاکچین اضافه می‌شود و از طریق تکنولوژی هش، به بلاک قبلی پیوند می‌خورد.
(اگر حواستان باشد، قبلا گفتیم هش بلاک قبلی در بلاک جدید ذخیره می‌شود)
در نهایت تمام بلاک های زنجیره، از طریق هش ها به یکدیگر زنجیر می‌شوند.

تغییر دیتای ذخیره شده بسیار سخت است

«هش» امینت داده ها را تامین می‌کند

«هش» برنامه ای است که رشته ای از اطلاعات را دریافت می‌کند و از طریق فرمول های ریاضی، آن را به رشته ای از حروف و اعداد تبدیل می‌کند. خروجی این برنامه دو خصوصیت کلیدی دارد:

خصوصیت اول:
اینکه اطلاعات ورودی چقدر طولانی یا کوتاه است، تاثیری در طول اطلاعات خروجی ندارد. رشته خروجی همیشه تعداد کاراکتر ثابتی دارد. مثلا کتاب «جنگ و صلح» تولستوی خیلی خیلی طولانی تر از اولین توییت جک دورسی است، اما اگر هش هرکدام را محاسبه کنیم، همواره طول یکسانی خواهند داشت.

طول هش (۳۲ بایت) توییت جک دورسی:

c6f7257abff7b43959cd728f06c0c74230391640115cc3ea86a7e54be62aecc4

طول هش (۳۲ بایت) «جنگ و صلح»:

a948904f2f0f479b8f8197694b30184b0d2ed1c1cd2a1ec0fb85d299a192a447

خصوصیت دوم:
اگر کوچکترین تغییری در اطلاعات ورودی بدهید، یک هش کاملا متفاوت را در خروجی خواهید داشت! در نتیجه اگر کسی تنها یک ویرگول از کتاب جنگ و صلح که حاوی ۵۸۵ هزار و ۲۸۷ کارکتر است حذف کند، یک هش کاملا تغییریافته را در خروجی تحویل خواهد گرفت.

هش اصلی:

a948904f2f0f479b8f8197694b30184b0d2ed1c1cd2a1ec0fb85d299a192a447

هش جدید:

40115cc2aecc43ea86a7e54be6f7257abff7b43959cd728f06c0c7423039166r

چنین تغییری زنجیره بلاک ها را که با هش های مرتبط به هم به یکدیگر متصل شده بودند را از هم می‌گسلد.

چرا؟ خب از آنجایی که هکر، اطلاعات یک بلاک را تغییر داده (مثلا یک ویرگول از کتاب جنگ و صلح را حذف کرده) هش آن بلاک تغییر میکند.
اگر به خاطر داشته باشید گفته بودیم هش هر بلاک در بلاک قبلی ذخیره شده است.
درنتیجه دیگر اطلاعات هش بلاک هکر با هشی که در بلاک قبلی ذخیره شده همخوانی ندارد. برای حل این مشکل هکر مجبور است بلاک بعدی را هم از نو بنویسد و هش جدید را در آن قرار دهد
اما با این کار اطلاعات بلاک بعدی تغییر میکند و همانطور که احتمالا حدس زدید حالا هش بلاک بعدی هم تغییر کرده و با هش بلاک «بعد تر» متفاوت می شود و این چرخه تا انتها ادامه دارد.
محاسبه هش این حجم از بلاک، قدرت محاسباتی عظیمی احتیاج خواهد داشت و از توان هر هکری خارج است.

نودها در شبکه

بلاکچین یک بانک اطلاعاتی غیرمتمرکز است که در آن همه نودها باهم برابرند.

شبکه غیرمتمرکز

دسترسی داشته باشند و در رقابت برای اضافه کردن اطلاعات به دیتابیس مشارکت کنند

شبکه متمرکز

اختیار همه امور بر عهده یک نود مرکزی است.

اجازه عضویت

بدون دخالت یک نهاد مرکزی، چگونه به صحت اعتماد ذخیره شده اعتماد کنیم؟ یک راه حل این است که فقط به گروه محدودی اجازه دسترسی به اطلاعات را بدهیم و فقط همان‌ها اجازه ثبت اطلاعات را داشته باشند. مثل متدی که شرکت ها برای حفظ اطلاعات خود انتخاب می‌کنند. اما بیتکوین حاوی اطلاعات عمومی است و نمیخواهیم فقط عده مخصوصی قدرت کنترل اطلاعات عمومی را داشته باشند

برای حل این مشکل بلاکچین بیتکوین شروطی را برای نودهایی که میخواهند به شبکه بپیوندند و در آن ثبت اطلاعات انجام دهند گذاشته است. به این شروط «مکانیزم اجماع» می‌گوییم

رسیدن به اجماع

این شروط از اعضای شبکه می‌خواهند که خود را «اثبات» نمایند.

مکانیزهای اجماع متفاوتی وجود دارد که بیتکوین از معروف ترین و در عین حال «غیرمتمرکز ترین» آنها یعنی اثبات کار، استفاده می‌نماید.

اثبات کار

هر نود برای اینکه بتواند یک بلاک به شبکه اضافه کند، باید نشان دهد که میزانی «کار» انجام داده است. این کار با حل پازل هایی با محاسبات سخت انجام می‌شود. این فرایند که «ماینینگ» نام دارد، نیازمند قدرت محاسباتی زیادی است. هر عضو در ازای «کار»ی که انجام می‌دهد، مقداری بیتکوین به عنوان پاداش دریافت می‌کند.. این پاداش است که ماینر ها را به سرمایه گذاری و مشارکت در حفظ و گسترش زنجیره بیتکوین تشویق می‌کند.

گرافیک: Maryanne Murray
ویرایش بصری: Sarah Slobin
ترجمه و اجرای فارسی: Navid Goalpure

اگر به دنبال پروژه های مربوط به بیتکوین هستید، از صفحه بیتکوین دیدن کنید