من سفر خود را برای مطالعه بلاکچین چند هفته پیش شروع کردم اما متوجه شدم که اکثر وبلاگ ها فقط یک ایده کوتاه در مورد بلاکچین یا بیت کوین دارند. برای یک فرد فنی/توسعهدهنده که میخواهد جزییات مربوط به بلاکچین را بفهمد باید تعداد زیادی وبلاگ را اسکن کند و اطلاعات را به صورت تکه تکه جمع کند. در اینجا من سعی کردم به تلفیق همه درک مورد نیاز در مورد بیت کوین و بلاکچین در یک وبلاگ. امیدوارم روزهای پژوهش شما را نجات داده باشم. در طول وبلاگ, من لینک مرجع از جایی که من اطلاعات خاص تلفیقی فراهم کرده بود. برای اطلاعات بیشتر به راحتی مراجعه کنید. پس بیایید شروع کنیم.
بلاکچین ستون فقرات بیت کوین است. بیت کوین روی فناوری بلاک چین کار می کند. این توسط شخص ناشناسی به نام ساتوشی ناکاموتو در ژانویه 2009 معرفی شد. اولین بلوک توسط خودش در ژانویه 2009 استخراج شد و این بلوک به عنوان بلوک جنسیس (اولین بلوک در بلاکچین) نامیده می شود. اولین پاداشی که پس از استخراج استخراج شد 50 بیت کوین بود. پاداشهای فعلی که خردسالان دریافت می کنند 12.5 بیت کوین + کارمزد تراکنش است. این پاداش هر 4 سال به نصف کاهش می یابد و فرض بر این است که بیت کوین نهایی که قرار است استخراج شود حدود سال 2041 خواهد بود. پس از که تنها هزینه های معامله خواهد شد به افراد زیر سن قانونی که بلوک تایید تعلق می گیرد.
بلاکچین پلتفرمی است که دفتر کل توزیع شده را حفظ می کند. در یک شبکه بلاکچین چندین گره(یا ماینرها یا غیر ماینرها) وجود دارد که یک شبکه بلاکچین را تشکیل می دهند. این گره ها دفتر خود را حفظ می کنند. به همین دلیل این به یک دفتر کل عمومی تبدیل می شود و توسط هر گره ای که بخشی از شبکه بلاک چین است قابل دسترسی است. بلاکچین مجموعه ای از بلوک ها است که به هم متصل شده اند و زنجیره ای از بلوک ها را تشکیل می دهند. یک بلوک می تواند شامل تعداد معاملات باشد و این معاملات در یک بلوک گنجانده شده و در یک شبکه بلاکچین منتشر می شود, اگر این بلوک توسط گره های دیگر تایید و پذیرفته شود سپس این بلوک جدید بخشی از بلاکچین می شود. اجازه می دهد تا شیرجه رفتن عمیق به این مفهوم.
چه توسط دفتر توزیع منظور شما? لجر چیزی جز حفظ یک لیست از معاملات است. در سیستم متمرکز ما یک مثال از بانکها بزنیم که بانکها یک دفتر از هر صاحب حساب که دارای یک حساب در یک بانک است نگهداری میکنند. تمام سابقه بدهی و اعتبار یک حساب را حفظ می کند. اکنون این اطلاعات فقط برای دارنده بانک و حساب قابل دسترسی است و معاملات فقط توسط بانک و هیچ کس دیگری نگهداری می شود. این به یک سیستم متمرکز تبدیل می شود.
در اینجا در مورد سیستم های غیر متمرکز, هیچ قدرت مرکزی مانند یک بانک که تمام جریان و خروج از معاملات کنترل وجود دارد. در اینجا همه گره هایی که بخشی از یک شبکه بلاکچین هستند این اختیار را دارند که صحیح بودن یا نبودن معامله را تایید کنند. اگر اکثریت گره پرچم سبز برای معامله سپس بلاکچین می پذیرد که معامله.
مزیت اصلی این سیستم تقریبا غیر ممکن است برای هک و هر گونه معامله تقلب به عنوان اگر هر گره تلاش می کند تا هر گونه معامله جعلی, سپس گره های دیگر که نشسته به اعتبار معامله اگر نادرست است این هرگز بخشی از بلاکچین را وجود دارد. هنگامی که معامله بخشی از یک بلاکچین است, سپس تنها معامله به عنوان متعهد در نظر گرفته می شود و در هر صورت نمی تواند به عقب برگردد.
گره قادر به بررسی اعتبار هر معامله است زیرا هر گره حفظ تاریخ تمام معاملات تا کنون اتفاق افتاده است.
فرض کنید شخص الیس 50 بیت کوین را به شخص باب می فرستد. این یک معامله است. جایی که موجودی حساب الیس 50 بیت کوین کاهش می یابد و حساب باب 50 بیت کوین بالا می رود. این معاملات یا می تواند بر روی یکی از دستگاه های گره و یا بر روی یک گره که میزبان کیف پول برای مشتریان انجام می شود. معاملات فقط با کمک نشانی قابل انجام است. نشانی چیزی جز یک کلید رمزنگاری است. این در مبحث بعدی توضیح داده شده است.
یک معامله از چهار بخش اصلی تشکیل شده است:
- شناسه تراکنش: شناسه منحصر به فرد هش شده
- فراداده: اطلاعات بیشتر در مورد معامله
- ورودی: در زیر توضیح داده شده است.
- خروجی: نشانی که بیت کوین نیاز به ارسال.
به عنوان مثال در نظر بگیرید که الیس یک کیف پول جدید ایجاد می کند و بلافاصله 0.2 بیت کوین و 0.01 بیت کوین و 3 بیت کوین را برای رسیدگی دریافت می کند. وقتی مبلغ کیف پول را در مجموع می بینیم به صورت 3.21 بیت کوین نشان داده می شود. اما در داخل کیف پول در واقع 0.2, 0.01 و 3 بیت کوین است. این 3 مقدار مختلف با هم مخلوط نمی شوند اما همانطور که هست باقی می مانند. اینها به عنوان خروجی تراکنش مصرف نشده نامیده می شوند. این معاملات کاملا قفل شده اند و قابل تغییر نیستند. این به عنوان خروجی مشخص شده اند که معامله بعدی انجام شده است.
حالا فرض کنید الیس می خواهد به بازگشت 0.15 بیت کوین به باب, در حال حاضر در این مورد بیت کوین اسکریپت تجزیه و تحلیل تمام مجموعه های موجود و یکی برداشت. بنابراین در این حالت اسکریپت 0.2 تراکنش بیت کوین را به عنوان ورودی یک تراکنش جدید نشان می دهد. در اینجا شبکه بیت کوین فقط 0.15 بیت کوین مصرف نمی کند و 0.05 بیت کوین را به عنوان تعادل نگه می دارد. اما در عوض 0.2 بیت کوین را به عنوان ورودی می گیرد. و در اینجا معاملات را ایجاد خواهد کرد.
- 0.15 بیت کوین به نشانی ب
- 0.05 بیت کوین به نشانی الف به عنوان تغییر.
در حال حاضر یک بار این معامله می شود توسط تمام شبکه تایید مقدار خواهد شد به حساب های مربوطه وجود دارد اعتبار. یعنی باب 0.15 بیت کوین دریافت می کند و الیس به عنوان 0.05 بیت کوین تغییر می کند.
درخت مرکل یک درخت دوتایی است. معدنچی انتخاب خواهد کرد که کدام معامله را می خواهد در یک بلوک از استخر معامله تایید نشده قرار دهد. پس از انتخاب, ریشه مرکل محاسبه شده است بر اساس تعداد معامله. فرض کنید ما 8 معامله داریم که باید بخشی از یک بلوک باشد. هر معامله دو بار هش می شود. و مجموعه ای از 2 معامله درهم خواهد شد با هم درهم, که به ما بدهد 4 رشته هش, دوباره مجموعه ای از 2 هش به ما 2 هش و در پایان 1 هش. هش تک است که ما چیزی جز یک ریشه مرکل است که به عنوان ورودی به یک بلوک داده شده است.
ماینر, این ریشه مرکل را در بلوک تازه تایید نشده قرار داده و به شبکه پخش می کند.
این ریشه مرکل تراکنشها را تایید نمیکند بلکه مجموعهای از تراکنش یا یکپارچگی تراکنش را تایید میکند. ریشه مجموعه ای از رشته هش از گره های برگ وجود دارد و برگ های خود را و غیره و در نهایت معاملات. این به این معنی است که هر تغییر تنها در هر یک از تغییرات معامله, تغییرات کل درخت, حتی اگر منظور از معامله تغییر ریشه مرکل نیز تغییر خواهد کرد. این به معدنچی اطمینان می دهد که بررسی هر معامله ریشه ای را می دهد که با ریشه مرکل مطابقت دارد.
هر حساب کیف پول بیت کوین شامل کلیدهای عمومی و خصوصی است و هر دوی این کلیدها بخشی از الگوریتم ای دی اس هستند. یک کیف پول می تواند شامل چندین کلید خصوصی و عمومی باشد. (مرجع: http://en. wikipedia. org/wiki/Elliptic_Curve_DSA).
کلید خصوصی شماره 256 بیتی یا 64 کاراکتر و یک عدد تصادفی است و باید بسیار ایمن نگه داشته شود زیرا این به عنوان بلیط برای خرج کردن بیت کوین عمل می کند. بدون کلید خصوصی هیچ معامله ای انجام نمی شود. کلید خصوصی با 5 شروع می شود. کلید خصوصی برای ایجاد امضا هنگام انجام معامله استفاده می شود. و این امضا تنها با کمک کلید عمومی قابل تایید است.
کلید عمومی از کلید خصوصی گرفته شده است. کلید عمومی نشانی برای جایی است که می توانیم بیت کوین ارسال کنیم. معدنچیان به منظور تایید اعتبار تراکنش به دنبال امضای دیجیتالی(معامله امضا شده با استفاده از کلید خصوصی) و تایید شده با استفاده از کلید عمومی مشترک هستند. اگر معتبر هستند سپس معامله به عنوان یک معامله معتبر در نظر گرفته است.
هنگامی که یک معامله تولید می شود, یک امضای دیجیتال با استفاده از کلید خصوصی تولید می شود. این کلید به همراه کلید عمومی برای بررسی معتبر بودن یا نبودن معامله استفاده می شود. در طول تایید معامله توسط گره, گره تشخیص دهد که با استفاده از کلید عمومی امضا معتبر است و تمام معاملات ورودی با استفاده از کلید در دسترس هستند و از این رو به عنوان یک معامله معتبر مشخص شده اند.
بلوک شامل اطلاعات مورد نیاز برای بخشی از بلاکچین است.
- عدد جادویی: همیشه 0 برابر 9ب4بف9 است زیرا این نوع ساختار داده یا نوع فایل را نشان می دهد.
- اندازه بلوک: اندازه کل بلوک
- سربرگ بلوک: نشانی هش بلوک فعلی
- نسخه-شماره نسخه بلوک
- هش بلوک قبلی-256 بیت هش بلوک قبلی
- مرکل ریشه هش-256 بیتی است از ریشه مرکل. (هش از همه معامله)
- زمان-مهر زمان فعلی در ثانیه
- بیت (هدف) — هدف یک عدد 256 بیتی است. (یعنی 0 * 1 قبل از میلاد 330 * 256 * * (0 * 18-3))
- نامی-تعداد 32 بیتی از 0 شروع می شود
- شمارنده معامله: تعداد معاملات
- معاملات: لیست معامله.
هدف بر اساس دشواری محاسبه می شود.
مشکل هر 2016 بلوک تقریبا 2 هفته تنظیم می شود. بر اساس فرمول های زیر محاسبه می شود
زمان مورد انتظار برای حل بلوک های 2016 / زمان واقعی برای حل بلوک های 2016 گرفته شده است.
اگر معدنچیان قادر به حل 2016 بلوک با زمان متوسط 9 دقیقه, ما ارزش مانند دریافت
اگر نتیجه بزرگتر از 1 سپس نیاز به افزایش مشکل دیگری کاهش مشکل.
بنابراین مشکل جدید = مشکل * 1.1111
و این مشکل جدید اکنون برای بلوک های 2016 دیگر تنظیم شده است.
هنگامی که هر معامله تولید می شود, هر معامله می رود به استخر معامله تایید نشده. این استخر شامل یک لیست بزرگ از معامله تایید نشده است که در انتظار پیدا کردن یک مکان در یک بلوک است. ماینر یا تمام تراکنش ها را انتخاب می کند یا برخی از تراکنش ها را به انتخاب خود انتخاب می کند, جایی که می تواند سود بیشتری داشته باشد زیرا برخی از تراکنش ها با مبلغ خوبی از هزینه های تراکنش همراه است که در صورت استخراج توسط یک معدنچی برای کار به عنوان پاداش به ماینر داده می شود. بنابراین ماینر این امکان را دارد که هر تراکنشی را از مجموعه تراکنش های تایید نشده انتخاب کند. قبل از اضافه کردن چک خیش در صورتی که معامله واجد شرایط با توجه به بلاکچین به اجرا شود. این است که با چک کردن اگر فرستنده در واقع تعادل کافی با ردیابی معاملات گذشته انجام می شود.
هنگامی که لیستی از معاملات, خواهد شد که بخشی از بلاکچین, انتخاب شده است, سپس ماینر شروع به ایجاد یک بلوک. این یک ریشه مرکل ایجاد می کند و هش ریشه برای مسدود کردن تغذیه می شود, هش بلوک قبلی را می گیرد و در پارامتر بلوک قبلی در بلوک اضافه می کند. هنگامی که تمام پارامترهای دیگر تنظیم می شوند ماینر اکنون می تواند بلوک را استخراج کند. توجه داشته باشید که هر ماینر بلوک خود را ایجاد می کند و می تواند مجموعه معاملات متفاوت یا یکسانی را در بلوک داشته باشد.
دقیقا چه معدن یک بلوک معنی?
ماینر سعی می کند یک مشکل ریاضی بسیار پیچیده را برای ارضای یک شرط حل کند. اگر این شرط درست باشد سپس یک بلوک جدید استخراج می شود و به یک شبکه پخش می شود. این راه حل اثبات کار(اسیر) نامیده می شود. سایر گره ها در صورت صحیح بودن راه حل به تایید راه حل نگاه می کنند و اگر 51 درصد از گره ها راه حل را بپذیرند بلوک به یک بلوک همیشگی در بلاک چین تبدیل می شود.
اثبات کار است(صدای انفجار)?
هر بلوکی که بخشی از بلاک چین خواهد بود یک مشکل ریاضی برای حل دارد. مگر اینکه این مشکل توسط ماینر حل نشود این بلوک بخشی از زنجیره نخواهد بود. این مشکل چیزی نیست جز یک الگوریتم هش که باید کمتر یا مساوی با هدف باشد. این است که ساده نیست که شما در حال فکر کردن. این هدف هش همراه با مقدار مشخصی از صفر اضافه در شروع.
حالا خیش یک هش از تمام درخت مرکل ایجاد, هش قبلی,نسخه, و غیره. این ورودی ها یک مقدار هش ایجاد می کنند. حالا شما می گویید که ما ورودی یکسانی داریم و خروجی یکسانی تولید می کند, پس چگونه می خواهیم مقدار هدف را مقایسه کنیم? در اینجا گرفتن است. همراه با مجموعه ای از ورودی, ما باید برای اضافه کردن ورودی دیگری به نام نون. نون عددی است که با 1 افزایش می یابد. در ابتدا روی 0 تنظیم شده است. در حال حاضر در ورودی هش, اگر ما یک تغییر کوچک تاثیر کل تولید کرده است.
خیش با استفاده از این اسم در هر زمان برای تولید هش. هش تولید شده با پارامترهای ورودی و نامی=1 اگر با هدف مطابقت نداشته باشد, نامی توسط یک افزایش می یابد, و این روند ادامه می یابد تا زمانی که یک هش پیدا شود که کمتر یا مساوی با هدف باشد. بر اساس دشواری ماینر تقریبا 10 دقیقه طول می کشد تا راه حل مورد نیاز را دریافت کند. مشکل در هر بلوک 2016 افزایش یا کاهش می یابد و بستگی به زمان صرف شده توسط این بلوک ها برای حل مشکل دارد. در بالا توضیح داده شد.
هنگامی که مشکل حل شد هش جدید تولید شده با نون به یک بلوک جدید اضافه می شود و به شبکه پخش می شود.
هنگامی که بلوک تشکیل شده است, گره های دیگر بلافاصله مطلع است که بلوک جدید با یک راه حل در دسترس است. این به سرعت در عرض یک ثانیه در سراسر شبکه پخش می شود. در حال حاضر تمام این گره ها شروع به اعتبار بلوک می کنند. حل این مشکل بسیار سختتر از تایید کردن است. به سختی طول می کشد برخی از زمان به منظور بررسی اگر بلوک معتبر است یا نه.
هنگامی که گره های دیگر بلوک را دریافت می کنند یک فرایند موازی در محیط خود برای بررسی اعتبار بلوک شروع می شود. هر گره یا یک غیر ماینر یا یک گره ماینر اعتبار بلوک را بررسی می کند. اولا یکپارچگی معاملات بررسی می شود, به عنوان مثال ریشه مرکل بررسی می شود, این چک معامله و تلاش می کند به شکل یک ریشه مرکل همراه با این تعادل موجود نیز بررسی می شود. اگر هر گره تلاش می کند برای تغییر معامله در این نقطه, یک ریشه کامل مرکل مختلف تشکیل خواهد شد و در نتیجه در یک هش بلوک کاملا متفاوت. این هش متفاوت از گره های دیگر دریافت شده است. هنگامی که یکپارچگی معامله تایید شده است, سپس راه حل یعنی صدای انفجار تایید شده است که ما باید ارزش نامی همراه با قبلی است و مرکل هش و هش مربوطه کمتر یا مساوی به هش هدف است. اگر همه این شرایط راضی سپس تنها بلوک مشخص شده به عنوان معتبر توسط یک گره خاص.
این مراحل توسط هر گره در شبکه انجام می شود. در حال حاضر یک بار 51% از گره قبول اگر بلوک معتبر است, سپس تنها بلوک بخشی از بلاکچین می شود و در عوض, معدنچی پاداش بیت کوین به تازگی تشکیل شده دریافت + هزینه های معامله. اینها بیت کوین های جدیدی هستند که توسط شبکه تولید می شوند و به حساب ماینر وارد می شوند. به همین دلیل در یک بلوک همیشه یک تراکنش کوین بیس در بالا وجود دارد که باید به جایی که پاداش می رود اشاره کند.
این همه چیز در مورد بلاکچین و کار بر روی بیت کوین در چارچوب بلاکچین است. من تقریبا یک هفته در درک مفهوم و کار بیت کوین سرمایه گذاری کرده بود و انجمن جستجو, وبلاگ ها, پست ها و پیدا کردن اطلاعات در بیت ها و قطعات. در اینجا من سعی کردم به ترکیب را به یک مقاله واحد است که کاملا طاقت فرسا به خواندن, اما به من اعتماد, شما یک مقدار قابل توجهی از درک در مورد بیت کوین با این پست کسب.
اجازه دهید من در مورد هر گونه نمایش داده شد و یا نگرانی می دانم, و در صورت تمایل به من اصلاح در هر نقطه در این مقاله.