مقالات
بیتکوین برای ثبت و نگهداری سوابق تراکنشها از ساختاری مبتنی بر بلاکچین استفاده میکند. در این ساختار، اطلاعات تراکنشها در واحدهایی به نام «بلاک» قرار میگیرند و بلاکها بهصورت پیوسته به یکدیگر متصل میشوند. حاصل این فرایند، زنجیرهای از بلاکها است که سابقه فعالیت شبکه را در خود نگهداری میکند.
اما بلاک بیتکوین دقیقاً چیست؟ چه اطلاعاتی داخل هر بلاک قرار دارد؟ هش بلاک چه کاربردی دارد؟ ارتباط بلاکها با یکدیگر چگونه برقرار میشود و ماینرها چه نقشی در ایجاد بلاکهای جدید دارند؟ برای پاسخ به این پرسشها ابتدا باید ساختار کلی بلاکچین بیتکوین را بشناسیم.
هشدار: این مطلب صرفاً با هدف آموزش و آشنایی با ساختار فنی شبکه بیتکوین تهیه شده است و نباید بهعنوان توصیه مالی، معاملاتی یا سرمایهگذاری تلقی شود. هدف این مقاله توضیح مفهوم بلاک، ساختار آن و اطلاعات ثبتشده در بلاکهای بیتکوین است.
بلاک را میتوان یک واحد ساختاری در بلاکچین بیتکوین دانست که مجموعهای از اطلاعات مرتبط با وضعیت و فعالیت شبکه را در خود جای میدهد. بخش مهمی از محتوای هر بلاک شامل تراکنشهایی است که برای ثبت در بلاکچین انتخاب شدهاند.
هر بلاک علاوه بر تراکنشها، دارای اطلاعات فنی دیگری نیز هست. بخشی از این اطلاعات در قسمتی به نام Block Header یا سربرگ بلاک قرار میگیرد و برای شناسایی بلاک، ارتباط آن با بلاک قبلی و فرایند اثبات کار اهمیت دارد.
هنگامی که یک بلاک مطابق قواعد شبکه ایجاد و پذیرفته میشود، به زنجیره بلاکها اضافه خواهد شد. بلاک بعدی نیز با استفاده از اطلاعات رمزنگاریشده به بلاک قبلی مرتبط میشود. به همین ترتیب، سابقه بلاکچین به شکل یک زنجیره ادامه پیدا میکند.

