دسته: بلاکچین

سختی شبکه (دیفیکالتی)

برگردانده رضا تجری

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

سختی شبکه مقدار زمانی هست که یک ماینر بتونه یک بلاک رو استخراج کنه و بعد بلاک بعدی رو استارت بزنه برای فرآند استخراج کردن!

برای این کار یک سختی در نظر گرفته شده که ساخت این بلاک از یک زمانی بیشتر یا کمتر نشه، این سختی برای اینکه در همون بازه زمانی تعریف شده همیشه ثابت بمونه هر 2 هفته یک بار تنظیم میشه بطوری که ساخت یک بلاک رو در بازه ثابت 10 دقیقه سعی می کنه تنظیم کنه. بنابراین تا الان متوجه شدیم که یک زمانی بین ساخت 2 بلاک داریم و اون مدت زمان 10 دقیقه می باشد (در بیتکوین) که با سختی شبکه تنظیم می شود.

چرا سختی شبکه مهم است ؟

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

چه زمانی سختی شبکه تغییر می کند؟

سختی شبکه هر 2016 بلاک تغییر می کنه، که میشه همون 2 هفته یکبار، در واقع 2016 تا بلاک که میشه 2016 تا 10 دقیقه زمان باید صرف بشه که بعد زمان تغییر سختی شبکه انجام بگیره، اما یک نکته هست ما اینجا 10 دقیقه ثابت نیست، یعنی به طور میانگین 10 دقیقه می باشد، به هر حال برای محاسبه نیازه که 2016 رو ضربدر 10 (دقیقه) کنیم که به دقیقه بدست میاد، حالا اگه ماینرهای جوری استخراج کنند که میانگین 9 دقیقه بشه این زمان تغییر سختی تغییر میکنه و می شه 2016 ضربدر 9 (دقیقه).

وقتی سختی شبکه کمتر از 10 دقیقه باشه زمان ماین هر بلاک در 10 دقیقه و در وسعت 2016 بلاک، بیشتر از 1 میشه، بدین معنی که در هر 10 دقیقه یک رابطه 1.1 بوجود میاد که داره میگه در هر 10 دقیقه ما 1 بلاک و 1 دهم بلاک داریم، که از این طریق بدست میاد:

20160 برابر بوده از ضرب 10 دقیقه در 2016 بلاک که در حالت ایده آل نیاز می باشد.

18144 هم برابر هست از ضرب 9 در 2016، و نسبت دوم هم که نسبت حالت 10 دقیقه به حالت 9 دقیقه هست.

بعد از روی این نسبت میان سختی جدید رو برای شبکه تعبیین می کنند که می شه رابطه زیر:

حالا 2 تا شرط داریم اینجا:

  • اگه عدد نسبت بزرگتر از 1 باشه (به این معنی که بلاک ها سریعتر از حالت ایده آل (10 دقیقه) استخراج شده اند)، خب پس بنابراین باید سختی شبکه زیاد بشه که بتونیم شبکه رو به سمت 10 دقیقه برسونیم.
  • اگه عدد نسبت کمتر از 1 باشه (به این معنی که بلاک ها کمتر از حالت ایده آل (10 دقیقه) استخراج شده اند)، بنابراین باید سختی شبکه کمتر بشه که بتونیم شبکه رو به سمت 10 دقیقه برسونیم.

و به این صورت سختی تنظیم می شه برای 2016 بلاک آینده که دوباره تا آن زمان با تعداد ماینرهای آن سنجیده خواهد شد.

نکته: در نظر باید داشت سختی زمانی که تنظیم میشه به گونه ای هست که از یک محدوده ای بیشتر یا کمتر نمی تواند برود، به این منظور حداقل یک چهارم برابر و حداکثر 4 برابر بشه، و بیشتر از حداکثر و کمتر از حداقل ممکن نیست.

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

با یک مثال این قسمت رو می خوایم جلو ببریم و در ادامه اونو تو شبکه بیتکوین نشون میدیم. فرض کنیم من به شما تعدادی از اعداد بین 1 تا 100 می دم.

خب شما می تونید در هر دقیقه یک عدد بین 1 تا 100 بصورت تصادفی انتخاب کنید، اینقدر این انتخاب رو می تونید انجام بدید تا به عددی که من مدنظرم هست برسید.

