معرفی اجزا بلاکچین و نحوه عملکرد آنها با نگاهی موشکافانه!

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

بلاکچین چیست؟

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

به این مثال ساده توجه کنید که در آن به پیگیری مالکیت بر روی یک بلاکچین می پردازیم. یک تراکنش را مانند یک فایل متن با اطلاعات رسید در نظر بگیرید. این فایل، خریدار و فروشنده و مقدار ارسال شده را لیست می کند و وقتی که تراکنش عملی شد، یک برچسب زمانی ایجاد می شود. برچسب زمانی (timestamp) زمان و نوع اتفاق در بلاک چین را نشان می‌دهد و بر حسب ساعت UTC است. عملکرد برچسب زمانی تنها مشخص کردن زمان بلاک نیست بلکه تغییرات هش ریت را نشان می دهد و همچنین از بلاکچین در برابر عوامل مخرب و دستکاری توسط آنها محافظت می کند و نقش امنیتی را در شبکه بلاکچین ایفا می کند.

اجزا بلاکچین

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

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

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

اعتبار بلاک چین

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

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

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

  • ۱- شبکه ای از کامپیوتر های متصل به سبک همتا به همتا موجود است. اگر کامپیوتر شما بخشی از یک شبکه بلاکچینی باشد، مستقیما با کامپیوتر های دیگر بر روی شبکه ارتباط برقرار خواهد کرد و این ارتباط از طریق یک سرور مرکزی که در مالکیت یک شخص ثالث متمرکز باشد، صورت نمی گیرد.
  • ۲- یک الگوریتم اجماع موجود است. کامپیوتر های مرتبط در شبکه همگی نسخه هایی از همان نرم افزار را اجرا می کنند و قوانینی در آن نرم افزار نوشته شده که نحوه همگام ماندن همه نود ها و موافقت با یکدیگر در داده های تراکنشی را که آنها بر روی بلاکچین ذخیره می کنند، تعریف می نماید.
  • ۳- همچنین ساختار داده های بلاکچین موجود است. بلاکچین به زنجیره بلاک های مرتبط به هش تجزیه می شود و اساسا لیست مرتبط حیرت انگیز و درازی ایجاد می شود.

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

پروتکل بلاک چین

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

بلاکچین چگونه کار می کند؟

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

  • چگونه می دانیم که سوابق تراکنش بر روی بلاکچین هرگز تغییر نخواهد کرد؟
  • چگونه می دانیم که طرفین یک تراکنش آنهایی هستند که ادعا می شود و اینکه آیا این طرفین با تراکنش موافقت کرده اند؟
  • در یک سیستم توزیع شده با نود های زیاد که کامپیوتر ها و کاربران هستند، چگونه ما می توانیم همدیگر را تایید کنیم؟

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

هشینگ رمزنگاری و درخت مرکل چیست؟

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

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

تابع هش رمزنگاری (Hash Function) چیست؟

درخت مرکل بلاک چین

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

الگوریتم بلاک چین

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

آنچه که ما در حال ایجاد کردنش هستیم یک ساختار داده است که به عنوان درخت مرکل (Merkle) به آن اشاره می شود. درخت مرکل یک نوع درخت باینری است که با اشاره گر های هش ساخته شده است و ساختار خیلی مفیدی برای گروه بندی قطعاتی مجزا از داده و در دسترس کردن آنها از طریق یک ارجاع هش خاص می باشد. آن هش نهایی که ارائه دهنده همه تراکنش هاست، هش ریشه ما می باشد (ریشه Merkle درخت merkle ما). و هش ریشه ارائه دهنده همه تراکنش هایی است که به طرف آن جذب می شود.

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

توضیحاتی پیرامون درخت مرکل (Merkle Tree) و ریشه مرکل (Merkle Root)

 درخت مرکل

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

بلاک و هدر بلاک چیست

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

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

بلاک بلاک چین

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

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

هدر بلاک چین

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

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

بلاک چین ۳

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

امضاهای دیجیتال چیست

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

هشینگ و امضای دیجیتال در بلاکچین

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

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

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

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

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

نود یا گره چیست

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

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

گره یا نود بلاک چین؛ راهنمای جامع انواع نودها!

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

ماینر و ماینینگ (استخراج رمز ارز) چیست