ساختار بلاک بیتکوین را میتوان بهطور ساده به دو بخش اصلی تقسیم کرد: سربرگ بلاک و بدنه بلاک.
سربرگ شامل اطلاعات فنی موردنیاز برای شناسایی و پردازش بلاک است، درحالیکه بدنه بلاک عمدتاً تراکنشهای قرارگرفته در آن را شامل میشود.
⬅️ Block Header | اطلاعات فنی و رمزنگاریشده مربوط به بلاک |
⬅️ Transactions | مجموعه تراکنشهای قرارگرفته در بلاک |
⬅️ Previous Block Hash | مرجع رمزنگاریشده مرتبط با بلاک قبلی |
⬅️ Merkle Root | مقدار خلاصهشدهای که به مجموعه تراکنشهای بلاک متعهد است |
⬅️ Timestamp | زمان ثبتشده در سربرگ بلاک |
⬅️ nBits | نمایش فشرده هدف اثبات کار |
⬅️ Nonce | مقداری که در فرایند اثبات کار تغییر داده میشود |
این اطلاعات در کنار یکدیگر باعث میشوند هر بلاک جایگاه مشخصی در زنجیره داشته باشد و نودهای شبکه بتوانند اعتبار آن را براساس قواعد پروتکل بررسی کنند.
یکی از مهمترین قسمتهای هر بلاک بیتکوین، سربرگ آن است. سربرگ بلاک مجموعهای از دادههای فنی است که اطلاعات اصلی موردنیاز برای ارتباط بلاک با زنجیره و فرایند اثبات کار را در خود نگهداری میکند.
سربرگ بلاک بیتکوین دارای فیلدهایی مانند نسخه، هش بلاک قبلی، ریشه مرکل، زمان، nBits و Nonce است.
ساختار کلی آن را میتوان به شکل زیر خلاصه کرد:
فیلد سربرگ | کاربرد کلی |
⬅️ Version | مشخصکننده نسخه و سیگنالهای مرتبط با قواعد بلاک |
⬅️ Previous Block Hash | ایجاد ارتباط با بلاک قبلی |
⬅️ Merkle Root | تعهد رمزنگاریشده به تراکنشهای بلاک |
⬅️ Timestamp | زمان درجشده توسط سازنده بلاک |
⬅️ nBits | نمایش فشرده هدف اثبات کار |
⬅️ Nonce | یکی از مقادیری که برای یافتن هش معتبر تغییر میکند |
شناخت این فیلدها برای درک نحوه شکلگیری زنجیره بیتکوین اهمیت زیادی دارد.
یکی از مهمترین اطلاعات موجود در سربرگ هر بلاک، مقدار مرتبط با هش بلاک قبلی است. همین ویژگی نقش مهمی در ایجاد ساختار زنجیرهای بلاکچین دارد.
به زبان ساده، بلاک جدید به بلاک قبلی اشاره میکند و بلاک قبلی نیز به بلاک پیش از خود مرتبط است. این ارتباط تا بلاکهای ابتدایی زنجیره ادامه پیدا میکند. به همین دلیل بلاکها مجموعهای کاملاً مستقل از یکدیگر نیستند؛ بلکه هر بلاک در چارچوب تاریخچه زنجیره قرار دارد. این ساختار همچنین باعث میشود تغییر اطلاعات یک بلاک قدیمی موضوع سادهای نباشد، زیرا تغییر دادههای آن میتواند هش مرتبط با آن بلاک را تغییر دهد و ارتباط رمزنگاریشده با بلاکهای بعدی را تحت تأثیر قرار دهد. در شبکهای مبتنی بر اثبات کار مانند بیتکوین، بازنویسی تاریخچه علاوه بر این ارتباط رمزنگاریشده، با الزامات اجماع و اثبات کار نیز مواجه است.
هش را میتوان خروجی یک تابع رمزنگاری دانست. بیتکوین در بخشهای مختلف ساختار خود از تابع هش SHA-256 استفاده میکند و هش سربرگ بلاک با اعمال SHA-256 دوباره بر خروجی SHA-256 محاسبه میشود.
حتی تغییر کوچکی در دادههای ورودی میتواند خروجی هش متفاوتی ایجاد کند. این ویژگی در ساختار بیتکوین اهمیت زیادی دارد، زیرا دادههای موجود در سربرگ بلاک در محاسبه هش آن نقش دارند.
در فرایند استخراج، ماینرها تلاش میکنند سربرگی ایجاد کنند که هش حاصل از آن از هدف تعیینشده توسط شبکه پایینتر باشد. برای رسیدن به چنین نتیجهای، مقادیر قابل تغییر در فرایند ساخت بلاک بارها تغییر میکنند و هشهای مختلف محاسبه میشوند.
هنگامی که یک تراکنش بیتکوین ایجاد و به شبکه منتشر میشود، نودها میتوانند آن را براساس قواعد پروتکل بررسی کنند. تراکنشهای معتبر ممکن است پیش از قرارگرفتن در یک بلاک در مجموعه تراکنشهای تأییدنشده یک نود نگهداری شوند که معمولاً با عنوان Mempool شناخته میشود.
ماینر یا سازنده بلاک میتواند مجموعهای از تراکنشها را برای قرار دادن در بلاک کاندید انتخاب کند. پس از ساختهشدن یک بلاک معتبر و انتشار آن، نودهای شبکه خودشان بلاک و تراکنشهای موجود در آن را بررسی میکنند.
بنابراین صرف قرارگرفتن یک تراکنش در بلاک پیشنهادی به معنی پذیرش بدون بررسی آن توسط شبکه نیست. هر نود کامل میتواند اعتبار بلاک را مطابق قواعدی که اجرا میکند ارزیابی کند.

