عضویت در اعلانات

می‌خواهید از آخرین اعلانات و تخفیف ها آگاه شوید؟

prompt icon

بلاک در بلاکچین چیست؟ ارتباط بین بلاک ها در بلاک چین

1401/03/29

بلاک در بلاکچین چیست؟ ارتباط بین بلاک ها در بلاک چین، یکی از اجزای اصلی بلاک چین، بلاک ها هستند که به صورت زنجیر وار به هم متصل هستن. برای درک نحوه عملکرد بلاک چین، آشنایی با محتوای بلاک ها و ارتباط بین بلاک ها در بلاک چین و اینکه چگونه کار میکنن ضروری هست. در این مقاله به موارد زیر پرداخته میشه: 

 مولفه های تشکیل دهنده بلاک چیست؟

• هدر بلاک

 شماره ورژن نرم افزار

 هش بلاک قبلی

هش ریشه درخت مرکل

برچسب زمانی یا تایم استمپ

تارگت سختی فعلی شبکه

 نانس

• بدنه بلاک

هش، هشینگ و توابع هش

ارتباط بین بلاک ها در بلاک چین

تراکنش پیدایش چیست؟

ارتفاع بلاک چیست؟

درخت مرکل چیست؟

نحوه استخراج بلاک

انواع بلاک در بلاک چین 

• بلاک جنسیس

• بلاک های معتبر

• بلاک های یتیم

اگر میخواین راجع به موضوعات بالا بیشتر بدونین ادامه مقاله رو بخونین.

بلاک در بلاکچین چیست

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

مولفه های تشکیل دهنده بلاک

همونطور که اشاره شد هر بلاک به دو قسمت تقسیم میشه: هدر بلاک و بدنه بلاک که در ادامه محتوای هر کدوم از اونها عنوان میشه.

هدر بلاک

هدر بلاک

هدر بلاک در شبکه بیت کوین اهمیت زیادی داره چون همه بلاک ها رو به هم وصل میکنه. از هدر بلاک برای شناسایی یک بلاک خاص در کل بلاک چین استفاده میشه.  

هدر بلاک شامل داده هایی هست که در بالای بلاک قابل مشاهده است و از 6 مولفه تشکیل شده. 

 شماره ورژن نرم افزار

یکی از مولفه های تشکیل دهنده بلاک، شماره ورژن نرم افزار هست. شماره ورژن نرم افزار نشون میده که ماینر تصمیمات کدوم پروتکل رو ساپورت میکنه. 4 نوع ورژن بلاک چین داریم:

- ورژن 1.0 بلاک چین (رمزارز): این ورژن از یک دفتر کل توزیع شده عمومی برای ذخیره داده ها استفاده میکنه. بلاک چین بیت کوین از این نوع هست.

- ورژن 2.0 بلاک چین (قرارداد هوشمند): این ورژن قرارداد های هوشمند نامیده میشه که برنامه های خود اجرا هستن. بلاک چین اتریوم از این نوع هست.

- ورژن 3.0 بلاک چین (DAPPS): این نوع از بلاک چین ها برای ایجاد ساختار غیرمتمرکز استفاده میشه. مرورگر Tor مثالی از این ورژن هست.

- ورژن 4.0 بلاک چین (بلاک چین برای صنعت): این ورژن مقیاس پذیر و با صرفه از بلاک چین به منظور گسترش کاربرد اون در بین بخش های مختلف اقتصادی ایجاد شده. 

هش بلاک قبلی

یکی دیگه از مولفه های تشکیل دهنده بلاک، هش بلاک قبلی در بلاک چین هست. بلاک ها در بلاک چین به هم متصل هستن، یکی از این نقاط اتصال هش بلاک قبلی هست به این صورت که بلاک فعلی دربرگیرنده هش بلاک قبلیه. بدون این مولفه ارتباط بین بلاک ها در بلاک چین برقرار نمیشه. 

هش ریشه درخت مرکل

