ساختار داده‌ها در بلاک‌چین

1397/09/01
ساختار بلاک ها در بلاک چین

بلاک‌چین زنجیره‌ای از بلوک‌های حاوی اطلاعات است که پشت سر هم مرتب شده‌اند و هر بلوک به بلوک قبلی لینک است. بلوک‌ها می¬توانند در یک دیتابیس ساده یا در یک فایل فلت ( فایل بدون سلسله مراتب ). هر بلوک با هش آن که در هدر بلوک قرار دارد شناسایی می‌شود . این هش به وسیله الگوریتم رمزنگاری SHA256 ساخته شده است . هر بلوک توسط فیلدی در هدر خود به نام previous block hash به بلوک قبلی ارجاع داده می‌شود.
تابع رمزنگاری هش که به اختصار به آن هش می‌گوییم ، یک الگوریتم ریاضی ست که اطلاعات با اندازه دلخواه را به رشته‌ای با اندازه ثابت نگاشت کند. در مورد الگوریتم SHA256 ، داده‌ها به رشته 32 بیتی تبدیل می‌شوند. الگوریتم هش یک الگوریتم یک‌طرفه بوده و اطلاعات 32 بیتی غیرقابل بازگشت هستند. ایده هش برای ساده‌سازی جستجوی داده‌ها در دیتابیس است ، داده‌های هش شده می‌تواند در جدولی که به نام جدول هش شناخته می‌شود ذخیر شده و این کار به علکرد جستجو کمک شایانی می‌کند.
تابع هش داده‌ها را فقط به یک هش تبدیل می‌کند یعنی اینکه غیر ممکن است که شما دو هش را بیابید که از یک داده به وجود آمده باشند بنابراین هنگامی که یک هش ساخته می‌شود این هش فقط مربوط به یک داده خاص است ، که این ویژگی باعث می‌شود نه تنها بلوک‌ها از طریق هش آن‌ها شناسایی شوند و بلکه برای اعتیار سنجی بلوک‌ها نیز مورد استفاده قرار گیرند. به طور مثال در بیت‌کوین از الگوریتم SHA256 استفاده می‌شود با این تفاوت که این الگوریتم دو بار بر روی داده‌ها اجرا می‌گردد و یک رشته 32 بیتی را تولید می‌کند.
هر بلوک هش بلوک والدینش ( بلوک قبلی ) را در هدر خود نگه می‌دارد و به این ترتیب زنجیره‌ای ساخته می‌شود که تا بلوک اول که به آن بلوک جنسیس می‌گوییم ادامه می‌یابد. هش بلوک والدین در فیلد هدر بلوک ( previous block hash ) ذخیره می‌شود به این ترتیب هش بلوک فعلی به هش بلوک والدین بستگی دارد بنابراین اگه هش بلوکی تغییر کند به تبع آن باید هش بلوک بعدی ( بلوک فرزند ) تغییر کند و این روند ادامه دارد تا به آخرین بلوک برسد ، این کار نیاز به عملیات ریاضی بالایی دارد و تقریبا غیر ممکن است و این کلید امنیت در بلاک‌چین است. حتی اگر فرض بگیریم که این کار اتفاق افتاد حالا باید هش بقیه بلوک‌ها در تمام کلاینت‌ها عوض شود که در غیر این صورت شبکه این زنجیره را غیر معتبر تشخیص داده و آن را حذف می‌کند. بلاک‌ها حاوی اطلاعات هستند که هدر یکی از اجزاء ساختمانی آن‌ها ست ، بلوک‌ها به وسیله هش یا شماره بلوک شناسایی می‌شوند.


هدر بلوک‌ها


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

در هدر بلوک‌ها 3 دسته اطلاعات وجود دارد :

  1. هش بلوک قبلی تا زنجیره اطلاعات درست شود
  2. اطلاعات namely the difficulty, timestamp and nonce آن نیز ثبت می‌شود
  3. 3) در آخر ریشه درخت مرکل ( Merkle Tree root ) ثبت می‌گردد
  4. هدر بلوک‌ها مثل امضای دیجیتالی آن‌ها ست ( dynamic membership multi-party signature یا DMSS ). هش هدر بلوک‌ها در بیت‌کوین باید ویژگی خاصی داشته باشند که آن ویژگی وجود چند صفر در اول هش آن‌ها ست مثل هش زیر : 000000000019d7789c085ae165831e934gf763ae46a4a6c172b3f1b60a8ce26f


    هش هدر و نود‌ها


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


    شماره بلوک


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

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

تمامی حقوق مادی و معنوی وب سایت محفوظ می باشد.