هر تراکنش بیتکوین خود دارای ساختار مشخصی است. بسته به نوع تراکنش و نسخه مورد استفاده، جزئیات ساختاری میتوانند متفاوت باشند، اما بهطور کلی تراکنشها شامل ورودیها و خروجیها و اطلاعات لازم برای اعتبارسنجی انتقال هستند.
ورودیها یا Inputs معمولاً به خروجیهای خرجنشده تراکنشهای قبلی ارجاع میدهند. خروجیها یا Outputs نیز مقدار بیتکوین و شرایط لازم برای خرجکردن آن در آینده را مشخص میکنند.
در مدل بیتکوین، برخلاف سامانههای حسابمحور، یک موجودی ساده برای هر آدرس در داخل بلاک ذخیره نمیشود. بیتکوین از مدل UTXO یا Unspent Transaction Output استفاده میکند و وضعیت قابلخرج شبکه از خروجیهای خرجنشده تراکنشها به دست میآید.
UTXO یکی از مفاهیم پایه برای درک ساختار تراکنشهای بیتکوین است. هر تراکنش میتواند خروجیهایی ایجاد کند و خروجیهایی که هنوز در تراکنش دیگری خرج نشدهاند، بهعنوان UTXO شناخته میشوند.
هنگامی که کاربر قصد انجام تراکنش جدیدی را دارد، ورودیهای تراکنش به UTXOهای قبلی اشاره میکنند. با معتبر شناختهشدن تراکنش، خروجیهای مصرفشده دیگر قابل استفاده مجدد نیستند و خروجیهای جدید میتوانند به مجموعه UTXOهای شبکه اضافه شوند.
این مدل یکی از تفاوتهای مهم بیتکوین با شبکههایی است که از معماری حسابمحور استفاده میکنند.
قرار دادن تعداد زیادی تراکنش در یک بلاک، نیازمند روشی ساختاریافته برای ایجاد یک تعهد رمزنگاریشده به مجموعه آنها است. بیتکوین برای این منظور از ساختاری به نام Merkle Tree یا درخت مرکل استفاده میکند.
تراکنشها در این ساختار بهصورت مرحلهای با یکدیگر ترکیب و هش میشوند تا در نهایت یک مقدار نهایی به نام Merkle Root یا ریشه مرکل ایجاد شود. ریشه مرکل در سربرگ بلاک قرار میگیرد و به مجموعه تراکنشهای موجود در بلاک وابسته است.
در نتیجه، تغییر در تراکنشهای بلاک میتواند باعث تغییر ریشه مرکل شود. درخت مرکل همچنین امکان ارائه اثبات عضویت یک تراکنش در یک بلاک را بدون نیاز به ارائه تمام تراکنشهای آن بلاک فراهم میکند. این قابلیت در برخی روشهای بررسی سادهشده اطلاعات بلاکچین کاربرد دارد.

در سربرگ بلاک فیلدی برای زمان وجود دارد که Timestamp نامیده میشود. این مقدار توسط سازنده بلاک درج میشود و یکی از دادههای مورد استفاده در بررسی اعتبار بلاک است. بااینحال، نباید Timestamp بلاک را دقیقاً معادل زمان قطعی و ثبتشده توسط یک ساعت مرکزی در نظر گرفت. بیتکوین سامانهای غیرمتمرکز است و قواعد پروتکل محدودیتهایی برای زمان قابلقبول بلاکها تعیین میکنند.
بنابراین Timestamp بیشتر بخشی از دادههای پروتکلی بلاک است و ممکن است با زمان واقعی ایجاد یا دریافت بلاک اختلاف محدودی داشته باشد.
Nonce یکی دیگر از فیلدهای سربرگ بلاک است که در فرایند اثبات کار اهمیت دارد. ماینرها هنگام تلاش برای تولید یک بلاک معتبر، مقادیر مختلفی را امتحان میکنند تا هش سربرگ شرایط موردنیاز شبکه را داشته باشد. تغییر Nonce باعث تغییر داده ورودی محاسبه هش و در نتیجه ایجاد خروجی جدید میشود. البته فضای Nonce محدود است و در عمل ماینرها فقط به تغییر همین فیلد متکی نیستند؛ آنها میتوانند بخشهای دیگری از دادههای بلاک کاندید را نیز تغییر دهند تا فضای بیشتری برای محاسبات هش ایجاد شود.
فیلد nBits در سربرگ بلاک، نمایش فشردهای از هدف اثبات کار یا Target است. برای معتبر بودن اثبات کار یک بلاک، مقدار عددی هش سربرگ باید شرایط تعیینشده نسبت به این هدف را داشته باشد. این هدف با سازوکار تنظیم سختی شبکه ارتباط دارد. بیتکوین بهصورت دورهای پارامتر سختی را براساس قواعد پروتکل تنظیم میکند تا نرخ ایجاد بلاکها در بلندمدت حول مقدار موردنظر پروتکل باقی بماند.
بنابراین nBits بخشی از اطلاعات مهمی است که نودها هنگام بررسی اثبات کار بلاک از آن استفاده میکنند.
هر بلاک بیتکوین دارای تراکنش ویژهای است که معمولاً Coinbase Transaction نامیده میشود. این تراکنش با تراکنشهای عادی تفاوت دارد و اولین تراکنش بلاک است. تراکنش Coinbase ورودی معمولی که به UTXO قبلی اشاره کند ندارد و طبق قواعد پروتکل برای ثبت خروجی مرتبط با یارانه بلاک و کارمزدهای تراکنشهای موجود در بلاک استفاده میشود.وجود این تراکنش بخشی از ساختار پروتکل بیتکوین و فرایند ایجاد بلاک است.