هش ریشه درخت مرکل از دیگر مولفه های تشکیل دهنده بلاک هست. همه تراکنش های موجود در بلاک میتونه در یک تابع هش خلاصه بشه که بهش هش ریشه درخت مرکل گفته میشه. در ادامه مقاله بیشتر در مورد درخت مرکل و ریشه اون توضیح داده میشه.

برچسب زمانی یا تایم استمپ

برچسب زمانی یا تایم استمپ

یکی دیگه از مولفه های تشکیل دهنده بلاک تایم استمپ TimeStamp یا برچسب زمانی هست که ترتیب زمانی بلاک ها در بلاک چین و اعتبار اون رو نشون میده. این زمان بر حسب ثانیه از تاریخ 01/01/1970 ساعت 00:00 ساعت هماهنگ جهانی UTC نمایش داده میشه. این مولفه هم در ارتباط بین بلاک ها در بلاک چین نقش داره.

تارگت سختی فعلی شبکه

تارگت Target یا هدف سختی شبکه از مولفه های تشکیل دهنده بلاک هست که پیچیدگی و قدرت پردازشی مورد نیاز برای استخراج در شبکه رو نشون میده. تارگت سختی بیشتر به معنی نیاز به دستگاه های پردازنده قدرتمندتر و گرون قیمت تر برای استخراج هست. برای سطوح سختی متفاوت از الگوریتم های  SHA-2، SHA-3، RIPEMD، MD5، BLAKE2 استفاده میشه.

تابع هش جدید تولید شده برای بلاک باید کوچیک تر از تارگت باشه که بتونه معتبر شناخته بشه. هر هش حجمی بر حسب بیت داره، هرچقدر هدف تعیین شده حجم کوچیکتری داشته باشه، یافتن یک تابع هش معتبر سخت تر میشه. تابع هشی که در ابتداش صفرهای بیشتری داره کوچیک تر از هشیه که صفر نداره.

نانس

نانس Nonce از اطلاعات و مولفه های تشکیل دهنده بلاک هست. نانس عدد تصادفی متغیریه که توسط سیستم اثبات کار تولید میشه و هر بار به صورت افزایشی عوض میشه تا اینکه ماینر یک هش معتبر رو حدس بزنه. این هش باید از تارگت بلاک کوچیکتر باشه.

بدنه بلاک

بدنه بلاک شامل همه تراکنشهای تایید شده هست. این تراکنش ها هم از دیگر مولفه های تشکیل دهنده بلاک هست. وقتی یک ماینر بلاکی رو ایجاد میکنه تراکنش ها رو اعتبار سنجی میکنه، به این معنی که چک میکنه که فرستنده پول کافی برای خرج کردن داره یا خیر. این اطلاعات در بلاک چین به راحتی قابل دسترس هست. ماینر با کنترل بلاک های قبلی مطمئن میشه کاربری که میخواد مثلا یک واحد بیت کوین جابجا کنه در کیف پولش این مقدار رو داره یا نه. 

هش، هشینگ و توابع هش

هش، هشینگ و توابع هش

هش کردن یا هشینگ Hashing به فرایندی گفته میشه که در اون یک عملگر ریاضی با عنوان تابع هش Hash Function داده های ورودی مثل حروف، اعداد، تصاویر و... رو به خروجی رمزنگاری شده تبدیل میکنه . تراکنش ها در بلاک میتونن از طریق توابع هش تبدیل به هش تراکنش بشن. این هش ها تا حدودی با ماتریوشکا یا عروسک روسی قابل مقایسه هستن. 

ماتریوشکا Matryoshka یا عروسک روسی Russian Doll یا عروسک تودرتوی کشور روسیه، مجموعه‌ ای از عروسک های کوچک ‌شونده هستش که به ترتیب داخل دیگری قرار می‌گیره.

یک بلاک رو میشه به مثابه یک ماتریوشکا تصور کرد. کوچکترین عروسک، تراکنش هش نشده هست. عروسک بعدی فرم هش شده تراکنش هست. سپس، دو تراکنش هش شده دوباره با هم هش میشن و این فرایند ادغام شدن هش ها دوباره و دوباره تکرار میشه تا جایی که فقط یک هش باقی مونده که بهش هش ریشه میگن. این هش ریشه بزرگترین عروسک ماتریوشکاست.

