بلاکچین چیست؟
اجازه دهید یک تعریف از بلاکچین را به زبان ساده ارائه دهیم و به توضیح سریعی از نحوه عملکرد آن بپردازیم تا درک کنیم که چگونه این فناوری مشکلات ذاتی سیستم های معامله متمرکز را حل می کند. در واقع بلاکچین مجموعه سابقه ای از معامله ها است. بلاکچین یک پایگاه داده غیر قابل تغییر و صرفا افزودنی است. سوابق معامله ها را می توان به این پایگاه اضافه کرد اما توان ویرایش یا حذف آنها نیست. هر داده ای که در بلاکچین ذخیره شود را نمی توان تغییر داد. بلاکچین طوری طراحی شده که مانند یک سیستم متمرکز عمل نمی کند بلکه در عوض یک شبکه غیر متمرکز و توزیع شده از کامپیوتر هاست که همگی توسط اینترنت به هم متصل هستند؛ به این شبکه، شبکه همتا به همتا گفته می شود. همه اعضای شبکه دارای یک کپی مشابه از پایگاه داده هستند و همه آنها مجموعا موافق هستند که از یک سری قوانین برای جمع آوری، تایید و اضافه کردن اطلاعات جدید پیروی کنند.
به این مثال ساده توجه کنید که در آن به پیگیری مالکیت بر روی یک بلاکچین می پردازیم. یک معامله را مانند یک فایل متن با اطلاعات رسید در نظر بگیرید. این فایل، خریدار و فروشنده و مقدار ارسال شده را لیست می کند و وقتی که معامله عملی شد، یک برچسب زمانی ایجاد می شود. برچسب زمانی (timestamp) زمان و نوع اتفاق در بلاک چین را نشان میدهد و بر حسب ساعت UTC است. عملکرد برچسب زمانی تنها مشخص کردن زمان بلاک نیست بلکه تغییرات هش ریت را نشان می دهد و همچنین از بلاکچین در برابر عوامل مخرب و دستکاری توسط آنها محافظت می کند و نقش امنیتی را در شبکه بلاکچین ایفا می کند.
داده های معامله برای معامله های متعدد به صورت یک بلاک بسته بندی می شوند و این بلاک به هر کامپیوتر در شبکه به عنوان پیام فرستاده می شود. هر کامپیوتر یا نود در شبکه، از قوانین تعریف شده ای از پروتکل بلاکچین تبعیت می کند و اعتبار بلاک جدید را تایید می کند.
اگر این بلاک معتبر تلقی شود، به بلاکچین اضافه خواهد شد که این اساسا یک لیست مرتبط دائما در حال رشد از داده های معامله را ایجاد می کند و نشان دهنده کل تاریخ معامله ها برای دارایی خاصی است که مورد پیگیری قرار گرفته است.
از آنجا که هر نود یک کپی از بلاکچین را نگه می دارد، در عمل یک اجماع یا توافق در مورد تاریخچه معامله ها موجود است. هر نود به عنوان یک شاهد مستقل عمل می کند و واقعیت تمام تاریخچه معامله را گواهی می دهد. زمانی که اکثریت نود ها در مورد کپی صحیح بلاکچین توافق داشته باشند، آن را می توان معتبر دانست و به عنوان یک دفتر کل قانونی و قابل اعتماد پذیرفت.
این توضیح خیلی سریع نحوه معماری بلاکچین برای حل مشکلات سیستم های متمرکز را نشان می دهد. از آنجا که بلاکچین با استفاده از یک شبکه همتا به همتا توزیع شده ساخته شده است، هیچ مقام متمرکزی برای مدیریت نگهداری سوابق موجود نیست. همچنین هیچ نقطه تکی شکست در این سیستم وجود ندارد زیرا هر نود یک کپی از بلاکچین را نگه می دارد.
همه آنچه که گفته شد در واقع یک تعریف جهانی از بلاکچین نیست. حتما شنیده اید که از این فناوری به عنوان یک معماری محاسباتی توزیع شده صحبت می شود و همچنین به عنوان یک پایگاه داده از نوع خاص و یا زنجیره ای از بلاک ها هم در مورد آن صحبت می شود. اگر سه جنبه اساسی الگوی طراحی بلاکچین را در نظر داشته باشید، به درک شما در این زمینه کمک شایان توجه ای خواهد شد.
- ۱- شبکه ای از کامپیوتر های متصل به سبک همتا به همتا موجود است. اگر کامپیوتر شما بخشی از یک شبکه بلاکچینی باشد، مستقیما با کامپیوتر های دیگر بر روی شبکه ارتباط برقرار خواهد کرد و این ارتباط از طریق یک سرور مرکزی که در مالکیت یک شخص ثالث متمرکز باشد، صورت نمی گیرد.
- ۲- یک الگوریتم اجماع موجود است. کامپیوتر های مرتبط در شبکه همگی نسخه هایی از همان نرم افزار را اجرا می کنند و قوانینی در آن نرم افزار نوشته شده که نحوه همگام ماندن همه نود ها و موافقت با یکدیگر در داده های معاملهی را که آنها بر روی بلاکچین ذخیره می کنند، تعریف می نماید.
- ۳- همچنین ساختار داده های بلاکچین موجود است. بلاکچین به زنجیره بلاک های مرتبط به هش تجزیه می شود و اساسا لیست مرتبط حیرت انگیز و درازی ایجاد می شود.
آنچه که ما در بالا در موردش صحبت کردیم مدل بلاکچین عمومی می باشد اما آن تنها روش برای ایجاد یک بلاکچین نیست و یک مدل خصوصی هم در این زمینه وجود دارد. در مدل عمومی همه می توانند داده ها را بر روی بلاکچین بخوانند و بنویسند. در مدل خصوصی تنها افراد مجاز می توانند به شبکه دسترسی داشته باشند، بنابراین یک لایه کنترل دسترسی ساخته شده در داخل پروتکل موجود است.
ایده اجازه دادن را اضافه نمایید، این کار چهار نسخه از بلاکچین را برای انتخاب به ما می دهد. این چهار نسخه عبارتند از عمومی و بدون جواز، خصوصی و بدون جواز، عمومی و جوازدار و خصوصی و جوازدار. بلاکچین عمومی و بدون جواز جاه طلبانه ترین نوع بلاکچین می باشد و یک مدل کاملا غیر متمرکز است. در عمل وقتی که از بلاکچین به منظوری غیر از ارز دیجیتل استفاده می شود، از سه نوع بلاکچین دیگر استفاده می شود.
بلاکچین چگونه کار می کند؟
بلاک چین یک دیتابیس توزیع شده، عمومی، دارای برچسب زمانی و به صورت رمزنگاری ایمن شده از تمام معاملههای بیت کاین است. توزیع شده در اینجا بدان معنا است که اطلاعات در بلاک چین به تمام نودهای حاضر در شبکه ارسال و توسط آنها ثبت میشود. هیچ دیتابیس مرکزی وجود ندارد. تمام کاربران میتوانند با این فهرست معاملهها رجوع کنند و دقیقا بررسی کنند که در تاریخ مورد نظر چه مقدار بیت کاین متعلق به کدام آدرس بوده است. بدین شکل سیستم کاملا شفاف است، از حمله دوبار خرج کردن جلوگیری میشود و نیازی به نهاد مرکزی مورد اعتماد نیست. در این مرحله ممکن است شما به تحسین این تئوری بپردازید. اما به نظر می رسد که هنوز سوالاتی برای جواب دادن موجود باشد:
- چگونه می دانیم که سوابق معامله بر روی بلاکچین هرگز تغییر نخواهد کرد؟
- چگونه می دانیم که طرفین یک معامله آنهایی هستند که ادعا می شود و اینکه آیا این طرفین با معامله موافقت کرده اند؟
- در یک سیستم توزیع شده با نود های زیاد که کامپیوتر ها و کاربران هستند، چگونه ما می توانیم همدیگر را تایید کنیم؟
برای درک این قضایا، اجازه دهید کمی وارد جزئیات شویم، در مورد تعدادی از امور فنی و اجزا بلاکچین صحبت کنیم و شروع به ساختن تعدادی مدل ذهنی کنیم.
هشینگ رمزنگاری و درخت مرکل چیست؟
به عبارت ساده، هشینگ به معنای دریافت رشته ورودی با هر طول و اندازه و ارائه خروجی با طول و اندازه مشخص و ثابت است. در بافت رمز ارزها نظیر بیت کاین، معامله ها به عنوان ورودی دریافت میشوند و از میان الگوریتم هشینگ میگذرند که خروجی با طول ثابت ارائه میدهد. در مثال ملموس تر، میتوان از توالی حروف با طول دلخواه به عنوان ورودی (که به آن رشته میگوییم) استفاده کرد و توالی حروفی با طول ثابت و مشخص برگرداند. فرقی ندارد که رشته ورودی شامل یک حرف، یک کلمه، یک جمله یا حتی یک رمان کامل باشد، به هرحال خروجی (که به آن دایجست میگوییم) همواره طول یکسانی خواهد داشت.
رمزنگاری یک فناوری اساسی است که بلاکچین بسیار از آن استفاده می کند. شما با عملکرد های هش رمزنگاری آشنا هستید اگر حتی از Git برای مدیریت کنترل نسخه برای فایل های دیجیتل استفاده کرده باشید. هر مقدار از داده ها از یک حرف خاص گرفته تا یک دایرکتوری از فایل ها را می توان به عنوان یک ورودی عملکرد هش مورد استفاده قرار داد و خروجی هم یک هش خواهد بود که می توان از آن به عنوان یک اثر انگشت دیجیتل مورد استفاده قرار داد که به طور خاصی آن مجموعه داده را نمایش می دهد. خروجی همیشه برای هر مجموعه مشابه از داده یکسان است اما حتی یک تغییر مانند یک حرف یا عدد متفاوت، علامت گذاری یا یک فضای اضافی منجر به هش کاملا متفاوتی خواهد شد و به ما یک اثر انگشت دیجیتل منحصر به فرد و متفاوت می دهد.
و بخش خیلی مهمی از نحوه عملکرد الگوریتم این است که اساسا پیش بینی این که چگونه یک تغییر در ورودی، خروجی را تحت تاثیر قرار خواهد داد، غیر ممکن است. بنابراین هر معاملهی که بر روی بلاکچین ثبت شده است از طریق یک عملکرد هش اجرا می شود و سپس می تواند توسط آن هش معرفی و شناسایی شود.
اجازه دهید چنین در نظر بگیریم که دارایی مورد پیگیری ما به تعداد زیاد در روز معامله می شود، بنابراین ما می خواهیم معامله های متعددی را در داخل یک بلاک خاص بسته بندی کنیم تا کارآمد باشد. از آنجا که شما می توانید هش هر مجموعه داده را داشته باشید، فرضا دو رشته هش، استفاده از مجموعه ای از هش ها که ارائه دهنده معامله های مختلف هستند و اجرای آنها از طریق الگوریتم هش امکان پذیر است. پس ما هش هر معامله فردی را داریم، از آنها استفاده می کنیم و گروه هایی را تشکیل می دهیم.
آنچه که ما در حال ایجاد کردنش هستیم یک ساختار داده است که به عنوان درخت مرکل (Merkle) به آن اشاره می شود. درخت مرکل یک نوع درخت باینری است که با اشاره گر های هش ساخته شده است و ساختار خیلی مفیدی برای گروه بندی قطعاتی مجزا از داده و در دسترس کردن آنها از طریق یک ارجاع هش خاص می باشد. آن هش نهایی که ارائه دهنده همه معامله هاست، هش ریشه ما می باشد (ریشه Merkle درخت merkle ما). و هش ریشه ارائه دهنده همه معامله هایی است که به طرف آن جذب می شود.
ریشه مرکل، هش تمام هش های معاملههایی است که بخشی از بلاک در شبکه بلاک چین هستند. هر معاملهی که در شبکه بلاک چین انجام میگیرد دارای یک هش مرتبط است. هرچند، این هشها به ترتیب در بلاک ذخیره نمیشوند و بیشتر به شکل ساختار درخت هستند که در آن، هر هش به والدین خود متصل است و رابطه درخت شکل فرزند-والدینی تشکیل میدهند. از آنجایی که معاملههای پرشماری در بلاک مشخص ذخیره میشوند، تمام هش معاملهها در بلاک نیز هش میشوند، که این موضوع منجر به ایجاد ریشه مرکل میشود.
هر بلاک در بلاکچین ما یک مجموعه از معامله ها را خواهد داشت که با یک هش ریشه ارائه داده خواهد شد. هدر بلاک جایی است که متاداده ها برای بلاک ما جای دارند، بنابراین ما هش ریشه را در هدر بلاک خود همراه با یک برچسب زمانی که نشان دهنده زمان ایجاد بلاک است، می گذاریم. و ما چیزی بنام nonce را هم داخل خواهیم کرد که یک ارزش عددی است و بعدا کمی در مورد آن صحبت خواهیم کرد.
بلاک و هدر بلاک چیست
هدر بلاک برای تعیین یک بلاک خاص در کل بلاک چین استفاده میشود و به منظور ایجاد گواه اثبات کار برای پاداش های ماینینگ، مرتبا هش میشود. بلاک چین شامل مجموعه ای از بلاکهایی است که برای ذخیره اطلاعات مرتبط با معاملهها انجام شده در شبکه بلاک چین مورد استفاده قرار میگیرند. هر بلاک شامل یک هدر منحصربهفرد است و هر بلاک توسط هش هدر بلاک خود شناسایی میشود.
تا به حال گفتیم که بلاکچین یک زنجیره مرتبط هش از بلاک هاست. نحوه مرتبط شدن بلاک ها با همدیگر از طریق داخل کردن مرجع هش بلاک قبلی در زنجیره در هر بلاک جدید صورت می گیرد. از آنجا که هر بلاک در نهایت مقداری داده خواهد بود، می توانیم آن را از طریق الگوریتم هش اجرا کنیم و به هشی دست یابیم که ارائه دهنده کل بلاک می باشد. برای مرتبط کردن بلاک خود به زنجیره، ما مرجع هش بلاک قبلی را به عنوان اشاره کننده به آن داخل خواهیم کرد. بلاک بعدی که بعد از بلاک ما ایجاد می شود یک اشاره گر مرجع را به بلاک ما اضافه می کند. و به این ترتیب در نهایت یک زنجیره مرتبط هش از بلاک ها ایجاد می شود.
اما من هنوز به سوال ما را پاسخ نداده ام. چگونه ما می توانیم تایید کنیم که هر یک از این سوابق معامله هرگز تغییر نکرده اند؟ جواب این سوال اگر برای مدتی به مطالب گفته شده برگردیم خیلی آسان خواهد بود. از آنجا که ما می دانیم حتی تغییر یک کارکتر خاص در مجموعه داده ها کاملا اثر انگشت دیجیتل را تغییر می دهد، می توانیم مطمئن باشیم که اگر یک عدد یا نام در سابقه معامله تغییر کند، هش آن معامله کاملا تغییر می کند.
و اگر به آنچه که این امر در درخت مرکل معامله های ما انجام می دهد، فکر کنیم، می دانیم که هش ها را در همه مسیر تا ریشه تغییر می دهد. اگر هش ریشه ما متفاوت باشد، هش بلاک ما تغییر می کند که این کل بلاک را بی اعتبار خواهد ساخت. اگر هش بلاک ما تغییر کند، اشاره گر مرجع از بلاک بعدی در زنجیره می شکند و این مرجع ها را در همه مسیر تا به زنجیره می شکند.
این معاملهی که فردی قصد تغییر آن را دارد بسته به آنکه تاریخ آن چقدر دور باشد، می تواند تمامی زنجیره را در حد قابل توجهی متلاشی کند.
حال حتی اگر این فرد با قصد بدخواهانه برای تغییر همه هش های شکسته شده و اشاره گران مرجع در درخت مرکل و هدر بلاک ها کار کند و موفق شود، به یاد داشته باشید که ما در مورد شبکه ای از کامپیوتر ها صحبت می کنیم که همگی یک کپی از زنجیره را دارند. این عامل بد تنها قادر به تغییر کپی بلاکچین خود بر روی کامپیوترش می باشد و این منجر به یک تاریخچه بلاکچین می شود که با نسخه ای که دیگر نود ها دارند و همگی تایید کرده و بر آن اجماع دارند، متفاوت خواهد بود.
این روشی خیلی ساده ولی با این وجود ماهرانه برای تضمین این می باشد که تاریخچه معامله بلاکچین را هرگز نمی توان تغییر داد و کوچکترین تغییری در آن کاملا واضح خواهد بود. تضمین اینکه یک نسخه مستقل بلاکچین با تاریخچه درست بلاچین مطابقت داشته باشد، به سادگی مقایسه دو هش یا دو رشته داده برای تساوی می باشد.
امضاهای دیجیتل چیست
امضای دیجیتل یکی از جوانب اصلی اطمینان از امنیت و یکپارچگی اطلاعاتی است که در بلاک چین ثبت شدهاند. امضای دیجیتل بخش استاندارد پروتکلهای بلاک چین است و عمدتا برای ایمنسازی معاملهها و بلاکهای معاملهها، انتقال اطلاعات، مدیریت قرارداد و سایر کاربردهایی استفاده میشود که در آن، شناسایی و جلوگیری از دستکاریهای خارجی مهم است. امضاهای دیجیتل از رمزنگاری نامتقارن بهره میبرد، یعنی اطلاعات را میتوان از طریق استفاده از کلید عمومی با هرکسی به اشتراک گذاشت. امضای دیجیتل، جزییات سند الکترونیکی است که برای شناسایی فرد انتقال دهنده اطلاعات مورد استفاده قرار میگیرد. امضای دیجیتل، اطمینان از عدم تغییر وضعیت اطلاعات در سند و پس از امضا را امکان پذیر میسازد. ارزش این جزییات حاصل انتقال رمزنگاری اطلاعات از طریق استفاده از کلیدهای عمومی و خصوصی است.
حال به بررسی سوال دوم می پردازیم: چگونه می توانیم تایید کنیم که طرفین یک معامله آنهایی هستند که ادعا می کنند و با معامله توافق کرده اند؟ رمزنگاری کلید عمومی یک فناوری بلاکچینی اساسی دیگر است که برای تضمین این امر به کار می رود که هر طرف در معامله همان کسی است که ادعا می کند و اینکه فقط آنها مالک قانونی هستند و به دارایی ها برای خرج کردن و فروش دسترسی دارند.
رمزنگاری کلید عمومی از کلید های دیجیتل برای محافظت از داده ها استفاده می کند. در واقع باید گفت که هر شخص دو کلید صادر می کند. یکی از این کلید ها به کلید عمومی شناخته می شود و دیگری نیز کلید خصوصی نام دارد. کلید عمومی را می توان با هر کسی به اشتراک گذاشت و نیازی به ایمن نگه داشتن آن نیست اما کلید خصوصی را باید خیلی ایمن نگه داشت و باید تنها در مالکیت خودتان باشد.
کلید خصوصی را می توان به عنوان ورودی برای عملکردی که داده ها را رمزگذاری می کند به عنوان مثال داده های معامله ما، مورد استفاده قرار داد. خروجی که به آن به عنوان متن رمز اشاره می شود توسط انسان و کامپیوتر غیر قابل خواندن است. تنها کلید عمومی دوقلو می تواند متن رمز را رمزگشایی کند و آن را به داده های قابل خواندن تبدیل کند. ایده این است که فروشنده در یک معامله از کلید خصوصی برای رمزگشایی داده های معامله استفاده می کند و آنها متن رمز نتیجه را به معامله به عنوان نوعی از امضای دیجیتل اضافه می کنند.
کلید عمومی فروشنده سپس در معامله داخل می شود و خریدار از آن کلید برای رمزگشایی معامله امضا شده استفاده می کند. اگر رمزگشایی موفقیت آمیز باشد، طرفین می توانند مطمئن شوند که این واقعا فروشنده بوده که معامله را آغاز و مجاز کرده است.
هر معاملهی که منتشر می شود، به طور دیجیتل امضا شده است. و این تنها کلید عمومی است که می تواند به طور موفقیت آمیز امضای متن رمز داخل شده را رمزگشایی کند که این متن رمز بخشی از داده های معامله است. تا زمانی که کلید های خصوصی دزدیده نشده باشند یا به خطر نیافتاده باشند، روش مذکور شیوه ای قابل اعتماد برای تضمین این است که فروشندگان در معامله ها همان افرادی هستند که ادعا می کنند.
نود یا گره چیست
سرانجام بزرگترین سوال در مورد اعتماد، در یک سیستم توزیع شده که متشکل از نود یا گره های زیادی است، چگونه می توان تایید کرد که هر فرد نظیر امین و قابل اعتماد است؟ جواب این سوال معما های هش می باشد. اما ابتدا به این موضوع می پردازیم که نود چیست.
وجود بلاک چین ناشی از بلاکهای حاوی اطلاعات است. این بلاکهای اطلاعات در نودها ذخیره میشوند. نودها میتوانند هر نوع دستگاهی نظیر رایانهها، لپتاپها یا حتی سرورهای بزرگ باشند. نودها، زیرساخت بلاک چین را تشکیل میدهند. تمام نودها در بلاک چین به یکدیگر متصل هستند و دائما آخرین اطلاعات بلاک چین را با یکدیگر مبادله میکنند تا تمام نودها بهروز باشند. نودها اطلاعات بلاک چین را ذخیره، منتشر و محافظت میکنند، بنابراین از نظر تئوری حیات یک بلاک چین وابسته به نودها است. یک نود کامل اساسا یک دستگاهی است که شامل نسخه کاملی از سابقه معاملههای بلاک چین است.
یکی از مزایای یک سیستم نرم افزاری متمرکز این است که به طور عمومی تعداد قابل مدیریتی از نود ها که لازم است ایمن باشند و تعداد قابل مدیریتی از اعضای مورد اعتماد شبکه موجود هستند. ماینرها یکی دیگر از اعضای جامعه هستند که به عنوان گره یا نود در نظر گرفته می شوند و شبکه بلاکچین را امن تر می کنند.
ماینر و ماینینگ (استخراج رمز ارز) چیست
ماینرها همانند سایر نودها با انتقال اطلاعات و نگهداری نسخهای از بلاک چین، از شبکه پشتیبانی میکنند. به علاوه، ماینرها مسئول ایجاد بلاکهای جدید هستند. هدف ماینرها به شرح زیر است: هر بلاک جدید را میتوان به عنوان تصمیم جمعی در خصوص سابقه چند دقیقه اخیر در نظر گرفت. شبکه در خصوص معاملههای مقطع زمانی مورد نظر به اجماع میرسد. این مقطع زمانی به طور میانگین ۲.۵ دقیقه و برای بیت کاین ۱۰ دقیقه است.
ماینرها باید معادله رمزنگاری شده را حل کنند تا بلاک معتبر ایجاد کنند. ماینرها بلافاصله پس از اضافه شدن بلاک قبلی به زنجیره، کار خود را بر روی بلاک جدید و در نتیجه معادله جدید شروع میکنند. ماینرها تمام معاملههای شبکه که هنوز وارد بلاک نشدهاند را جمعآوری میکنند و آنها را در نسخه مختص به خود از بلاک بعدی قرار میدهند. ماینری که اول از همه معادله را حل کند، بلاک بعدی را اضافه میکند و سابقه چند دقیقه اخیر را مینویسد. ماینرها بلاک خود را همراه با راهحلی که برای معادله پیدا کردهاند در شبکه منتشر میکنند. تمام نودها فارغ از آنکه به ماینینگ میپردازند یا خیر، بررسی میکنند که این راهحل صحیح باشد. در صورت صحیح بودن راهحل، بلاک جدید را به نسخه بلاک چین خود اضافه میکنند. سپس این چرخه مجددا از ابتدا شروع میشود. فرایند مذکور، نحوه به توافق یا اجماع رسیدن شبکه در خصوص اتفاقات و موارد انجام شده است.
ماینینگ یا استخراج رمز ارز فرایندی است که در آن معامله ارز دیجیتل تایید میشود و به بلاک چین افزوده میشود. با انجام ماینینگ کاینهای جدید تولید میشوند و به موجودی در گردش آن ارز دیجیتل خاص اضافه میشود. از آنجا که مزایای یک سیستم غیر متمرکز بلاکچین را در همان وهله اول یک ایده پایدار می کند، مشکل نحوه رسیدن به اعتماد و حفظ آن در یک سیستم غیر متمرکز یکی از بزرگترین مشکلاتی است که لازم است حل شود تا این فناوری پایدار بماند. این کار با استفاده از مفهوم گواه اثبات کار (Proof of Work) انجام می شود.
الگوریتم اجماع گواه اثبات کار چیست
گواه اثبات کار یک الگوریتم اجماع رایج است که توسط اکثر شبکههای ارز دیجیتل محبوب نظیر بیت کاین و لایت کاین مورد استفاده قرار گرفته است. این الگوریتم از نودهای شرکتکننده درخواست میکند تا اثبات کنند که کار انجام شده و ثبت شده توسط آنها واجد شرایط کسب حق و اجازه افزودن معاملههای جدید به بلاک چین است. هرچند، کل مکانیزم ماینینگ بیت کاین به مصرف انرژی زیاد و زمان پردازش طولانی نیاز دارد.
گواه اثبات کار اصطلاحی است که به مجموعه ای داده اشاره می کند که تولید آنها خیلی مشکل است (یعنی از لحاظ محاسباتی گران و وقت گیر هستند و وظیفه ای بسیار سنگین می باشد)، اما برای دیگران تایید آن خیلی آسان است. این ایده به این صورت است که به منظور اینکه یک نود در شبکه قادر باشد که به طور موفقیت آمیز یک بلاک معتبر از داده های معامله ایجاد کند، آنها باید قبل از اینکه بلاک بتواند پذیرفته شود و به تاریخچه بلاکچین اضافه گردد، نیازمندی های گواه اثبات کار را برآورد کنند. و در عمل، گواه اثبات کار به صورت یک پازل هش پیاده سازی و اعمال می شود.
نانس (Nonce) چیست
نانس (Nonce) مخفف “عدد فقط یکبار مصرف” (number only used once) است. این عدد به بلاک هش شده (یا رمزگذاری شده) در بلاک چین اضافه میشود و هنگامی که مجددا هش شود با محدودیت ناشی از سطح سختی مواجه میشود. نانس، عددی است که ماینرهای بلاک چین در صدد حل آن هستند. به ماینرهای بلاک چین در ازای یافتن راهحل، ارز دیجیتل ارائه میشود.
حال به معاملهمان برگردیم، پروتکل بلاکچین اظهار می دارد که هر بلاک جدید برای رسیدن به یک سطح سختی خاص، نیازمندی هایی را ایجاد کرده که باید محقق شوند. این سطح سختی به این معنی است که هش ارائه دهنده بلاک نیازمند رسیدن به یک هدف هش می باشد و آن باید شکل خاصی داشته باشد. به عنوان مثال، ممکن است لازم باشد که این هش با یک رشته از چهار صفر شروع شود.
از آنجا که ما می دانیم که پیش بینی یک رشته هش خروجی غیر ممکن است، پازل شامل اضافه کردن یک رقم به داده های بلاک، هشینگ بلاک و بررسی رسیدن به هدف هش نتیجه با داشتن رشته ای از چهار صفر در ابتدای آن می باشد. اگر این امر انجام نشود، عدد افزایش یافته و دوباره درهم سازی می شود. این فرآیند آنقدر ادامه می یابد تا عددی که ما در حال اضافه کردن آن هستیم یعنی نانس، به ما هشی بدهد که به هدف هش برسد.
به عنوان مثال، اگر ما با رشته “Hello, world” کار کنیم و یک صفر را به آن اضافه کنیم، ما یک هش دریافت می کنیم که با ۱۳۱۲af شروع می شود. اگر ما آن را به a۱ تغییر دهیم، کاملا متفاوت خواهد شد. اگر ما آن را به a۲ تغییر دهیم، دوباره کاملا متفاوت خواهد شد اما هنوز صفری نیست. اگر ما به افزایش دادن ادامه دهیم، تا ۴۲۵۰ هشی که با چهار صفر شروع شود را دریافت نمی کنیم (۰۰۰۰c۳).
اگر به معامله خود برگردیم، همان ایده است و از آنجا که ما به هیچ شیوه ای نمی توانیم خروجی هش را پیش بینی کنیم، این تنها یک بازی حدس زدن بزرگ برای کامپیوتر خواهد بود. تنها روش برای پیدا کردن نانس (nonce) درست و حل کردن پازل، آزمون و خطا می باشد و اینکه یکی یکی عدد تست شود.
این معامله ماست با نانس صفر و یک هش که با BA۴۹ شروع می شود و هدف هش ما را که چهار صفر در ابتدا می باشد، برآورد نمی کند.
این کار از لحاظ محاسباتی خیلی گران است، مخصوصا در سطوح سطحی بالاتر و این کار از کامپیوتر زمان زیادی برای محاسبه می گیرد. کامپیوتر برای محاسبه نیازمند انرژی است و انرژی برای کاربر آن کامپیوتر پول واقعی را هزینه می کند.
بنابراین مفهوم گواه اثبات کار نقش خیلی مهمی در پیاده سازی بلاکچین بازی می کند زیرا آن به معنی تایید معامله ها و اضافه کردن بلاک جدید به زنجیره است که این اقدام از لحاظ محاسباتی گران است. این محاسبات مقداری ریسک را به کاربر تحمیل می کند و انرژی واقعی و پول را باید هزینه کنند. و اگر ما به نودی که معما را اول حل می کند با انگیزه اقتصادی پاداش دهیم، این یک اقدام بازدارنده قوی می باشد و نود را از سعی برای تغییر یک معامله یا یک بلاک باز می دارد. پس در اینجا بازی بر طبق قوانین اجرا می شود و یک عضو قابل اعتماد در سیستم باقی می ماند که این امر به اجرای درست شبکه همتا به همتا توزیع شده کمک می کند.
بلاکچین در کجا و چه وقتی می تواند کمک کند؟
حال به این سوال می رسیم که در کجا و چه وقتی استفاده از بلاکچین منطقی است؟ به این نکته خیلی دقت کنید اگر نیازمندی های شما با یک پایگاه داده رابطه ای حل شود، احتیاج به بلاکچین ندارید. بلاکچین ها یک فناوری برای سناریو های پایگاه داده اشتراکی هستند که در آنجا ضرورتا نمی توانید به همه موجودیت هایی که به آن دسترسی خواهند داشت، اعتماد کنید.
اگر شما ایده ای دارید که در آن بلاکچین می تواند راه حل جالبی باشد اما لازم است خصوصی و احتمالا جواز دار باشد، به طور جدی در مورد قضیه و اینکه آیا بلاکچین می تواند راه حل مناسبی باشد، فکر کنید.
یقینا در جاهایی بلاکچین می تواند کمک کند و یا حتی شاید وضعیت موجود را متحول کند. کاربرد های جالبی برای بلاکچین در معامله ها و دارایی های دیجیتل، سوابق سلامتی، سند سازی هویتی، زنجیره تامین و طول عمر محصول، سرویس های شهری، اینترنت اشیا، ارز های دیجیتل و بازی های دیجیتل مانند کریپتوکیتیز (CryptoKitties) قابل تصور است.
حتما مشتاقید بدانید که در آینده چه چیزی برای این فناوری روی می دهد؟ برای این کار بیشتر و بیشتر در مورد بلاکچین بخوانید. شما همه نوع نظری در مورد این فناوری خواهید دید. بعضی آن را اینترنت دوم می نامند و بعضی نیز آن را یک فناوری بدساخت می نامند که منجر به ایجاد یک جهان بی قانون و غیر قابل اعتماد می شود. بسیار در این زمینه مطالعه کنید و تصمیم بگیرید که در چه مواردی از این فناوری استفاده خواهید کرد. بلاکچین موضوع خیلی عمیقی است و از لحاظ فنی نیز بسیار عمیق تر از آنچه است که بسیاری فکر می کنند.