همه که آنچه در مورد بیت کوین نیاز دارید بدانید از امضای دیجیتال تا بلاک چین و دیگر مفاهیم مربوط به سیستم بیت کوین را اینجا بخوانید.
چگونه یک امضای دیجیتال بیت کوین ایجاد میشود؟
در این درس، قصد داریم یاد بگیریم که چگونه یک امضای دیجیتال در واقع در بیتکوین و سایر ارزهای دیجیتال کار میکند.
برای رسیدن به این درک، ابتدا باید چند مفهوم فنی را آموزش ببینیم، زیرا این مفاهیم سنگ بنای لازم برای ایجاد یک امضای دیجیتال هستند:
– توابع هش
اگر با این مفاهیم آشنا نیستید، در درسهای قبل با جزییات کامل توضیح داده شدهاند. برای کسب اطلاعات بیشتر، به لینکهای بالا مراجعه کنید.
چگونه یک امضای دیجیتال ایجاد میشود؟
بیایید به صورت مرحله به مرحله نگاهی به امضای دیجیتال بیندازیم:
وقتی میخواهید بیتکوین ارسال کنید، کیفپول شما یک پیام تراکنش ایجاد میکند. این پیام شامل اطلاعاتی مانند مقدار بیتکوینی که میخواهید ارسال کنید و آدرس گیرنده است.
این پیام از طریق یک تابع هش اجرا میشود. تابع هش خروجی به نام هش پیام یا همان هش تولید میکند. این هش پیام سپس با استفاده از کلید خصوصی شما رمزنگاری میشود. هش رمزنگاریشده پیام، امضای دیجیتال است. در انتهای این فرآیند، کیفپول شما دو آیتم ایجاد کرده است:
- پیام تراکنش
- امضای دیجیتال (هش رمزنگاریشده پیام تراکنش)
تا این لحظه، هیچ چیزی به شبکه بیتکوین ارسال نشده است. اگر توجه کرده باشید، خود پیام تراکنش، المانی لازم برای ایجاد امضای دیجیتال مورد نیاز است.
بنابراین شما فقط از کلید خصوصی خود برای ایجاد امضای دیجیتال استفاده نمیکنید. شما از کلید خصوصی خود و هش پیام تراکنش استفاده میکنید. به این معنا که نمیتوانید این امضای دیجیتال را برای یک تراکنش دیگر استفاده کنید.
اگر سعی کنید این امضای دیجیتال را در تراکنشی دوم استفاده کنید، توسط شبکه بیتکوین رد خواهد شد زیرا امضای دیجیتال کاملاً بر اساس دادههای تراکنش اول است. هر امضای دیجیتال منحصر به یک تراکنش خاص است.
چگونه یک امضای دیجیتال برای تراکنش بیت کوین تایید میشود؟
برای انتقال بیتکوین از یک آدرس خاص بیتکوین، باید مالکیت کلید خصوصی که با کلید عمومی مرتبط با آن آدرس است را اثبات کنید. اما شما می خواهید این کار را بدون نیاز به فاش کردن کلید خصوصی خود انجام دهید.
امضای دیجیتال چیزی است که میتوانید با ان اثبات کنید که شما مالک کلید خصوصی مرتبط با یک کلید عمومی هستید، بدون اینکه خود کلید خصوصی واقعی را افشا کنید.
بیایید ببینیم چگونه این کار انجام میشود:
وقتی یک تراکنش بیت کوین را شروع میکنید، نرمافزار کیفپول شما سه آیتم را به شبکه بیتکوین ارائه میدهد: پیام اصلی تراکنش، امضای دیجیتال و کلید عمومی شما که به آدرسی که بیتکوین میخواهید ارسال کنید، متصل است. هنگامی که یک گره بیتکوین این موارد را دریافت میکند، آنها را از هم جدا میکند.
این گره پیام تراکنش اصلی را میگیرد و آن را از طریق همان تابع هشی که شما استفاده کردهاید، اجرا میکند. تمام نرمافزارهای بیتکوین از همان تابع هش استفاده میکنند.
اما در مورد امضای دیجیتال، از کلید عمومی ارائه شده توسط شما برای رمزگشایی آن استفاده می گردد. سپس هر دو هش باهم مقایسه میشوند. اگر هر دو هش مطابقت داشته باشند، نشان میدهد که شما مالک واقعی ارز دیجیتالی هستید که میخواهید ارسال کنید.
در اینجا باید به دو نکته اشاره کرد:
- امکان رمزگشایی با کلید عمومی هویت فرستنده را ثابت می کند.
- در مرحله بعد، هنگامی که یک گره قادر به رمزگشایی امضای دیجیتال میشود، هویت شما را اثبات میکند.
به یاد داشته باشید که از آنجا که کلید خصوصی و عمومی با الگوریتم های ریاضی بهم مرتبط هستند، اگر بتوانید پیامی را با کلید عمومی دوستتان رمزگشایی کنید، به این معناست که دوست شما آن را با کلید خصوصی خود رمزنگاری کرده است.
اگر نتوانید پیام را رمزگشایی کنید، بدان معناست که توسط کلید خصوصی کسی دیگر رمزنگاری شده است. به عبارتی دیگر پیام از سمت دوست شما نیامده است. هشهایی که دقیقاً مطابقت دارند، اثبات میکند که پیام تغییر نکرده است.
در مرحله بعد، اطمینان حاصل می گردد که هر دو هش دقیقاً مطابقت دارند و پیام اصلی تغییر نکرده است.
دانستن این نکته مهم است زیرا برخلاف امضای دیجیتال که رمزگذاری شده است، پیام تراکنش اصلی به صورت متنی ساده است زیرا همه تراکنشهای بیتکوین برای همه عمومی هستند.
به یاد داشته باشید که حتی یک تغییر کوچک میتواند یک هش کاملاً متفاوت تولید کند. بنابراین اگر کسی پیام اصلی تراکنش را در مسیر رسیدن به گره رهگیری کند و آن را تغییر دهد مثل ارسال بیت کوین به آدرس او، وقتی پیام از تابع هش عبور میکند، هش کاملاً متفاوتی از دیجیتال ایجاد میکند.
مشابه اینکه چگونه یک امضای دستنویس، شخص را به سند خاصی مرتبط میکند، یک امضای دیجیتال با استفاده از رمزنگاری از لحاظ رمزنگاری هویت را به پیام خاصی پیوند میدهد.
با توجه به درسهای گذشته که شرکت کردهاید، حالا میتوانید با اطمینان به این سوال پاسخ دهید:
بیتکوین چیست؟
بیایید اکنون تمام مفاهیمی را که یاد گرفتهاید برداریم و همه آنها را کنار هم بگذاریم.
بیت کوین (با B بزرگ Bitcoin) یک سیستم جدید است که ایجاد و مالکیت پول دیجیتال را که مستقل از هر دولت، بانک مرکزی یا سایر نهادهای مرکزی مدیریت می کند. این پول با بیت کوین (با b کوچک bitcoin ) ارزش گذاری می شود.
سیستم بیتکوین یک سیستم کاملاً خودکار است که اساساً مجموعهای از کامپیوترها، به نام نودها، هستند که از طریق اینترنت با یکدیگر صحبت میکنند.
هر کسی میتواند این نرمافزار را دانلود و نصب کند. نرمافزار بیتکوین منبع باز است، به این معنی که هر کسی میتواند به کد منبع نگاه کند. اگر کامپیوتری به اینترنت متصل شود و نرمافزار اجرا شود، به عنوان یک نود بیتکوین شناخته میشود.
وقتی دو یا چند نود بیتکوین آنلاین هستند، شبکه بیتکوین را ایجاد می کنند. شبکه بیتکوین یک شبکه همتا به همتا (P2P) است که ۲۴ ساعت در روز، ۷ روز در هفته و ۳۶۵ روز در سال در حال کار کردن است.
در این شبکه، ارتباط بین کامپیوترها (نودها) بدون هیچ مدیریت یا سرور مرکزی صورت میگیرد. به این معنی که تمام نودها قدرت یکسانی دارند و وظایف یکسانی انجام میدهند.
همچنین شبکه ای بدون نیاز به مجوزهای دولتی است، به این معنی که برای جوین شدن در شبکه نیازی به اجازه ندارید. هر کسی میتواند به شبکه متصل گردد یا آن را ترک کند.
پروتکل بیتکوین
نرمافزار به صورت خودکار پروتکل بیتکوین را اجرا میکند. پروتکل بیتکوین مجموعه ای دستورالعمل یا قوانین را توصیف میکند که به کامپیوترها امکان ارتباط و تعامل با یکدیگر را میدهد.
پروتکلها را میتوانید به عنوان قوانین استانداردی فرض کنید که تعیین میکنند سیستم باید چه کارهایی را انجام دهد و چه کارهایی را انجام ندهد.
پروتکل بیتکوین روی شبکه بیتکوین اجرا میشود و کامپیوترها را با دستورالعملها و اطلاعاتی که برای ردیابی و تأیید تراکنشهای روی شبکه لازم است، تجهیز میکند.
همچنین این قوانین مراحلی که کامپیوترها در شبکه باید انجام دهند تا به توافق جمعی در مورد اعتبار هر تراکنش برسند، را مشخص میکند.
به دلیل اینکه شبکه بیتکوین به صورت غیرمتمرکز عمل میکند، به این معناست که هیچ گونه نهاد مرکزی برای
اطاعت وجود ندارد، نیاز به روش تصمیمگیری دیگری برای توافق بر سر اینکه کدام تراکنش معتبر است، وجود دارد.
این پروتکل بیتکوین است که به صورت یک نرمافزار عمل میکند و بر روی هر کامپیوتر یا نود در شبکه بیتکوین نصب شده و به اعضای مستقل شبکه امکان هماهنگی و عملکرد گروهی به عنوان سیستم بیتکوین را فراهم میکند. پروتکل بیتکوین نحوه عملکرد شبکه بیتکوین را تعیین میکند.
علاوه بر اجرای پروتکل بیتکوین، هر نود یک فایل Data دارد که شامل سوابق تمام تراکنش هایی است که تا کنون در شبکه بیتکوین انجام شدهاند، از جمله ایجاد تراکنش های جدید. این فایل بلاکچین نام دارد.
نحوه ساختاردهی دیتاها زمانی که در فایل ثبت یا ذخیره میشوند، آن را از سایر روشهای نگهداری سوابق مانند پایگاههای دیتای سنتی متفاوت میکند.
بلاکچین بیتکوین
بلاکچین بیتکوین شامل دنباله ای از بلوکها است که هر بلوک بر روی بلوک قبلی ساخته میشود. و در نهایت یک زنجیره ای از بلاک ها یا بلاکچین را ایجاد میکنند. در هر بلاک، اطلاعاتی در مورد تراکنش ها قرار دارد.
به طور خاص، بلاکچین تراکنش های “آرشیو شده” یا تأیید شده را نگه میدارد که در “بلاکها” بستهبندی شدهاند. میانگین زمان بین ذخیره شدن بلاکها در فایل داده (بلاکچین) ۱۰ دقیقه است.
پس بلاکچین را به عنوان یک پایگاه Data از ثبت سوابق دائمی در حال افزایش تصور کنید، که در بلاکهای متصل بهم نگهداری میشوند و امنیتشان با استفاده از رمزنگاری (Cryptography) تامین می گردد.
هیچ نمونهی تکی از بلاک چین وجود ندارد. هر نود یک نسخه رسمی از بلاک چین بیتکوین دارد که هنگام پیوستن به شبکه بیتکوین به طور خودکار دانلود میشود.
هر نود در شبکه به عنوان ناظر نسخه خود از بلاک چین عمل میکند. هر نود به نودهای دیگر اعتماد ندارد، بنابراین همیشه دیتاهای به اشتراک گذاشتهشده را دوباره تأیید میکند و اطمینان حاصل میکند که تمامی تراکنش های بیت کوین معتبر هستند.
این کامپیوترها همچنین به طور مداوم از هم سوال میپرسند: آیا بلاکچینهای ما یکسان هستند؟
و در مواقع اختلاف، زمانی که برخی از نودها دارای دفتر کل متفاوتی هستند، تمام نود ها باید بفهمند که نسخه درست بلاک چین کدام است؟
زیرا هر نود در شبکه بیتکوین هنگام تایید تراکنش ها و حفظ نسخه خود از بلاک چین به صورت مستقل عمل میکند، باید توافقی غیرقابل مناقشه وجود داشته باشد که در آن نسخه بلاکچین، بلاک چین واقعی در بین تمام گرهها باشد.
باید یک تاریخچه یکپارچه و واحد از تراکنش ها حفظ شود. و نیاز به روشی دارد که همه در شبکه موافق هستند که به آن پایبند باشند.
مکانیزم اجماع نودهای بیت کوین و ماینینگ
و آن روش با اجماع انجام میشود. فرآیند دستیابی به اجماع میان نودها به نام مکانیزم اجماع نامیده میشود. برای بیتکوین، اجماع از طریق فرایندی به نام ماینینگ حاصل می گردد. ماینینگ فرآیند تأیید تراکنش ها و افزودن آنها به بلاک چین است.
نودهای تخصصی که در ماینینگ شرکت میکنند به عنوان ماینرها شناخته میشوند و بخش حیاتی از شبکه بیتکوین را تشکیل میدهند.
به عبارت ساده، ماینرها تراکنش های معتبر را در یک بلاک بستهبندی میکنند و سپس رقابت می کنند تا اولین نفری باشند که عددی را حدس بزنند که با یک تعداد خاص از صفرها شروع شود. بنابراین ماینینگ میتواند به عنوان حدس زدن توصیف شود.
یا حتی دقیقتر، حدس سریع تر. و از آنجا که ماینرها میخواهند به سرعت حدس بزنند، نیاز به استفاده از سختافزار کامپیوتری تخصصی دارد و بسیار برق مصرف میکند، که این فرآیند گران است.
برای انگیزه دهی به نودها برای شرکت در ماینینگ، آنها هزینههای تراکنش ها را که به ازای بیتکوین پرداخت میشود کسب میکنند و همچنین با بیتکوینهای جدید پاداش می گیرند.
اولین ماینری که عدد صحیح را حدس میزند، بلاک تازه استخراج شده را با شبکه بیتکوین به اشتراک میگذارد. نودهای دیگر تأیید میکنند که عدد حدسزده شده صحیح است و اگر صحیح باشد، هرکس دیگر نیز بلاکچین خود را با بلاک جدید بهروزرسانی میکند.
ماینینگ بیت کوین
ماینینگ این امکان را فراهم میکند تا کل شبکه بیتکوین بر روی اینکه کدام معاملات آرشیو شود و به بلاک چین افزوده شود، توافق کند.
همانطور که مشاهده میکنید، در سیستم بیتکوین چیزهای زیادی در حال اتفاق افتادن است. جالب است که تمام این اتفاقات به صورت خودکار توسط کامپیوترها انجام میشود. و همه اینها به صورت علنی انجام میشود.
از آنجا که بلاک چین هر تغییر در مالکیت هر بیتکوینی را پیگیری میکند، عموم مردم میتوانند ببینند که کسی مقداری ارز برای شخصی دیگر ارسال میکند. و از آنجا که مالکیت بیتکوین به آدرسها متصل است، این اطلاعات به طور مستقیم به اطلاعاتی که هویت فرستنده یا گیرنده را شخصاً شناسایی میکند، متصل نمیشود.
این سطح از شفافیت، که در آن هر کسی میتواند حرکت بیتکوینها را به آدرسهای مختلف نظارت کند، چیزی است که در موسسات مالی سنتی نخواهید یافت.
میتوان گفت مشابه این است که بانک شما و همه مشتریانش به شما دسترسی به دفتر کل حساب های خود را بدهد و به شما اجازه دهد که به صورت زنده هر زمان که مبلغی از یک شماره حساب به یک شماره حساب دیگر منتقل میشود را همراه با مقدار دقیق ببینید.
- پشتیبانی مناسب در تحلیل، استراتژی های معاملاتی و مدیریت ریسک و سرمایه خود را در خدمات ما از جمله درخواست تحلیل سهم، اکسپرت مدیریت سرمایه و سفارش اکسپرت انتخاب کنید.
پروتکل بیتکوین یک پروتکل شبکهای برای انتقال ارز دیجیتال است.
مکانیزم اجماع در تراکنشهای ارز دیجیتال معمولاً از تکنولوژی اثبات کار (Proof of Work) یا اثبات سهم (Proof of Stake) استفاده میکند.
بلاکچین بیتکوین به دلیل نیاز به اثبات تراکنشها و ایجاد بلاکهای جدید برای ثبت تراکنشهای جدید، مدام در حال رشد است.
نودهای بیتکوین به یکدیگر اعتماد میکنند، اما این اعتماد بر اساس قوانین و پروتکلهایی است که برای اجرای شبکه بیتکوین تعیین شدهاند، به عنوان مثال، اعتماد به معتبر بودن بلاکها و تراکنشها بر اساس اثبات کار. این اعتماد مبتنی بر فرایندهای ریاضی و کد منبع باز است به همین دلیل است که نودها بهم اعتماد دارند.