ارتباط بین بلاک ها در بلاک چین

ارتباط بین بلاک ها در بلاک چین

در بلاک چین همه بلاک ها به صورت زنجیروار به هم وصل هستن. هر بلاک با کریپتوگرافی و توابع هش رمزنگاری شده با بلاک قبل و بعد از خودش ارتباط داره. این ارتباط از طریق مولفه های هش بلاک قبلی و تایم استمپ انجام میگیره که در نهایت بلاک اول یا بلاک جنسیس رو از این طریق میشه رهگیری کرد. ارتباط بین بلاک ها در بلاک چین باعث میشه که امنیت تراکنش و شبکه تضمین بشه، به این صورت که اگر تغییری در محتوای یک بلاک ایجاد بشه ارتباط اون با بلاک چین قطع میشه.

تراکنش پیدایش چیست؟

حتما شنیده اید که ماینرها برای استخراج و تایید تراکنش ها پاداش دریافت میکنن. دریافت پاداش از شبکه با تراکنش هایی انجام میشه که به تراکنش پیدایش یا Generation Transaction یا تراکنش کوین بیس Coinbase مشهور است. این تراکنش با تراکنش های معمولی که توسط کاربرها برای انتقال پول انجام میشه تفاوت داره. در واقع تراکنش کوین بیس دستمزد شبکه به ماینرهاست. در مورد بیت کوین، این دستمزد پس از هر رویداد هاوینگ که هر 4 سال یک بار اتفاق میفتن برای چهار سال بعدی نصف میشه.

ارتفاع بلاک

فاصله هر بلاک با بلاک اول یا بلاک جنسیس رو ارتفاع بلاک Block Height میگن. ارتفاع بلاک جنسیس صفره، چون قبل از اون هیچ بلاکی ایجاد نشده. بعد از بلاک جنسیس تقریبا هر 10 دقیقه یه بار یه بلاک جدید به بلاک چین بیت کوین اضافه میشه. هیچ محدودیتی در تعداد بلاک های جدید وجود نداره و تا زمانی که بیت کوین معامله میشه ماینرها به تولید بلاک ادامه خواهند داد، حتی بعد از اینکه همه بیت کوین ها استخراج شد.

درخت مرکل چیست؟

عنوان درخت مرکل از رالف مرکل ریاضیدان گرفته شده. این دانشمند کشف کرد که اطلاعات هر چند زیاد و حجیم میتونه با یک تابع هش نشون داده بشه. به این منظور، ابتدا داده ها هش میشه، سپس خود هش ها هم هش و با هم ادغام میشن. در نهایت، درخت مرکل در یک هش ادغام و خلاصه میشه. این هش نهایی، هش ریشه یا ریشه درخت مرکل نامیده میشه. ریشه درخت مرکل اطلاعات برگ های درخت مرکل (تراکنش ها) و شاخه ها (هش برگ ها) رو در رشته کوتاهی از کاراکترها String به نمایش میذاره. 

به عنوان نمونه، در درخت مرکل بالا که به صورت شماتیک ترسیم شده، TD، TC و ... تراکنش های معمولی هستن. هر کدوم از این تراکنش ها به طور مجزا هش میشن و برای تک تک اونها هش مختص به خود ایحاد میشه (HD، HC و ...). مقادیر هش HD و HC ترکیب و هش می‌شن تا هش HCD تولید بشه. 

این فرآیند تا زمانی تکرار میشه که آخرین مقدار هش به دست بیاد. به این مقدار، ریشه مرکل میگن. در مثال بالا، ریشه مرکل HABCDEFGH هست که بیانگر خلاصه ای از اطلاعات همه تراکنش هاست.

درخت مرکل چیست؟

