اگر بخواهیم بفهمیم چه چیزی باعث میشود قواعد بیتکوین در عمل اجرا شوند، باید نودها را بشناسیم. نود فقط یک کامپیوتر متصل به اینترنت نیست؛ نرمافزاری است که دادههای شبکه را دریافت میکند و آنها را با قواعدی که اجرا میکند میسنجد.
این موضوع مهم است، چون در بیتکوین قرار نیست برای تشخیص معتبر بودن یک تراکنش یا بلاک صرفاً به یک شرکت، ماینر یا سرور مرکزی اعتماد کنیم. هر مشارکتکننده میتواند تا حدی که نرمافزار و دادههای لازم را در اختیار دارد، قوانین را خودش بررسی کند.
نود بیتکوین دقیقاً چیست؟
نود بهطور کلی به نرمافزاری گفته میشود که در شبکه بیتکوین مشارکت میکند. انواع مختلفی از نودها و شیوههای اتصال وجود دارد، اما در بحث اعتبارسنجی، Full Node اهمیت ویژهای دارد.
یک Full Node بلاکها و تراکنشهای دریافتی را با قواعد اجماع بررسی میکند. این بررسی مستقل است؛ یعنی نود لازم نیست صرفاً به این دلیل که یک ماینر بلاکی را منتشر کرده، آن را معتبر فرض کند.
Full Node چه چیزی را بررسی میکند؟
یک Full Node هنگام دریافت تراکنش، مواردی مانند اعتبار ورودیها، شرایط خرجکردن UTXOها، امضاهای لازم و قوانین ساخت تراکنش را بررسی میکند.
هنگام دریافت بلاک نیز بررسیهای بیشتری انجام میشود؛ از جمله ساختار بلاک، تراکنشهای آن، ارتباط با بلاک قبلی، Proof of Work و قواعد مربوط به ایجاد پاداش.
اگر بلاکی برخلاف قواعد اجماع ساخته شده باشد، داشتن Proof of Work بهتنهایی آن را معتبر نمیکند. برای مثال، ماینری که مقدار پاداش بیشتری از مقدار مجاز برای خود ایجاد کند نمیتواند با صرفاً انجام محاسبات، این تخلف را معتبر کند.
نود با ماینر چه تفاوتی دارد؟
این دو نقش بهشدت با یکدیگر اشتباه گرفته میشوند.
ماینر برای پیدا کردن بلاک و انجام Proof of Work رقابت میکند. نود دادههای شبکه را با قواعد پروتکل اعتبارسنجی میکند و بلاکها و تراکنشهای نامعتبر را میتواند نپذیرد.
یک فرد میتواند Full Node اجرا کند بدون اینکه ماینر باشد. از طرف دیگر، یک عملیات استخراج معمولاً به نرمافزار و زیرساخت اعتبارسنجی نیز نیاز دارد، اما قدرت هش به خودی خود اختیار تغییر قواعد را ایجاد نمیکند.
آیا نودها درباره همه چیز رأی میدهند؟
توصیف بیتکوین بهعنوان سیستمی که نودها در آن برای هر تراکنش «رأی» میدهند، دقیق نیست.
نودها قواعدی را که نرمافزارشان اجرا میکند روی دادههای دریافتی اعمال میکنند. اگر یک بلاک با قواعد سازگار باشد، نود میتواند آن را بپذیرد و منتشر کند؛ اگر ناسازگار باشد، میتواند آن را رد کند.
در نتیجه، بخش مهمی از مدل اعتمادزدای بیتکوین از اینجا میآید که کاربران میتوانند قواعد را مستقل از یک مرجع مرکزی اجرا کنند.
نودها چگونه با یکدیگر ارتباط دارند؟
بیتکوین یک شبکه همتابههمتاست. نودها به همتایان دیگر متصل میشوند و تراکنشها و بلاکها را میان یکدیگر منتقل میکنند.
وقتی تراکنش جدیدی ایجاد میشود، میتواند در شبکه منتشر شود. نودهای دریافتکننده ابتدا آن را بررسی میکنند و در صورت معتبر بودن، آن را برای همتایان خود نیز ارسال میکنند.
همین الگو برای بلاکها نیز وجود دارد. یک بلاک پس از انتشار توسط یک ماینر، به نودهای دیگر میرسد و آنها پیش از پذیرش، اعتبارش را بررسی میکنند.
ممپول چه ارتباطی با نود دارد؟
ممپول را میتوان مجموعه تراکنشهای معتبر اما هنوز تأییدنشدهای دانست که یک نود برای نگهداری و انتشار در اختیار دارد.
نکته مهم این است که ممپول یک دفترکل جهانی واحد نیست. ممکن است دو نود در یک لحظه دقیقاً مجموعه تراکنش یکسانی در ممپول خود نداشته باشند.
این تفاوت با وضعیت بلاکچین مهم است: بلاکها بخشی از تاریخچه پذیرفتهشده شبکه را تشکیل میدهند، در حالی که ممپول وضعیت موقتی تراکنشهایی است که هنوز در بلاک قرار نگرفتهاند.
چرا اجرای Full Node مهم است؟
اجرای Full Node به کاربر اجازه میدهد بخش مهمی از اعتبارسنجی را بدون واگذاری کامل آن به یک سرویس شخص ثالث انجام دهد.
برای مثال، اگر کاربری موجودی یا وضعیت تراکنش خود را فقط از یک سرویس متمرکز بپرسد، در عمل به آن سرویس برای ارائه داده صحیح وابسته است. یک Full Node میتواند دادههای بلاکچین را خودش دریافت و قواعد اعتبارسنجی را اجرا کند.
این به معنی بینیازی کامل از دیگران نیست؛ شبکه همتابههمتا برای دریافت داده به ارتباط با سایر نودها نیاز دارد. اما تفاوت اصلی در اعتماد به صحت قواعد و اعتبار داده است.
آیا هر نود کل بلاکچین را نگه میدارد؟
Full Node معمولاً تاریخچه لازم برای اعتبارسنجی زنجیره را نگهداری میکند، اما مفهوم نود با «یک دستگاه مشخص با یک اندازه ثابت» یکی نیست. نرمافزار و تنظیمات مختلف میتوانند شیوه نگهداری و استفاده از داده را تغییر دهند.
برای فهم معماری پایه، بهتر است این اصل را به خاطر بسپاریم: Full Node برای اعتبارسنجی مستقل به داده و قواعد کافی دسترسی دارد و صرفاً یک نمایشگر قیمت یا رابط کاربری نیست.
آیا نودها میتوانند تعداد بیتکوین را دلخواه تغییر دهند؟
خیر. نودها خودشان بیتکوین جدید خلق نمیکنند و نمیتوانند بهصورت یکجانبه مقدار پاداش مجاز را افزایش دهند.
اگر یک بلاک مقدار بیشتری از پاداش مجاز را ایجاد کند، نودی که قواعد مربوط به آن ارتفاع بلاک را اجرا میکند میتواند بلاک را نامعتبر تشخیص دهد.
این نکته رابطه میان نود، ماینر و عرضه بیتکوین را روشن میکند: ماینر میتواند بلاک پیشنهاد کند، اما اعتبار آن بلاک همچنان به قواعدی بستگی دارد که نودها اجرا میکنند.
نود، اجماع و تغییر قوانین
اجماع در بیتکوین صرفاً به معنی «همه نودها یک پیام را تأیید کردند» نیست. بخش مهمی از اجماع از این واقعیت میآید که مشارکتکنندگان بر سر قواعدی که نرمافزارشان اجرا میکند، در یک زنجیره معتبر مشترک عمل میکنند.
اگر نسخهای از نرمافزار قواعد متفاوتی را اجرا کند، ممکن است درباره اعتبار بعضی بلاکها با نسخه دیگر اختلاف پیدا کند. به همین دلیل تغییرات مهم پروتکل موضوعی فنی و اجتماعی هستند و صرفاً با تصمیم یک مدیر مرکزی اعمال نمیشوند.
آیا اجرای نود برای هر کاربر ضروری است؟
خیر. بیشتر کاربران برای استفاده معمول از بیتکوین Full Node اجرا نمیکنند و از کیف پولها یا سرویسهای دیگری استفاده میکنند.
اما از نظر معماری شبکه، وجود مشارکتکنندگان مستقل در اعتبارسنجی اهمیت زیادی دارد. هرچه درک ما از این نقش بیشتر باشد، تفاوت میان «استفاده از بیتکوین» و «اجرای مستقل قواعد بیتکوین» روشنتر میشود.
نود چه چیزی را حل میکند؟
نود بهتنهایی امنیت بیتکوین را ایجاد نمیکند. امنیت و عملکرد شبکه حاصل ترکیب چند جزء است: رمزنگاری، تراکنشها و UTXOها، شبکه همتابههمتا، نودهای اعتبارسنج، Proof of Work، مشوقهای اقتصادی و قواعد اجماع.
نقش نود در این مجموعه این است که به مشارکتکننده اجازه دهد دادههای شبکه را با قواعد مشخص بررسی کند، نه اینکه اعتبار یک بلاک را صرفاً از روی ادعای تولیدکننده آن بپذیرد.
برای ادامه مطالعه، میتوانید ابتدا مقاله بیتکوین چیست؟ و سپس بلاکچین چیست؟ را بخوانید. برای فهم نقش ماینرها نیز ماینینگ بیتکوین چگونه کار میکند؟ مسیر طبیعی بعدی است.
منابع و مراجع
- Bitcoin Developer Guide — Operating Modes
- Bitcoin Developer Guide — P2P Network
- Bitcoin Developer Guide — Block Chain and validation
این مطلب با هدف آموزش و تحلیل تهیه شده است و نباید بهعنوان توصیه قطعی برای خرید، فروش یا شرطبندی تلقی شود.