به طور خلاصه، بلاک چین فهرستی از رکوردهای داده است که به عنوان یک دفتر کل دیجیتال غیرمتمرکز کار می کند. داده ها در بلوک هایی سازماندهی می شوند که به صورت زمانی مرتب شده و با رمزنگاری ایمن می شوند.
اولین مدل یک بلاک چین در اوایل دهه 1990 زمانی که دانشمند کامپیوتر استوارت هابر و فیزیکدان دبلیو اسکات استورنتتا از تکنیک های رمزنگاری در زنجیره ای از بلوک ها به عنوان راهی برای ایمن سازی اسناد دیجیتال از دستکاری داده ها استفاده کردند، ایجاد شد.
کار هابر و استورنتا مطمئناً الهامبخش کار بسیاری از دانشمندان کامپیوتر و علاقهمندان به رمزنگاری بود – که در نهایت منجر به ایجاد بیتکوین، به عنوان اولین سیستم غیرمتمرکز پول الکترونیکی ( اولین ارز دیجیتال ) شد.
اگرچه فناوری بلاک چین از ارزهای دیجیتال قدیمیتر است، اما تنها پس از ایجاد بیت کوین در سال 2008 بود که پتانسیل آن شناسایی شد. از آن زمان به بعد، علاقه به فناوری بلاک چین به تدریج در حال افزایش است و ارزهای دیجیتال در حال حاضر در مقیاس بزرگ تری به رسمیت شناخته شده اند.
فناوری بلاک چین بیشتر برای ثبت تراکنشهای ارزهای دیجیتال استفاده میشود، اما با بسیاری از انواع دیگر دادههای دیجیتالی مناسب است و میتواند در طیف وسیعی از موارد استفاده شود. قدیمی ترین، ایمن ترین و بزرگترین شبکه بلاک چین، شبکه بیت کوین است که با ترکیبی دقیق و متعادل از رمزنگاری طراحی شده است.
یک بلاک چین از یک زنجیره پایدار از بلوک ها تشکیل شده است که هر کدام لیستی از تراکنش های تایید شده قبلی را ذخیره می کنند. از آنجایی که شبکه بلاک چین توسط کامپیوترهای بی شماری که در سراسر جهان پخش شده اند نگهداری می شود، به عنوان یک پایگاه داده (یا دفتر کل) غیرمتمرکز عمل می کند. این به این معنی است که هر شرکت کننده (گره) یک کپی از داده های بلاک چین نگهداری می کند و آنها با یکدیگر ارتباط برقرار می کنند تا اطمینان حاصل کنند که همه آنها در یک صفحه (یا بلوک) هستند.
بنابراین، تراکنشهای بلاک چین در یک شبکه جهانی همتا به همتا ( یعنی از شخص به شخص دیگر بدون واسطه ) انجام میشود و این همان چیزی است که بیتکوین را به یک ارز دیجیتال غیرمتمرکز تبدیل میکند که بدون مرز و مقاوم در برابر سانسور است. علاوه بر این، اکثر سیستم های بلاک چین غیرقابل اعتماد در نظر گرفته می شوند زیرا به هیچ نوع اعتمادی نیاز ندارند. هیچ مرجع واحدی برای کنترل بیت کوین وجود ندارد.
بخش مرکزی تقریباً هر بلاک چین، فرآیند استخراج است که بر الگوریتم های هش متکی است. بیت کوین از الگوریتم SHA-256 (الگوریتم هش 256 بیت) استفاده می کند. ورودی با هر طولی را می گیرد و خروجی ای تولید می کند که همیشه طول یکسانی خواهد داشت. خروجی تولید شده “هش” نامیده می شود و در این مورد، همیشه از 64 کاراکتر (256 بیت) ساخته می شود.
بنابراین هر ورودی یکسان به همان خروجی منجر می شود، مهم نیست که چند بار این فرآیند تکرار شود. اما اگر تغییر کوچکی در ورودی ایجاد شود، خروجی به کلی تغییر می کند. به این ترتیب، توابع هش قطعی هستند و در دنیای ارزهای دیجیتال، اکثر آنها به عنوان یک تابع هش یک طرفه طراحی می شوند.
تابع یک طرفه بودن به این معنی است که محاسبه ورودی از خروجی تقریباً غیرممکن است. فقط می توان حدس زد که ورودی چه بوده است، اما احتمال حدس زدن درست آن بسیار کم است. این یکی از دلایل ایمن بودن بلاک چین بیت کوین است.
اکنون که می دانیم الگوریتم هش چه کار می کند، بیایید نحوه عملکرد یک بلاک چین را با یک مثال ساده از یک تراکنش نشان دهیم.
تصور کنید که علی و محمد را به همراه موجودی بیت کوین آنها داریم. فرض کنید علی ۲ بیت کوین به محمد بدهکار است.
برای اینکه علی آن 2 بیت کوین را برای محمد بفرستد، علی پیامی را با تراکنشی که میخواهد انجام دهد برای همه ماینرهای شبکه پخش میکند.
در آن تراکنش، علی آدرس محمد و مقدار بیت کوینی را که می خواهد بفرستد به همراه یک امضای دیجیتال و کلید عمومی خود به ماینرها می دهد. امضا با کلید خصوصی علی انجام می شود و ماینرها می توانند تأیید کنند که علی در واقع صاحب آن سکه ها است.
هنگامی که ماینرها از معتبر بودن تراکنش مطمئن شدند، می توانند آن را همراه با بسیاری از تراکنش های دیگر در یک بلوک قرار دهند و سعی کنند بلاک را استخراج ( رمزنگاری ) کنند. این کار با قرار دادن بلوک از طریق الگوریتم SHA-256 انجام می شود. خروجی باید با مقدار مشخصی از 0 شروع شود ( طبق قوانین بیت کوین ) تا معتبر در نظر گرفته شود. مقدار 0 مورد نیاز بستگی به چیزی دارد که «سختی» نامیده می شود که بسته به میزان قدرت محاسباتی در شبکه تغییر می کند.
به منظور تولید یک هش خروجی با مقدار دلخواه 0 در ابتدا ( که قوانین بیت کوین را نقض نکند )، ماینرها قبل از اجرای الگوریتم، چیزی را که “nonce” نامیده می شود ( nonce یک مقدار تصادفی است ) به بلوک اضافه می کنند. از آنجایی که یک تغییر کوچک در ورودی، خروجی را کاملاً تغییر میدهد، استخراجکنندهها تا زمانی که یک هش خروجی معتبر پیدا کنند، nonce تصادفی را امتحان میکنند.
هنگامی که بلوک استخراج شد، ماینر آن بلوک تازه استخراج شده را برای تمام ماینرهای دیگر پخش می کند. سپس بررسی می کنند تا مطمئن شوند که بلوک معتبر است تا بتوانند آن را به نسخه خود از بلاک چین اضافه کنند و تراکنش کامل شود. اما در بلاک، ماینرها باید هش خروجی بلوک قبلی را نیز وارد کنند تا همه بلاکها به هم گره بخورند، از این رو بلاک چین نامیده میشود.
هر ماینر نسخه مخصوص به خود را از بلاک چین در رایانه خود دارد و همه به بلاک چینی که بیشترین کار محاسباتی را روی آن انجام داده است، یعنی طولانی ترین زنجیره بلاک چین، اعتماد دارند. اگر یک ماینر یک تراکنش را در بلوک قبلی تغییر دهد، هش خروجی آن بلوک تغییر میکند و از آنجایی که از هش این بلاک در بلاک بعدی استفاده شده است که منجر به تغییر همه هشها پس از تغییر آن میشود. ماینر باید همه کارها را دوباره انجام دهد تا هرکسی بلاکچین خود را به عنوان بلاکچین مناسب بپذیرد. بنابراین اگر یک ماینر بخواهد تقلب کند به بیش از 50 درصد از قدرت محاسباتی شبکه نیاز دارد که بسیار بعید است. حملاتی مانند این حملات 51% نامیده می شوند.
مدلی که کامپیوترها برای تولید بلوکها کار میکنند، Proof-of-Work (PoW) نامیده میشود. همچنین مدلهای دیگری مانند Proof-of-Stake (PoS) وجود دارد که به قدرت محاسباتی زیادی نیاز ندارد و به برق کمتری نیاز دارد. در حالی که قادر به مقیاس برای کاربران بیشتر است.