ابتدا، نحوه عملکرد تراکنش بیت کوین را از دیدگاه کاربر بررسی میکنیم و سپس از بیرون به بررسی آن خواهیم پرداخت.
امروزه اکثر استخراجها توسط استخرهای ماینینگ “Mining pools” انجام میشود. استخرهای ماینینگ گروهی از ماینرها هستند که قدرت پردازش خود را ترکیب میکنند و پاداش بلاک را بین خود به اشتراک میگذارند.
اینجاست که بتمن میخواهد بیت کوین دریافت کند. پس برای او یک آدرس بیت کوین ایمیل میکند و مرد آهنی آن را کپی و جایگذاری میکند.
در تصویر، ماینرها با دایرههای نارنجی رنگ نشان داده میشوند.
این “مکانیسم اجماع” برای تعیین تراکنشهای صحیح، قلب طراحی بلاکچین بیت کوین است که فرآیند آن در تصویر زیر نشان داده شده است.
در این مرحله، ابتدا تراکنش مرد آهنی تایید میشود. سپس مقدار ۱ بیت کوین از آدرس او به آدرس بتمن منتقل شده و رسما در بلاکچین ثبت میشود.
نودهای ویژهای که به عنوان ماینر شناخته میشوند، تراکنش تایید شده را به همراه سایر تراکنشهای معتبر موجود در استخر حافظه، در یک “بلاک” بستهبندی میکنند.
این فرآیند در نمودار زیر نشان داده شده است:
بنابراین تنها ترفند برای ماینری که میخواهد عدد برنده را پیدا کند، این است که تا حد امکان حدس بزند و این کار نیاز به قدرت محاسباتی زیادی دارد که انرژی زیادی مصرف میکند.
نکته مهم این است که حل معمای بلاک بعدی تراکنشها، بستگی به اطلاعات بلاک قبلی دارد که باعث میشود ماینرها به سرعت نسخه دیتابیس خود را بهروز کنند و دستکاری بلاکها را غیرممکن سازند.
زمانی که بتمن آدرس خود را با مرد آهنی به اشتراک بگذارد، مرد آهنی تراکنش را با استفاده از کیف پول بیت کوین خود آغاز میکند و بقیه مراحل توسط کامپیوترها و کدهای نرم افزاری انجام میشود.
ساختار تراکنش بیت کوین
همه نودها بهطور مداوم یکدیگر را با آخرین اطلاعات (تراکنشها) که به شبکه بیت کوین اضافه میشود، بهروز میکنند.
اساسا این معما در “حدس زدن برای یافتن یک عدد صحیح” خلاصه میشود. احتمال حدس زدن یک عدد صحیح، حدود ۱ در ۶ تریلیون است.
ماینری که اولین راه حل (عدد درست) را پیدا کند، مستحق دریافت پاداشی است که به عنوان “پاداش بلاک” شناخته میشود.
اما این فرآیند انتقال چگونه عمل میکند؟
هنگامی که یک ماینر معما را حل کند (عدد صحیح را حدس بزند)، میتواند راهحل را اعلام کند و بلاک تراکنشهای خود را به شبکه پیشنهاد دهد.
اکنون یک بیت کوین از آدرس مرد آهنی به آدرس جدیدی که متعلق به بتمن است، منتقل شده.
ممپول یا استخر تراکنش، یک پایگاه داده کوچک متشکل از تراکنشهای تایید نشده است که هر نود از آن نگهداری میکند. همه تراکنشهای موجود در ممپول تایید نشده هستند و تا زمانی که در بلاک قرار نگیرند معتبر شناخته نمیشوند.
اولین کاری که مرد آهنی انجام میدهد این است که کیف پول بیت کوین خود را باز میکند.
بتمن میبیند که تراکنش تایید شده و کیف پول بیت کوین خود را بررسی میکند تا ببیند آیا بیت کوین منتقل شده است یا خیر.
نود بررسی میکند که آیا تراکنش معتبر است یا خیر.
- آیا برای انجام تراکنش، بیت کوین کافی در آدرس فرستنده موجود است؟
- آیا فرستنده مجاز است تا این مقدار بیت کوین را ارسال کند؟
اگر تراکنشها معتبر باشند و راهحل معما درست باشد، شرکتکنندگان شبکه، نسخه بلاکچین خود را نسبت به تراکنش جدید بهروز میکنند.
این کار به شما کمک میکند تا تمام مفاهیمی که در درسهای قبلی آموختهاید را به خاطر بسپارید.
پاداش بلاک ماینرها را تشویق میکند تا کارهای لازم را برای تایید تراکنشها و حفظ پایگاه داده انجام دهند.
ماینرها کامپیوترهایی هستند که در سراسر جهان به طور پراکنده وجود دارند و بخش مهمی از شبکه بیت کوین را تشکیل میدهند. وظیفه آنها این است که تراکنشهای معتبر جدید را جمعآوری و تایید کنند.
بلاک مجموعهای از تراکنشهاست که به صورت زمانی به یکدیگر متصل میشوند تا یک بلاکچین را تشکیل دهند.
همه شرکتکنندگان شبکه، اکنون بلاک جدید تراکنش (مربع آبی) را پذیرفتهاند. در نتیجه دفترکل آنها بهروز میشود.
در این زمان، تنها یک شرکتکننده در شبکه (ماینری که بلاک جدید تراکنشها را به شبکه اضافه کرده) میتواند دفتر کل بهروزرسانی شده را که شامل تراکنش جدید است ببیند.
تراکنشها ابتدا در یک اتاق انتظار به نام “ممپول” منتظر تایید میمانند.
کار بعدی که انجام میدهد این است که از بتمن آدرس بیت کوینش را میخواهد.
در این درس به شما نشان میدهیم که چگونه یک تراکنش بیت کوین از ابتدا تا انتها کار میکند.
بیت کوینهای تازه استخراج شده توسط ماینر، به عنوان بخشی از پاداش بلاک شناخته میشوند که بیشترین بخش از درآمد ماینرها را تشکیل میدهند. در حال حاضر، پاداش ایجاد هر بلاک ۶.۲۵ بیت کوین است.
مربع آبی، دفتر کل بهروز شده را نشان میدهد که شامل تعدادی تراکنش جدید از جمله تراکنش مرد آهنی است.
فرض میکنیم مرد آهنی قبلا آدرس بتمن و مقدار بیت کوین ارسالی را وارد کرده است.
در هر زمان، هزاران کامپیوتر برای ایجاد بلاک بعدی با یکدیگر رقابت میکنند. این رقابت شامل حل یک معما است و ماینرها تنها در صورتی میتوانند یک بلاک جدید بسازند که معمای قبلی را حل کنند.
اولین ماینری که بتواند عدد نانس را صحیح حدس بزند، بلاک را ماین میکند.
نرم افزار کیف پول به یک نود بیت کوین متصل میشود و پیام تراکنش را به همراه امضای دیجیتال و کلید عمومی ارسال میکند.
تراکنش گزارشی از انتقال بیت کوین از آدرسی به آدرس دیگر است. تراکنشها بهصورت جداگانه در بلاکچین ثبت نمیشوند بلکه ابتدا در بلاکها دستهبندی میشوند.
دایرههای خاکستری همان کامپیوترها (نودهای کامل)اند که بخشی از شبکه بیت کوین همتا به همتا را تشکیل میدهند.
تنها راه یافتن این عدد، آزمون و خطاست. به عبارت دیگر ماینرها برای یافتن عدد تا حد امکان حدس میزنند.
اگر ماینری ناشناخته، بلاک نامعتبری از تراکنشها را ارسال کند که به نحوی فقط به نفع او باشد چه؟
هر بلاک جدیدی که به بلاکچین اضافه میشود، نشانگر یک تایید بیشتر برای آن تراکنش است. در حال حاضر، استاندارد فعلی برای اینکه یک تراکنش امن و معتبر شناخته شود، دریافت ۶ تایید یا کانفرم است.
اینجاست کلید خصوصی او (که در کیف پول ذخیره میشود) وارد میشود.
برای ارسال بیت کوین، مرد آهنی باید به شبکه بیت کوین ثابت کند او مالک پولی است که میخواهد ارسال کند.
از اینجا به بعد بتمن در انجام تراکنش دخالتی ندارد.
ماینرها در شبکه بیت کوین، هر تراکنش را ابتدا بررسی میکنند و بلاکهای دارای تراکنشهای نامعتبر را رد میکنند. امروزه بیش از صد هزار نود به طور مستقل هر تراکنش بیت کوین را تایید میکنند.
پاداش بلاک از ۲ جزء تشکیل شده است:
- بیت کوینهای تازه استخراجشده
- کارمزد تراکنشها (که توسط شخصی که تراکنش را انجام میدهد پرداخت میشود)
این زنجیرهسازی از بلاکها باعث میشود که معماری پایگاه داده را بلاکچین بنامیم.
همانطور که میبینید، بسیاری از مراحل تراکنش بیت کوین، در پشت صحنه انجام میشود.
نکته مهم: در این مرحله تنها درخواست تراکنش صورت گرفته و هیچ کامپیوتری بلاکچین خود را بهروز نکرده است.
از آنجایی که پاداش بلاک مقدار قابل توجهی است، بسیاری از ماینرها برای حل کردن معمای هر بلاک تراکنش با یکدیگر رقابت میکنند.
تنها چیزی که افراد میتوانند ببینند این است که ۱ بیت کوین از آدرسی به آدرس دیگر ارسال شده است اما نمیدانند که چه کسانی پشت این آدرسها هستند.
اکنون بیایید به نحوه عملکرد تراکنش بیت کوین نگاهی بیندازیم.
در نمودار زیر، مرد آهنی و بتمن به صورت کیف پول بنفش نمایش داده شدهاند.
مربعهای مشکی نشاندهنده بلاکچین هستند و در زمانی که درخواست انجام تراکنش در شبکه توسط مرد آهنی صورت میگیرد، بهصورت متوالی کپیهای دفتر کل را بهروزرسانی میکنند.
از آنجایی که مرد آهنی انگشتان بزرگی دارد، احتمال اینکه اشتباه نگارشی داشته باشد زیاد است. پس او دوباره بررسی میکند که اعداد را بهصورت صحیح وارد کرده باشد.
اگر یک تراکنش مورد تایید قرار بگیرد، در یک فضای ذخیرهسازی موقت به نام “استخر تراکنش” یا “ممپول” ذخیره میشود.
همه فول نودها یک کپی از پایگاه داده فعلی دارند و به همین دلیل میتوانند به راحتی تایید کنند که مرد آهنی ۱ بیت کوین برای ارسال در کیف پول خود دارد.
سپس ماینرها برای اینکه جزو اولین ماینرهایی باشند که بلاک خود را ماین میکنند، با یکدیگر وارد رقابت میشوند. آنها تلاش میکنند تا عدد خاصی را که با صفر شروع میشود (نانس) را بیابند.
مرد آهنی یک “کلید خصوصی” که رشته منحصر به فردی از حروف و اعداد است را در اختیار دارد. با استفاده از این کلید خصوصی، نرم افزار کیف پول بتمن یک امضای دیجیتال تولید میکند که تضمین میکند این تراکنش توسط او انجام میگیرد و نه شخص دیگری.
هرچه تعداد بلاکهای بیشتری پس از بلاک تراکنش مرد آهنی ساخته شود، تراکنش در بلاکچین تایید بیشتری را دریافت میکند.
یا اگر مرد آهنی یک کلاهبردار باشد و سعی کند همان ۱ بیت کوین را همزمان برای ۲ نفر بفرستد، بدون اینکه کسی متوجه شود چه؟
اگر همه نودهایی که یک نسخه کامل از بلاکچین را حفظ میکنند (فول نودها) بخواهند یک دفتر کل را پاک کنند، باید بهطور کلی نابود شوند. تا زمانی که کل دفتر حداقل در یک نود کامل وجود داشته باشد، گزارشی از تمام تراکنشهای بیت کوین برای همیشه وجود خواهد داشت.
تراکنش بیت کوین (Bitcoin Transaction) انتقال مقدار مشخصی بیت کوین از یک آدرس به آدرس دیگر است که در بلاکچین ثبت میشود.
در لحظهای که ماینر به درستی حدس میزند، بلاک را همراه با عدد نانس صحیح با سایر نودهای شبکه بیت کوین به اشتراک میگذارد.
این کار را در قالب انجام تراکنش بین دو شخصیت خیالی بیان میکنیم! آمادهاید؟
در ادامه مطلب، خلاصهای از تراکنش بیت کوین (و سایر ارزهای دیجیتال) در شبکه را مطالعه میکنیم:
- اگر بخواهید مقداری بیت کوین برای شخصی بفرستید، باید آدرس بیت کوین گیرنده را ارائه دهید. سپس کیف پول شما به یک نود در شبکه متصل میشود تا تراکنش را آغاز کند.
- نود، تراکنش را اعتبارسنجی و تایید میکند. سپس تراکنش معتبر را به سایر نودها و ماینرها در شبکه منتقل میکند. اگر تراکنش یکی از قوانین بیت کوین را نقض کند، نودها بهطور خودکار آن را رد میکنند.
- ماینرها این تراکنشها را به یک بلاک کاندید (که یک بلاک موقت است) تبدیل میکنند و با یکدیگر رقابت میکنند تا ماینری باشند که راهحل معمای ریاضی را به درستی حدس میزند تا بتواند بلاک خود را در بلاکچین منتشر کند.
- ماینر برنده میتواند این بلاک موقت را در بلاکچین به عنوان یک بلاک دائمی منتشر و تراکنش را تایید کند.
- نودها این بلاک را دریافت میکنند و بعد از بررسی تایید میکنند که ماینر از قوانین شبکه پیروی میکند. (اگر بلاک یکی از قوانین بیت کوین را نقض کند، نودها آن را بهطور خودکار رد میکنند).
- هر زمان که یک نود بلاک جدیدی را دریافت کند و آن را معتبر تشخیص دهد، بلاک را به دیگر نودها منتقل میکند. بهطوری که همه نودها (از جمله ماینرها) میتوانند همگام باقی بمانند و زنجیرههای بلاک را حفظ کنند.
- همه ماینرهای دیگر بلاک موقتی را که روی آن کار میکردند، حذف میکنند و یک بلاک کاندید جدید را با یک معمای ریاضی جدید ایجاد میکنند.
- زمانی که بلاک جدید ایجاد میشود، اطلاعات نود بهروز میشود و به این ترتیب کیف پول متصل به نود موجودی جدید را نشان میدهد.