تا مادامی که همه شاخه ها و برگ های درخت مرکل معلوم هستن، ایجاد هش ریشه راحت و سریعه. تابع هش یک تابع یک طرفه هست به این صورت که معکوس کردن روند محاسبات تابع عملا غیر ممکنه. یعنی اگه هش ریشه معلوم باشه ولی تراکنش ها مجهول، امکان حدس تراکنش ها وجود نداره ولی برعکسش امکان پذیره. 

بنابراین، ریشه هش به تنهایی کافی نیست و بقیه بلاک هم باید ذخیره بشه. ماینر هر زمامی میتونه دوباره اطلاعات موجود در بلاک رو اعتبارسنجی کنه. تا مادامی که تابع هش یکیه، ماینرها همیشه هش یکسانی برای مجموعه ای از  داده های ورودی به دست میارن. 

نحوه استخراج بلاک: در جستجوی یک هش خاص

درک روش استخراج در مکانیزم اثبات کار در این زمینه راحت تره: حین استخراج، هدر بلاک به صورت افزایشی تغییر میکنه تا یک هش خاصی رو به دست بیاره. هدر از  پنج مولفه ثابت و یک مولفه متغیر تشکیل شده است. مولفه های ثابت عبارتند از: شماره ورژن نرم افزار، هش بلاک قبلی، هش ریشه درخت مرکل، تایم استمپ یا برچسب زمانی، و اندازه هدف هش جستجو شده بر حسب بایت. مولفه متغیر نانس هست. نانس عدد متغیریه که یک واحد افزایش پیدا میکنه. سپس ماینر داده ها رو هش میکنه و چک میکنه که هش به دست اومده از مقدار هدف جستجو شده پایین تر هست یا نه. اگر مقدار هش بزرگ تر از تارگت و هدف باشه، مورد تایید قرار نمیگیره و این فرایند رو دوباره تکرار میکنه. این بار مقدار عددی نانس یک واحد بیشتر میشه. ماینرها این پروسه رو تا زمانی ادامه میدن که یکی از اونها هشی رو محاسبه کنه و حدس بزنه که کمتر از تارگت باشه. بعد از استخراج موفق بلاک توسط یکی از ماینرها، هش این بلاک در بلاک بعدی با عنوان «هش بلاک قبلی» مورد استفاده و مبنای استخراج بلاک جدید قرار میگیره.

استخراج یک فرایند کاملا تکراریه که هدفش محاسبه و به دست آوردن یک هش خاص هست. زمانی که این هش کشف شد، بازی دوباره شروع میشه. احتمال به دست آوردن این هش بستگی به سختی شبکه داره. به طور میانگین، بیت کوین هر بلاک رو در 10 دقیقه استخراج میکنه. سختی شبکه همیشه در حال تعدیل شدنه و به این خاطر میانگین زمان استخراج بلاک هم تقریبا ثابته. 

ویژگی منحصر به فرد این پروسه اینه که این هش خاص صرفا با حدس اون به دست میاد و به این خاطر قدرت محاسباتی و به تبع اون انرژی میبره. در زیر مثالی از یک هش خاص از بلاک چین بیت کوین رو میبینین:

000000000000000000094bfa4edb1245c347e42452e4418e9fe5a1d24e335b16

انواع بلاک در بلاک چین

سه نوع از بلاک در بلاک چین های مختلف وجود داره که عبارتند از: بلاک جنسیس، بلاک های معتبر و بلاک های یتیم که در ادامه اونها رو توضیح میدیم.

 بلاک جنسیس Genesis Block

یکی از انواع بلاک در بلاک چین، بلاک جنسیس هست. جنسیس به معنی منشا، پیدایش و مبدا هست. بلاک جنسیس اولین بلاک یک بلاک چین هست. اولین بلاک در بلاک چین بیت کوین در سال 2009 توسط ساتوشی ناکاموتو استخراج و ایجاد شده بود. بلاک جنسیس سنگ بنای هر بلاک چینه. و به بلاک بعدی این قابلیت رو میده تا به بلاک قبل از خودش لینک بشه تا  ارتباط بین بلاک ها در بلاک چین حفظ بشه تا تراکنش ها در بلاک چین قابل تغییر نباشن.

