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