برای مشخصکردن موقعیت یک بلاک در زنجیره معمولاً از مفهوم Block Height یا ارتفاع بلاک استفاده میشود. ارتفاع بلاک بیان میکند یک بلاک در چه موقعیتی نسبت به ابتدای زنجیره قرار گرفته است. بلاک آغازین بیتکوین که با عنوان Genesis Block شناخته میشود، ارتفاع صفر دارد و بلاکهای بعدی بهترتیب در ارتفاعهای بالاتر قرار میگیرند.
البته ارتفاع بلاک بهعنوان یکی از شش فیلد سربرگ بلاک ذخیره نمیشود. این مقدار از جایگاه بلاک در زنجیره قابل تعیین است.
اولین بلاک بلاکچین بیتکوین با عنوان Genesis Block یا بلاک پیدایش شناخته میشود. این بلاک نقطه آغاز تاریخچه زنجیره است و برخلاف بلاکهای عادی، بلاک قبلی متعارفی برای ارجاع ندارد. تمام بلاکهای بعدی در نهایت از طریق زنجیره ارجاعات رمزنگاریشده به این نقطه ابتدایی متصل میشوند. به همین دلیل Genesis Block جایگاه ویژهای در معماری بیتکوین دارد.
هنگامی که بلاک جدیدی در شبکه منتشر میشود، نودهای کامل آن را صرفاً به دلیل انتشار توسط یک ماینر معتبر تلقی نمیکنند. هر نود میتواند مجموعهای از بررسیها را براساس قواعد اجماع انجام دهد. این بررسیها موضوعاتی مانند ساختار بلاک، اثبات کار، ارتباط با بلاک قبلی، اعتبار تراکنشها، نحوه مصرف UTXOها، محدودیتهای مربوط به اندازه یا وزن بلاک و سایر قواعد اجماع را شامل میشود. اگر بلاک با قواعدی که نود اجرا میکند سازگار نباشد، آن نود میتواند آن را رد کند. این موضوع یکی از ویژگیهای مهم معماری غیرمتمرکز بیتکوین است؛ اعتبار بلاک به اعتماد به یک تولیدکننده مرکزی وابسته نیست.
این سه مفهوم ارتباط نزدیکی با یکدیگر دارند، اما یکسان نیستند.
تراکنش | ساختاری برای مصرف خروجیهای قبلی و ایجاد خروجیهای جدید |
بلاک | مجموعهای ساختاریافته از تراکنشها همراه با اطلاعات فنی |
بلاکچین | تاریخچه زنجیرهای بلاکهای مرتبط با یکدیگر |
Block Header | سربرگ حاوی دادههای فنی کلیدی بلاک |
Block Height | موقعیت یک بلاک در زنجیره |
UTXO | خروجی تراکنشی که هنوز خرج نشده است |
بنابراین تراکنش را میتوان یکی از اجزای محتوایی بلاک دانست و مجموعه بلاکهای مرتبط نیز تاریخچه بلاکچین را شکل میدهد.
بلاکچین بیتکوین بهصورت ذاتی نام، نام خانوادگی یا اطلاعات هویتی متعارف افراد را به هر تراکنش متصل نمیکند. دادههای بلاکچینی شامل اطلاعاتی مانند تراکنشها، خروجیها، اسکریپتها و شناسههای مرتبط هستند. بااینحال، این موضوع به معنی ناشناسبودن مطلق بیتکوین نیست. بیتکوین معمولاً بهعنوان شبکهای مستعارمحور یا Pseudonymous توصیف میشود. دادههای بلاکچین عمومی هستند و در برخی شرایط، ترکیب اطلاعات درونزنجیرهای با دادههای خارج از بلاکچین میتواند امکان ایجاد ارتباط میان فعالیتهای مختلف را فراهم کند.
بنابراین «نبود نام واقعی در بلاک» نباید با «ناشناسبودن کامل» اشتباه گرفته شود.
پس از قرارگرفتن یک بلاک در تاریخچه زنجیره و ساختهشدن بلاکهای بعدی روی آن، تغییر گذشته شبکه با موانع فنی و اجماعی روبهرو میشود.
تغییر محتوای یک بلاک میتواند ریشه مرکل و در نتیجه سربرگ و هش آن را تغییر دهد. در چنین شرایطی ارتباط آن با بلاکهای بعدی نیز تحت تأثیر قرار میگیرد. برای بازنویسی چنین تاریخچهای باید اثبات کار مربوطه مجدداً انجام شود و زنجیره جایگزین نیز در چارچوب قواعد اجماع بتواند بر زنجیره رقیب غلبه کند. به همین دلیل بهتر است بهجای توصیف ساده بلاکچین بهعنوان «کاملاً تغییرناپذیر»، از مفهوم مقاومت در برابر بازنویسی تاریخچه استفاده شود؛ زیرا میزان دشواری بازنویسی به شرایط شبکه و عمق بلاک در زنجیره نیز وابسته است.
هنگامی که یک تراکنش در یک بلاک پذیرفتهشده قرار میگیرد، معمولاً گفته میشود یک تأیید دریافت کرده است.
اگر بلاکهای بیشتری پس از آن ساخته شوند، تعداد تأییدهای تراکنش نیز افزایش پیدا میکند. این مفهوم با احتمال بازسازماندهی زنجیره یا Chain Reorganization ارتباط دارد. در برخی شرایط ممکن است نودها با شاخههای رقیب مواجه شوند و در نهایت زنجیره دارای بیشترین کار انباشته معتبر را دنبال کنند.
به همین دلیل قرارگرفتن تراکنش در یک بلاک و تعداد بلاکهای ساختهشده پس از آن، دو مفهوم مهم در بررسی وضعیت تراکنش در بیتکوین هستند.

