در این پُست مراحل ساخت بلاک بلاکچین را مرحله به مرحله و به زبان ساده بیان میکنیم.
پس از خواندن این پُست شما میدانید که چگونه یک بلاک ساخته و ناشکن میشود و چه کسانی در ساخت آن نقش دارند.
برای فهم ساده از ایجاد تراکنش توسط شما در کیف پول شروع و به اضافه شدن آن در بلاکچین ختم میکنیم.
در سایتهای اجتماعی با ما باشید
مرحله اول: جمعآوری تراکنشها در ممپول
جمعآوری تراکنشها از کجا شروع میشود؟ از کیف پولها.
همهای اینها از من و شما، صرافیها، و قراردادهای هوشمند آغاز میگردد — و همه دارای کیف پول گرم یا سرد است و یا هم دارای گرم و سرد.
پس از اینکه شما تراکنش را آغاز کرید، یا از صرافی (متمرکز و غیرمتمرکز) درخواست برداشت کردید و یا اینکه اقدام به برداشت از یک قرارداد هوشمند کردید، تراکنشهای ما در سالن انتظار که مشهور به ممپول (Mempool) است، جمعاوری میگردد.
این تراکنشها در این سالن (ممپول) باقی میماند تا آنکه توسط یکی از استخراج کننده یا نود (Node) برای پردازش برداشته شود.
مرحله دوم: ساخت بلاک
یک بلاک با ترکیب اجزای آن و با ترتیب ساخت میشود. و باید مراحل خود را طی کند که از انتخاب تراکنشها از ممپول شروع میشود.
انتخاب تراکنشها از ممپول
ساخت بلاک با انتخاب تراکنشها توسط استخراج کننده از استخر ممپول شروع میشود. استخراج کنندگان به تراکنشهای اولویت میدهد که کارمزد تراکنش بیشتری حاضر به پرداخت است. دقیق مانند قانون عرضه و تقاضای اقتصاد است. کسی که حاضر به پرداخت پول بیشتر (اینجا کارمزد تراکنش) شد خدمات (پردازش تراکنش) اول دریافت میکند.
در اینجا شما تصور کنید که استخراج کننده فقط 4 تراکنش را بنام TxA, TxB, TxC, TxD انتخاب کرده است.
این تراکنشها در بدنه بلاک قرارد دارد. یعنی استخراج کننده بار اول بدنه بلاک را می سازند و بعد به سمت هدر میآید.
سپس؛ مرحله ساخت هش مرکل روت شروع میشود. اینجا کمی کار دارد.
ساخت هش مرکل روت
پس از اینکه تراکنشها از ممپول برای ساخت بلاک انتخاب شد — استخراج کننده با استفاده از تابع هش تراکنشها را با یک هش که مشهور به مرکل روت است خلاصه سازی میکند.
(مرکل روت خلاصه تراکنشها ها است با کمپیوتر قابل بررسی است؛ نه چشم من و شما)
خُب. مرکل روت چگونه کار میکند؟
تصور کنید که یک استخراج کننده فقط 4 تراکنش را برای ساخت یک بلاک انتخاب کرده است. نامهای آن تراکنش را: TxA, TxB, TxC, TxD گذاشتیم و استخراج کننده با استفاده از تابع هش مراحل زیر را اجرا میکند:
- اول، تمام تراکنشها را جداگانه هش میکند که نتیجه آن هش A، هش B، هش C، و هش D است
- دوم، هشها را دوبهدو جورهای هش میکند که نتیجه آن هش AB و هش CD میگردد.
- سوم و آخرین مرحله، هش AB و هش CD باهم هش شده هش ABCD را میسازد.
شما میتوانید مراحل ساخت هش مرکل روت را در فلوچارت زیر بییند.
بسته بندی اجزای بلاک
استخراج کننده برای بسته بندی بلاک اجزای هدر را یعنی:
- نسخه؛
- هش بلاک قبلی؛
- درجه سختی استخراج؛
- مرکل روت؛
- برچسب زمانی؛ و
- نانس
را باهم یکجا کرده و با استفاده از تابع هش (فرمول ریاضی) و انتخاب 0 به عنوان نانس اولین بار تلاش برای ساخت بلاک میکند.
مرحله سوم: حل معما یا پازل
این همان مرحله است که نشان دهنده کار استخراج کننده (اثبات کار) است. یعنی گذر از این مرحله نشان میدهد که سازنده بلاک برای حل معما کار کرده است.
معرفی اجمالی کار استخراج کننده
وظیفه استخراج کننده ساختن یک هش با یکجا کردن داده های هدر و نانس است.
برای ساخت بلاک قانون پروتکل ساده است: هش بلاک (Block Hash) باید کمتر یا برابر به هدف (Target) باشند.
در واقع هش و تارگت هردو ارقام است. و این ارقام قابل تبدیل به دیگر مدلها است.
کمپیوتر از ارقام باینری استفاده میکند. و این کاوشگران است که آن را تبدیل به اعداد خام و یا هگزادسیمال میکند تا ما با چشم راحتتر بخوانیم.
وقتی ما میگوییم که هش کمتر از تارگت (هدف) باشند ارقامی است (باینری) که فقط کمپیوتر خوب میفهمند. برای ما انسان گیج کننده و زمانبر که حفظ کنیم و یا مقایسه کنی.
شما صرف هش و هدف را ارقام در نظر بگیرید. کمپیوترها (استخراج کنندهها) تلاش میکنند که با یکجا کردن دادههای هدر و نانس یک هشِ بسازند که کوچکتر از هدف باشند.
یادداشت: هدف و بعضی دیگر دادهها را کاوشگر بلاکچین شکل فشرده آن را نشان میدهد. اگر شما خواهان درک عمیق آن هستید، باید کورس توسعه بلاکچین بگیرید. در اینجا ممکن نیست.
خُب. معما چگونه حل میگردد؟
طوری که گفته شد استخراج کننده یا ماینر باید هش یا شناسهای بسازند که کمتر از هدف یا تارگیت باشند.
در اینجا یک مثال فرضی خیلی خیلی خیلی ساده آورده ایم.
فرض کنید که هدف ساخت یک بلاک ایجاد یک هش است که کمتر از 0001000 است.
کمپیوتر استخراج کننده یا ماینر شروع به حل معما با یکجا کردن دیگر دادههای هدر بلاک همراه با حدس زدن شروع میکند.
حدس اول: استخراج کننده (0 + دادهها) را باهم هش میکند. نتیجه: 5495556 میشود. این رقم بزرگتر از هدف یعنی 0001000 است.
حدس دوم: استخراج کننده (1 + دادهها) را باهم هش میکند. نتیجه: 0015556 میشود. این رقم بزرگتر از هدف یعنی 0001000 است.
حدس سوم: استخراج کننده (2 + دادهها) را باهم هش میکند. نتیجه: 5490000 میشود. این رقم بزرگتر از هدف یعنی 0001000 است.
.
.
.
بالاخره حدس بیستم: استخراج کننده (19 + دادهها) را باهم هش میکند. نتیجه: 0000856 میشود. این رقم کوچکتر از هدف یعنی 0001000 است.
تبریک! معما حل شد. استخراج کننده با استفاده از 19 به عنوان نانس و همراه با دیگر دادههای هدر توانست هشِ بسازند که کوچک تر از هدف است.
مرحله چهارم: پخش و تایید بلاک
پس از اینکه بلاک توسط یکی از استخراج کننده موفقانه ایجاد شد، استخراج کننده آن را در شبکه پخش میکند.
دیگر مشترکین شبکه با بررسی کار سازنده بلاک؛ آن را با بررسی تراکنشها، و تکرار هش آن را تایید میکند.
سازنده بلاک (استخراج کننده موفق) پس از تایید توسط دیگر مشترکین پاداش خود را دریافت میکند.
پاداش استخراج کننده موفق بیتکوینهای جدید که وارد شبکه میشود همراه با کارمزدهای تراکنش است.
مرحله پنجم: شدن بلاک به بلاکچین
پس از تایید بلاک معرفی شده توسط دیگر مشترکین، در بلاک اضافه شده و دایمی میگردد.
هش که توسط این استخراج کننده ساخته شده بود، جز هدر بلاک بعدی میگردد. در بلاک بعدی اسم آن هش بلاک قبلی است.
این هشها بلاکها را باهم وصل و ناشکن میکند. از این زمان ببعد بلاک عضو دایمی شبکه شده و تغییر آن ناممکن میگردد. اگر حمله کنندهای بخواهد آن را تغییر دهند باید سرمایههنگفتی را سرمایهگذاری کرده و حمله کند — که اقتصادی نیست.
مرتبط: اجزای بلاک در بلاکچین: یک بلاک (Block) از چه و چه ساخته شده است؟