ماینرها همانند سایر نودها با انتقال اطلاعات و نگهداری نسخه‌ای از بلاک چین، از شبکه پشتیبانی می‌کنند. به علاوه، ماینرها مسئول ایجاد بلاک‌های جدید هستند. هدف ماینرها به شرح زیر است: هر بلاک جدید را می‌توان به عنوان تصمیم جمعی در خصوص سابقه چند دقیقه اخیر در نظر گرفت. شبکه در خصوص تراکنش‌های مقطع زمانی مورد نظر به اجماع می‌رسد. این مقطع زمانی به طور میانگین ۲.۵ دقیقه و برای بیت کوین ۱۰ دقیقه است.

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

ماینینگ یا استخراج رمز ارز فرایندی است که در آن تراکنش ارز دیجیتال تایید می‌شود و به بلاک چین افزوده می‌شود. با انجام ماینینگ کوین‌های جدید تولید می‌شوند و به موجودی در گردش آن ارز دیجیتال خاص اضافه می‌شود. از آنجا که مزایای یک سیستم غیر متمرکز بلاکچین را در همان وهله اول یک ایده پایدار می کند، مشکل نحوه رسیدن به اعتماد و حفظ آن در یک سیستم غیر متمرکز یکی از بزرگترین مشکلاتی است که لازم است حل شود تا این فناوری پایدار بماند. این کار با استفاده از مفهوم گواه اثبات کار (Proof of Work) انجام می شود.

الگوریتم اجماع گواه اثبات کار چیست

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

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

نانس (Nonce) چیست

نانس (Nonce) مخفف “عدد فقط یکبار مصرف” (number only used once) است. این عدد به بلاک هش شده (یا رمزگذاری شده) در بلاک چین اضافه می‌شود و هنگامی که مجددا هش شود با محدودیت ناشی از سطح سختی مواجه می‌شود. نانس، عددی است که ماینرهای بلاک چین در صدد حل آن هستند. به ماینرهای بلاک چین در ازای یافتن راه‌حل، ارز دیجیتال ارائه می‌شود.

نانس (Nonce) چیست؟ عددی که تمام ماینرها به دنبال یافتن آن هستند!

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

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

به عنوان مثال، اگر ما با رشته “Hello, world” کار کنیم و یک صفر را به آن اضافه کنیم، ما یک هش دریافت می کنیم که با ۱۳۱۲af شروع می شود. اگر ما آن را به a۱ تغییر دهیم، کاملا متفاوت خواهد شد. اگر ما آن را به a۲ تغییر دهیم، دوباره کاملا متفاوت خواهد شد اما هنوز صفری نیست. اگر ما به افزایش دادن ادامه دهیم، تا ۴۲۵۰ هشی که با چهار صفر شروع شود را دریافت نمی کنیم (۰۰۰۰c۳).

اگر به تراکنش خود برگردیم، همان ایده است و از آنجا که ما به هیچ شیوه ای نمی توانیم خروجی هش را پیش بینی کنیم، این تنها یک بازی حدس زدن بزرگ برای کامپیوتر خواهد بود. تنها روش برای پیدا کردن نانس (nonce) درست و حل کردن پازل، آزمون و خطا می باشد و اینکه یکی یکی عدد تست شود.

این تراکنش ماست با نانس صفر و یک هش که با BA۴۹ شروع می شود و هدف هش ما را که چهار صفر در ابتدا می باشد، برآورد نمی کند.

افزایش عدد به ۱ کار نمی کند و افزایش آن به ۲ هم کار نمی کند.

 

در اینجا زمان زیادی طول می کشد تا عدد تصادفی متناسب با هدف هش ما پیدا شود.

این کار از لحاظ محاسباتی خیلی گران است، مخصوصا در سطوح سطحی بالاتر و این کار از کامپیوتر زمان زیادی برای محاسبه می گیرد. کامپیوتر برای محاسبه نیازمند انرژی است و انرژی برای کاربر آن کامپیوتر پول واقعی را هزینه می کند.

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

بلاکچین در کجا و چه وقتی می تواند کمک کند؟

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

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

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

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

آخرین به روز رسانی: ۱۳۹۹/۴/۲۱


54321
امتیاز 4.4 از 5 رای

منبع medium
ممکن است شما دوست داشته باشید

ارسال نظر