خب تا اینجای داستان با مبانی بلاک چین آشنا شدیم. توی این قسمت میخوایم نحوه انجام تراکنشهای بلاک چینی رو یکم مفصلتر بررسی کنیم.
ممپول1
وقتی که تراکنشها میخوان انجام بشن، اول توی یکجایی به اسم ممپول (استخر حافظه) قرار می گیرن که کارش اصلا اینه که تمام تراکنشای تایید نشده رو جمع آوری کنه. قبلا هم صحبت کردیم که وقتی یک تراکنش جدیدی اتفاق میوفته برای اعضای شبکه فرستاده میشه که تاییدش کنن. در واقع اون تراکنشهایی که برای همه فرستاده میشه آخرین تراکنشایی هستن که در ممپول وجود دارن.
هرکدوم از اعضای شبکه این تراکنشها رو توی یک بلاک جدید قرارمیده. خوبه اینم بدونیم که به دلیل محدودیت حافظه روی کامپیوترها و سریعتر شدن تراکنشها معمول نیست که تمام تراکنشها دنبال هم توی تمام بلاکها تکرار بشن و قبلا هم باهم دیدیم که بجای اینکار یک بخشی از اونها توی هر بلاک میاد و بلاکها به شکل زنجیرهوار به هم متصل میشن. پس هر بلاک فقط تعداد محدودی از تراکنشها رو نگه میداره. وقتی که یک بلاک پر شد، مجموعه بعدی تراکنشها باید توی استخر حافظه منتظر بمونن. در این مرحله اصطلاحا میگن که بلاک تایید نشده. اگر هم به هر دلیلی در نهایت اعضا به اجماع2 راجع به یک بلاک نرسن تراکنشهای داخل بلاک باطل میشن که توی مطالب بعدی راجع بهش براتون مینویسم. خب! بریم ببینیم چطوری بلاکهای جدیدمون به بلاکچین اضافه میشن.
اضافهشدن یک بلاک جدید به بلاک چین
اولین قدم برای اضافه شدن یک بلاک به بلاکهای قبلی تایید تراکنش انجام شدست. این به این معنیه که مطمئن بشیم که تراکنش انجام نشده باشه و تکراری یا تقلبی نباشن. بیاین فرض کنیم که همه شرکت کنندهها میدونن چطوری تراکنشها رو تأیید کنن و این کارو صادقانه انجام میدن (بدونین که میشه که اینکارو نکنن. شاید بعدا راجع بهش نوشتم). حالا باید شرکت کنندهها در مورد تراکنش اجماع بکنن. یعنی مثلا نصف بعلاوه یکی از اعضا (یا مثلا 51% از اعضا) باید با تراکنشها موافقت کنن. پس با فرض اینکه همه صادقانه تراکنشها رو تأیید میکنن، به صورت تصادفی یکی از اعضا بلاک خودشو برای کل شبکه میفرسته و اگر بیش از 51% از شرکت کنندهها با محتوای بلاک موافق باشن اجماع حاصل شده و گفته میشه که بلوک تأیید شده.
خوبه که اینم بدونیم ممکنه شبکه در اولین تلاش بلاک رو تایید نکنه. معمولا اگر کسی بخواد یک بلاک تقلبی رو برای بقیه بفرسته (یعنی خودش بیخودی یک بلاکی درست بکنه که یا محتواش غلط باشه یا به جای درستی نتونه وصل بشه) این اتفاق میوفته و شبکه تلاش برای معامله جعلی رو رد می کنه.
پس به عنوان جمعبندی تا وقتی که اعضای شبکه به صورت صادقانه تراکنشها رو تایید بکنن همه چیز سر جای خودشه و شبکه در امنیته.
قبلا باهم دیدیم که بلاکهای هش شده چطور به هم وصل میشن. توی مطلب بعدی میخوایم یکم دقیقتر ببینیم که این چه فایدهای داره و در مورد این عمیقتر بشیم.
1. Mempool
2. Consensus
به نظر می آید برای فهم عبارت “معمول نیست که تمام تراکنشها دنبال هم توی تمام بلاکها تکرار بشن” نیاز به توضیح بیشتری هست. در مفاهیم قبلی (تعداد تراکنش در بلاک) فقط یک تراکنش و فقط یک رفرنس اشاره شده است