برای فهمیدن اینکه بلاکچین چگونه کار میکند، بهتر است یک تراکنش را از لحظه ایجاد تا زمانی که در State یا تاریخچه شبکه ثبت میشود دنبال کنیم. Blockchain فقط مجموعهای از «Blockهای دارای Hash» نیست؛ مجموعهای از تراکنش، امضای دیجیتال، Node، قواعد اعتبارسنجی، شبکه همتابههمتا، Block Production و Consensus با هم کار میکنند تا چند کامپیوتر مستقل روی یک History مشترک توافق کنند.
معماری دقیق بین شبکهها متفاوت است. برای مثال Bitcoin از مدل UTXO و Proof of Work استفاده میکند، در حالی که Ethereum شبکهای Account-based با Proof of Stake و State Machine قابل برنامهریزی است. بنابراین این مقاله ابتدا Workflow عمومی را توضیح میدهد و سپس تفاوت شبکهها را روشن میکند.
اگر ابتدا به تعریف پایه فناوری نیاز دارید، مقاله بلاکچین چیست؟ را بخوانید؛ این صفحه روی نحوه کار تمرکز دارد.
بلاکچین چگونه کار میکند؟ مسیر یک تراکنش در 8 مرحله
1) کاربر یک تراکنش میسازد
Wallet یا نرمافزار کاربر داده لازم برای تراکنش را میسازد. این داده بسته به Blockchain متفاوت است؛ ممکن است شامل آدرس مقصد، مقدار، Fee، Nonce یا Reference به UTXOهای قبلی باشد.
2) تراکنش با کلید خصوصی امضا میشود
کاربر برای اثبات اینکه مجاز به خرجکردن دارایی است، Transaction را با Private Key خود Sign میکند. Private Key نباید به شبکه ارسال شود؛ Signature به Nodeها امکان میدهد Authorization را بدون دانستن خود Private Key بررسی کنند.
Ethereum.org نیز Transaction را یک دستور رمزنگاریشده/امضاشده از Account معرفی میکند و Signature را مدرکی میداند که نشان میدهد فرستنده تراکنش را مجاز کرده است. مستند رسمی تراکنشها در Ethereum
3) تراکنش در شبکه P2P منتشر میشود
پس از Sign، Transaction به یک Node ارسال و از طریق Peer-to-Peer Network میان Nodeهای دیگر منتشر میشود. در شبکههای عمومی، یک Server مرکزی واحد برای دریافت همه تراکنشها وجود ندارد.
4) Nodeها تراکنش را اعتبارسنجی میکنند
Nodeها Rules شبکه را روی Transaction اعمال میکنند؛ برای مثال Signature معتبر است یا نه، موجودی/UTXO قابل خرج وجود دارد یا نه، Transaction با Consensus Rules سازگار است یا نه و آیا Double Spend یا Rule Violation وجود دارد.
در Bitcoin نیز Peerها و Minerها تراکنش را مستقل اعتبارسنجی میکنند و فقط Transaction معتبر را Relay یا برای Inclusion در Block بررسی میکنند. راهنمای تراکنشها در Bitcoin Developer
5) تراکنش معتبر وارد Pool تراکنشهای در انتظار میشود
بسیاری از Nodeها تراکنش معتبر اما هنوز Confirmنشده را در یک Pool محلی نگه میدارند. در Bitcoin معمولاً از اصطلاح Mempool استفاده میشود؛ در Ethereum نیز Transactionهای Pending در Transaction Pool قرار میگیرند.
نکته مهم: Mempool یک Database جهانی و کاملاً یکسان نیست. هر Node میتواند با توجه به Policy، منابع و زمان دریافت، مجموعه Pending متفاوتی داشته باشد.
6) Block Producer مجموعهای از تراکنشها را انتخاب میکند
Miner یا Validator ـ بسته به Consensus شبکه ـ تراکنشها را برای Block Candidate انتخاب میکند. انتخاب میتواند به Fee، Gas، Dependency میان تراکنشها، Limitهای Block و Policy نرمافزار بستگی داشته باشد.
Block زمانی ساخته نمیشود که «تعداد تراکنشها کامل شود». Protocol برای Block محدودیتهایی مانند Weight، Size، Gas یا Time/Slot دارد و Block Producer در چارچوب همان Rules، تراکنشها را بستهبندی میکند.
7) Block به شبکه پیشنهاد و دوباره اعتبارسنجی میشود
Block جدید به Peerها منتشر میشود و Nodeها فقط به دلیل اینکه یک Miner یا Validator آن را ساخته قبولش نمیکنند؛ خودشان Header، Parent، Transactionها و State Transition را طبق Rules شبکه بررسی میکنند.
در Ethereum، Validator پیشنهاددهنده Block تراکنشها را اجرا میکند و سایر Validator/Nodeها آنها را دوباره Execute/Verify میکنند. مستند Ethereum این فرآیند را بهصورت Proposal، propagation، re-execution و validation توضیح میدهد. مستند Blockها در Ethereum
8) Consensus تعیین میکند کدام History معتبر بماند
Consensus فقط «تأیید تراکنش» نیست؛ مجموعهای از Rules، Incentiveها، Fork Choice و Finality Mechanism است که مشخص میکند Nodeهای مستقل روی کدام Chain/State توافق کنند.
بعد از قرارگرفتن Transaction در Block، با اضافهشدن Blockهای بعدی یا رسیدن شبکه به Finality، احتمال تغییر History کمتر میشود. مفهوم «تأیید» و «نهاییشدن» در هر Blockchain یکسان نیست.
داخل یک بلاک چه اطلاعاتی وجود دارد؟
ساختار Block به Protocol بستگی دارد و نمیتوان همه Blockchainها را فقط به سه جزء «داده، Hash و Hash قبلی» محدود کرد.
بهصورت مفهومی، یک Block میتواند شامل این دستهها باشد:
- Transaction Data: تراکنشها یا داده لازم برای State Transition.
- Reference به Block قبلی: معمولاً Hash یا Parent Reference برای ایجاد Chain.
- Commitment: مانند Merkle Root یا State Root برای خلاصهسازی قابل Verify دادهها.
- Consensus Metadata: مانند Timestamp، Difficulty-related fields، Validator/Proposer data یا سایر فیلدهای مخصوص Protocol.
Ethereum.org نیز Block را مجموعهای از Transactionها میداند که Reference رمزنگاریشدهای به Parent Block دارد و از این طریق History به شکل Chain مرتب میشود. معرفی فنی Blockchain در Ethereum.org
Hash چه نقشی در کارکرد بلاکچین دارد؟
Hash یک Fingerprint رمزنگاریشده برای داده ایجاد میکند. تغییر کوچک در داده میتواند Digest متفاوتی بسازد و همین ویژگی برای ساخت Transaction ID، Merkle Commitment و Reference میان Blockها مفید است.
اما Hash بهتنهایی Blockchain را «غیرقابل تغییر» نمیکند. مقاومت در برابر بازنویسی History از ترکیب Hash linkage + validation rules + consensus + economic/finality assumptions حاصل میشود. توضیح تخصصی Hash Functionها در مقاله الگوریتم هش چیست؟ آمده است.
Genesis Block چیست و آیا بلاکچین مشخصات افراد را ذخیره میکند؟
Genesis Block اولین Block در History یک Blockchain است و Parent معمولی قبل از خود ندارد. جزئیات فنی آن به Protocol بستگی دارد.
در عین حال Address عمومی نیز الزاماً Anonymous نیست. داده Onchain میتواند تحلیل و با اطلاعات خارج از Chain مرتبط شود؛ بنابراین «Public» و «Anonymous» دو مفهوم متفاوتاند.
ماینر و Validator چه تفاوتی دارند؟
مقالهای درباره «نحوه کار Blockchain» نباید همه شبکهها را با مدل Mining توضیح دهد. Block Production به Consensus بستگی دارد.
| موضوع | Proof of Work | Proof of Stake |
|---|
| تولیدکننده Block | Miner | Validator/Proposer |
| منبع امنیت اقتصادی | هزینه محاسبات و انرژی | Stake و جریمه اقتصادی |
| نمونه | Bitcoin | Ethereum فعلی |
Ethereum از Proof of Stake استفاده میکند؛ Validatorها Block پیشنهاد میدهند و سایر Validatorها/Nodeها آن را بررسی میکنند. توضیح Proof of Stake در Ethereum
تأیید تراکنش و Finality چه تفاوتی دارند؟
قرارگرفتن Transaction در یک Block اولین سطح Confirmation است، اما «برای همیشه غیرقابل تغییر شدن» به Finality Model شبکه بستگی دارد.
در Proof-of-Work، Blockهای جدید روی History قبلی ساخته میشوند و با افزایش Work تجمعی، بازنویسی History پرهزینهتر میشود؛ Chain Reorganization کوتاه همچنان از نظر پروتکلی ممکن است.
در Ethereum Proof of Stake، Blockها علاوه بر Inclusion میتوانند به مراحل Justified و سپس Finalized برسند. Ethereum.org این lifecycle را برای Transactionها توضیح میدهد و Finality را سطح قویتری از اطمینان نسبت به Inclusion اولیه میداند.
بلاکچین چه کاربردهایی دارد؟
Blockchain زمانی مفیدتر است که چند طرف نیاز دارند روی State مشترک توافق کنند اما نمیخواهند ثبت و تغییر آن کاملاً به یک Database Operator واحد وابسته باشد. با این حال، Blockchain برای هر مسئله ذخیرهسازی داده بهترین انتخاب نیست.
نمونه کاربردها میتوانند شامل این موارد باشند:
- دارایی و پرداخت دیجیتال: ثبت و انتقال مالکیت داراییهای Onchain.
- Smart Contract: اجرای Ruleهای برنامهپذیر روی شبکههای پشتیبانیکننده.
- Tokenization: نمایش حق مالکیت یا Claim در قالب Token، با توجه به ساختار حقوقی مربوط.
- ثبت و Timestamp: ثبت Hash یا Proof برای نشاندادن وجود داده در زمان مشخص.
- Shared Ledger سازمانی: در برخی مدلهای Permissioned برای هماهنگی بین چند نهاد.
مثالهایی مثل «انتخابات بدون هیچ تقلب»، «پرونده پزشکی کاملاً امن» یا «زنجیره تأمین بدون نیاز به اعتماد» نباید بهصورت نتیجه تضمینشده نوشته شوند. Blockchain نمیتواند صحت دادهای را که از دنیای واقعی بهاشتباه وارد شده، خودکار تشخیص دهد. برای معماریهایی که دسترسی و Validatorها محدودند، مقاله بلاکچین مجوزمحور چیست؟ مکمل این بخش است.
محدودیتها و Trade-offهای بلاکچین چیست؟
- Scalability: Replication و Validation میان Nodeهای متعدد میتواند Throughput را محدود کند.
- Fee: در شبکه عمومی و شلوغ، رقابت برای Block Space میتواند هزینه Transaction را افزایش دهد.
- Storage و State Growth: History و State در طول زمان رشد میکنند و اجرای Node میتواند منابع بیشتری بخواهد.
- Latency / Finality: رسیدن به Settlement نهایی ممکن است کندتر از Database متمرکز باشد.
- Privacy: Transparency شبکه عمومی میتواند با نیازهای محرمانگی در تضاد باشد.
- Key Management: از دستدادن Private Key یا امضای درخواست مخرب میتواند پیامد جدی داشته باشد.
- Oracle Problem: Consensus فقط داده Onchain را اعتبارسنجی میکند؛ صحت داده دنیای واقعی نیازمند Trust/Oracle model جداست.
برای بررسی تخصصی محدودیت ظرفیت شبکه و راهکارهای آن، مقاله مقیاسپذیری بلاکچین چیست؟ را ببینید.
مثال ساده: اگر علی برای سارا دارایی دیجیتال بفرستد چه اتفاقی میافتد؟
- Wallet علی Transaction را با مقصد، مقدار و پارامترهای شبکه میسازد.
- علی Transaction را با Private Key خود Sign میکند.
- Transaction از طریق Node/RPC به P2P Network Broadcast میشود.
- Nodeها Signature و Rules اعتبارسنجی را بررسی میکنند.
- Transaction معتبر در Pool Pending قرار میگیرد.
- Block Producer آن را همراه Transactionهای دیگر در Block قرار میدهد.
- سایر Nodeها خود Block و State Change را مستقل بررسی میکنند.
- پس از پذیرش Block و پیشرفت Consensus/Finality، Wallet سارا State جدید را مشاهده میکند.
هیچ شخص مرکزی در این Workflow لازم نیست بهصورت دستی تراکنش علی را «تأیید» کند؛ اما این به معنی حذف همه Trust Assumptionها از تمام Applicationها نیست. Wallet، Bridge، Oracle، Custodian یا Frontend میتوانند Riskهای مستقل داشته باشند.
جمعبندی؛ بلاکچین با همکاری Cryptography، Node و Consensus کار میکند
مسیر یک Transaction از ساخت و Signature شروع میشود، در P2P Network منتشر و توسط Nodeها اعتبارسنجی میشود، سپس ممکن است در Block قرار گیرد و پس از Consensus و Finality بخشی از History معتبر شبکه شود.
Hash و اتصال Blockها فقط بخشی از این سیستماند. چیزی که Blockchain را از یک فایل زنجیرهای ساده متمایز میکند، امکان توافق چند Node مستقل روی Rules و State مشترک بدون Database مرکزی واحد است.
مقالات مرتبط