فرض می کنیم من عدد 50 رو در نظر گرفتم.

براساس اینکه شما در هر دقیقه 1 تنها قادر به یک شماره بین 1 تا 100 هستید بنابراین این مورد 2 دقیقه زمان می برد. اما این خیلی آسونه، بنابراین هدف رو به 20 تغییر می دم، حالا شما می توانید هر 5/1 امتحان کنید، یا به معنی اینکه هر 5 دقیقه یک بار بدست بیاورید.

یک نکته ای که هست شاید شما بار اول که عدد رو انتخاب می کنید خوش شانس باشید و مستقیما 20 رو انتخاب کنید، ولی در بلند مدت به همان 5 دقیقه خواهید رسید و ینی به صورت هر 5 دقیقه به این شرایط می انجامد.

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

معرفی سختی شبکه

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


این شماره جدید همان سختی شبکه می باشد، که درواقع خیلی ساده می شه از اون استفاده کرد برای تغییر مقدار عدد مورد نظر و بتناسب اون طول زمان مورد نظر، تمام این فرآیند در یک رابطه زیر نشان داده شده است:

نمونه های مختلفی رو برای مثال در زیر میبینیم که با تغییر سختی شبکه چطور طول پیدا کردن هدف رو سخت تر می شه کرد:

شبکه بیتکوین

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

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

معرفی اعداد هگزادسیمال

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

به اینصورت می شه که بعد میبینیم ارزش هش هر بلاک یک چیزی شبیه این میشه:

000000000003ba27aa200b1cecaad478d2b00432346c3f1f3986da1afd33e506

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

به همین دلیل معمولا دیده می شه که عدد مورد نظر برای بدست آوردن دارای دسته ای از اعداد و حروف می باشند.

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

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

کجا می توان سختی شبکه فعلی را پیدا کرد؟

می توان با وارد کردن دستور getdifficulty در کنسول رفرنس کلاینت بیتکوین (فول‌نود) خود به این موضوع رسید. همینطور می توان سختی شبکه را توسط فرمان getmininginfo مشاهده کرد.

با اینحال اگه شما یک کلاینت از بیتکوین را ندارید، می توانید سختی شبکه را همیشه از آدرس زیر پیدا کنید:

http://chainquery.com/bitcoin-api/getdifficulty

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

https://bitcoinwisdom.com/bitcoin/difficulty

Source: http://learnmeabitcoin.com/guide/difficulty

ممکن است کسی بتواند شبکه بیت‌کوین را با استفاده از یک اَبَر کامپیوتر یا یک کامپیوتر کوانتومی هَک کند؟

ممکن است کسی بتواند شبکه بیت‌کوین را با استفاده از یک اَبَر کامپیوتر یا یک کامپیوتر کوانتومی هَک کند؟

روی کاغذ بله، یک نفر با توان پردازشی کافی می‌تواند به شبکه بیت‌کوین حمله کند ولی در عمل این کار بسیار دشوار است.

این فرد با احتساب توان پردازشیِ سخت‌افزارهای امروزی باید بیشتر از ۱ میلیارد دلار برای تهیه ادوات استخراج هزینه کند که برای کار کردن به انرژی تولیدی ۸ نیروگاه برق-آبی نیاز دارند. در حالی که اگر او این تشکیلات را صرفاً برای استخراج بیت‌کوین و نه حمله به شبکه به‌کار گیرد، سود خوبی نصیبش خواهد شد. پس چنین کاری از نظر اقتصادی غیرمنطقی است.

در زمان نوشته شدن این کتاب:

۱- کامپیوترهای کوانتومی نسبت به کامپیوترهای مرسوم، چندین برابر کُندترند.

۲- ساختن کامپیوترهای کوانتومی به شدت گران است و بخاطر همین مساله تا مدت‌ها ساخت آن‌ها صرفه اقتصادی نخواهد داشت.

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

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

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

پیامی به علاقه‌مندان به بازنشر ترجمه کتاب کوچک بیت‌کوین

کتاب ”The little Bitcoin book” نوشته الکس گلداشتاین و گروه نویسندگان در تابستان و پاییز سال ۱۳۹۹ به فارسی ترجمه شده و روی وب‌سایت منابع فارسی بیت‌کوین به آدرس bitcoind.me برای مقاصد آموزشی و غیرتجاری قرار گرفته است.

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