اطلاعات بلاکهای بیتکوین عمومی است و میتوان آن را از طریق اجرای یک نود یا ابزارهایی که معمولاً Block Explorer یا مرورگر بلاک نامیده میشوند مشاهده کرد. در یک مرورگر بلاک معمولاً اطلاعاتی مانند ارتفاع بلاک، هش بلاک، هش بلاک قبلی، زمان، تعداد تراکنشها، اندازه یا وزن بلاک و جزئیات تراکنشهای موجود در آن قابل مشاهده است. مرورگر بلاک خود بخشی از پروتکل اجماع بیتکوین نیست؛ بلکه ابزاری برای خواندن و نمایش دادههای عمومی بلاکچین محسوب میشود.
بلاک یکی از اجزای اصلی معماری بیتکوین است. هر بلاک مجموعهای از تراکنشها را در کنار سربرگی شامل اطلاعات فنی مانند نسخه، هش بلاک قبلی، ریشه مرکل، Timestamp، nBits و Nonce در خود جای میدهد.
ارتباط رمزنگاریشده میان بلاکها باعث شکلگیری زنجیرهای از سوابق میشود و سازوکار اثبات کار و قواعد اجماع نیز به نودهای شبکه اجازه میدهند اعتبار بلاکهای جدید را بدون وابستگی به یک مرجع مرکزی بررسی کنند.
برای درک دقیقتر عملکرد بیتکوین، شناخت مفاهیمی مانند Block Header، هش، Merkle Root، UTXO، Nonce، تراکنش Coinbase، Block Height و تأیید تراکنش اهمیت زیادی دارد. این مفاهیم در کنار یکدیگر نشان میدهند که اطلاعات در شبکه بیتکوین چگونه سازماندهی، بررسی و به تاریخچه بلاکچین اضافه میشوند.