بلاک های معتبر Valid Blocks

یکی دیگه از انواع بلاک در بلاک چین بلاک های معتبر هست. بلاک های معتبر به همه بلاک هایی گفته میشه که استخراج و در بلاک چین گنجانده شده اند. برای قرار گرفتن یک بلاک در بلاک چین، لزوما باید توسط شبکه اعتبارسنجی و به عنوان بلاکی شناخته بشه که تونسته مسئله ریاضی و رمزنگاری شده رو حل کنه تا مورد تایید قرار بگیره و اعتبار داشته باشه. زمانی که شبکه به این اجماع برسه بلاک در بلاک چین قرار میگیره.

هر بلاک معتبر شامل یک سری تراکنش است که یک جا همراه با بلاک مورد تایید قرار میگیرن. برای مثال در شبکه بیت کوین، هر بلاک معتبر شامل متوسط 2100 تراکنش هست. به این طریق، هر تراکنشی که داخل یک بلاک معتبر قرار میگیره، تراکنش تایید شده محسوب میشه. از اون به بعد، هر بلاک معتبری هم که به بلاک چین اضافه میشه تراکنش های قبلی رو تایید میکنه. این امر باعث میشه که هر تراکنش و بلاک بر روی شبکه امنیت لازم رو داشته باشه.

بلاک های یتیم Orphan Blocks

بلاک های یتیم Orphan Blocks

یکی دیگه از انواع بلاک، بلاک های یتیم یا اورفان هستن. این بلاک ها، بلاک های هستن که وارد بلاک چین نمیشن. این اتفاق زمانی میفته که دو ماینر بلاک هایی رو همزمان ایجاد میکنن، یا یک هکر با قدرت پردازشی کافی که سعی میکنه تراکنشی رو برگشت بزنه میتونه باعث این اتفاق بشه. در این مواقع پروتکل اجماع شبکه وارد عمل میشه تا تصمیم بگیره کدوم بلاک مورد تایید و در بلاک چین قرار بگیره وکدوم در بلاک چین قرار نگیره و اصطلاحا یتیم بشه.

واقعیت اینه که شبکه به این صورت برنامه نویسی شده که همیشه طولانی ترین حجیم ترین بلاک چین رو تایید میکنه، یعنی اونی که شامل اطلاعات بیشتر هست یا تراکنش های پردازش شده بیشتری داره. این موضوع نشون میده که امنیت شبکه و حفاظت از اطلاعات اون در عین حال که ساده است بسیار موثر عمل میکنه.

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

بلاک های یتیم در مرورگرهای بلاک ها قابل رهگیری هستن برای مثال، Blockchain.com این قابلیت رو داره.

جمع بندی و نتیجه گیری

در مقاله بلاک در بلاکچین چیست؟ به موضوع بلاک در بلاک چین پرداختیم و نحوه ارتباط بین بلاک ها در بلاک چین رو توضیح دادیم. اشاره شد که بلاک ها از دو قسمت هدر و بدنه تشکیل یافته اند. به مولفه های تشکیل دهنده بلاک اشاره کردیم و گفتیم که هدر بلاک شامل 6 مولفه است که عبارتند از: شماره ورژن نرم افزار، هش بلاک قبلی، هش ریشه درخت مرکل، برچسب زمانی یا تایم استمپ، تارگت سختی شبکه و نانس. از این 6 نوع اطلاعات، نانس متغیر بوده و باقی اونها ثابت هستن. در ادامه برای درک بیشتر نحوه عملکرد بلاک در بلاک چین موضوعات هش، هشینگ، توابع هش، ارتباط بین بلاک ها در بلاک چین، تراکنش پیدایش، درخت مرکل و نحوه استخراج رو تعریف و شرح دادیم. در قسمت بعدی مقاله، به انواع بلاک در بلاک چین ها پرداختیم که عبارتند از: بلاک جنسیس، بلاک های معتبر و بلاک های یتیم. 

 

نظرات