الف.‌آزاد

فناوری بلاک‌چین: همچنان منتظریم!

افراد زیادی تلاش کرده‌اند تا موفقیت نوآوری ساتوشی را تکرار کنند. یک روش متداول، به کار بردن بلاک‌چینِ بیت‌کوین برای استفاده‌های دیگر است. از سال ۲۰۱۴ شرکت‌های معروفی تلاش کرده‌اند مدل بلاک‌چین را در صنایع مختلف بکار گیرند و تاکنون میلیون‌ها دلار برای آن هزینه کرده‌اند. این موضوع توجه رسانه‌ها و مردم را بیش از حد به «تکنولوژی بلاک‌چین» جلب کرده است.

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

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

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

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

بقیه ارزهای دیجیتال چطور؟

مردم فقط به کپی کردن بلاک‌چین بیت‌کوین اکتفا نکردند، بلکه تلاش کردند رمزارزهای دیگری هم بسازند. کلمه «رمز» در اسم آن‌ها قرار دارد چون برای ارسال آن‌ها، فرستنده باید مثل بیت‌کوین از امضای دیجیتال استفاده کند. (در واقع Crypto در کلمه Crypto currency اشاره به علم رمزنگاری دارد. – م). این پروژه‌ها که اغلب به آن‌ها آلت‌کوین یا توکِن می‌گویند، متمرکزند و بیشتر آن‌ها علناً کلاهبرداری هستند. بیت‌کانکت یکی از معروف‌ترین کلاهبرداری‌های حوزه ارزدیجیتال است.

شاید تعداد کمی از این رمزارزها بتوانند کاربرد معقولی داشته باشند. مثل مونرو (XMR) و زی‌کش (ZEC)، که تلاش می‌کنند تراکنش‌های کاربران‌شان نسبت به بیت‌کوین محرمانه‌تر باشد، یا اتریوم (ETH) که تلاش می‌کند به‌عنوان یک پلتفرم برای ساختن اپلیکیشن‌های بلاک‌چین مورد استفاده قرار گیرد. شرکت‌های بزرگ هم ارزهای دیجیتالی را امتحان می‌کنند. فیس‌بوک ارز دیجیتالی به نام «لیبرا» معرفی کرده که ممکن است به‌خاطر میلیاردها نفر کاربری که هر روز از خدمات فیس‌بوک استفاده می‌کنند، متداول شود. هرچند لیبرا ذاتا متمرکز است و مثل بیت‌کوین غیرقابل سانسور و کمیاب نیست. (اوایل سال ۲۰۲۰ سازمان‌های تنظیم مقررات آمریکا و اروپا انتقادات زیادی بر این پروژه داشتند و این پروژه را تحت فشار قرار دادند و آینده آن همچنان در هاله‌ای از ابهام است. – م)

گروه‌های دیگری هم بودند که تلاش کردند موفقیت ساتوشی را به روشی بی‌شرمانه کپی کنند و ارزهای دیجیتالی ساختند که نام بیت‌کوین در آن‌ها وجود دارد. این موضوع باعث سردرگمی افراد، مخصوصاً تازه‌واردها می‌شود. چون معلوم نیست کدام یکی از آن‌ها واقعی است. بیت‌کوین در صرافی‌ها و کیف‌پول‌ها با نماد BTC مشخص می‌شود. بقیه آن‌ها شبیه به طلای بدلی هستند. ممکن است شبیه به بیت‌کوین باشند ولی متمرکزند و قیمت آن‌ها در بازار خیلی پایین‌تر است. ارز دیجیتال بیت‌کوین کَش (BCH)، بیت‌کوین گُلد (BTG)، و بیت‌کوین اس‌وی (BSV) جزو همین گروه طلای بدلی هستند.

پیامی به علاقه‌مندان به بازنشر ترجمه کتاب کوچک بیت‌کوین

کتاب ”The little Bitcoin book” نوشته الکس گلداشتاین و گروه نویسندگان در تابستان و پاییز سال ۱۳۹۹ به فارسی ترجمه شده و روی وب‌سایت منابع فارسی بیت‌کوین به آدرس bitcoind.me برای مقاصد آموزشی و غیرتجاری قرار گرفته است.

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

الف.‌آزاد