به جلسۀ دیگری از دوره آموزش ارزهای دیجیتال خوش آمدید. در جلسۀ پیش، یاد گرفتید که «امضای دیجیتال چگونه کار میکند؟»؛ اما تا حالا به این موضوع فکر کردهاید که «تراکنش بیتکوین چگونه کار میکند؟». با آکادمی کالج پیپس، بزرگترین مرجع تخصصی آموزش بازارهای مالی، همراه باشید تا قلههای دانش را در حوزۀ رمزارزها فتح کنید.
[ez-toc]
یک تراکنش بیتکوین انتقال مقدار معینی بیت کوین از یک آدرس به آدرس دیگر است که در بلاکچین ثبت میشود. اما این فرآیند انتقال چگونه انجام میشود؟
در این درس، نحوۀ عملکرد یک تراکنش بیتکوین را از ابتدا تا انتها توضیح میدهیم. ابتدا به نحوۀ کار تراکنش بیتکوین از دیدگاه کاربر و سپس به نحوۀ کار آن از دیدگاه کلی میپردازیم. این کمک میکند تا مفاهیم جدیدی که در درسهای قبلی آموختهاید، بهتر یادآوری شوند.
تراکنش بیتکوین چگونه کار میکند؟
فرض کنید فردی دارای یک بیت کوین است و میخواهد آن را به شخص دیگری ارسال کند.
از دیدگاه فرستنده
اولین کاری که فرستنده انجام میدهد، باز کردن کیف پول بیت کوین خود است. این کیف پول میتواند از هر نوعی باشد اما در این مثال، او از یک کیف پول نرمافزاری نصب شده روی لپتاپ خود استفاده میکند. سپس او از گیرنده آدرس بیتکوینش را درخواست میکند و آن را در کیف پول خود وارد میکند.
فرستنده مقدار بیتکوین مورد نظر برای ارسال را وارد کرده و پس از بررسی دقیق، دکمۀ ارسال را فشار میدهد. سپس نرمافزار کیف پول از او رمز عبور را درخواست میکند تا تراکنش را تأیید کند.
برای ارسال بیتکوین، فرستنده باید به شبک بیتکوین ثابت کند که واقعاً مالک بیتکوین است و میتواند آن را ارسال کند. اینجاست که کلید خصوصی او وارد عمل میشود و نرمافزار کیف پول با استفاده از کلید خصوصی او، تراکنش را امضا کرده و یک امضای دیجیتال ایجاد میکند.
تراکنش بیتکوین در پشت صحنه
از این لحظه به بعد، وظیفۀ فرستنده به پایان رسیده است. نرمافزار کیف پول به یک نود بیتکوین متصل شده و پیام تراکنش، امضای دیجیتال و کلید عمومی را ارسال میکند.
نود بررسی میکند که آیا تراکنش معتبر است یا خیر:
- آیا فرستنده به اندازۀ کافی بیتکوین دارد؟
- آیا فرستنده مجاز به ارسال بیتکوین است؟
اگر تراکنش از تمام این بررسیها عبور کند، نود آن را به سایر نودها ارسال میکند. نودها تراکنش را دوباره برای خودشان اعتبارسنجی میکنند و در صورت معتبر بودن، آن را به نودهای دیگر متصل به خود ارسال میکنند.
اگر یک تراکنش معتبر شناخته شود، در یک فضای موقت به نام «حافظه موقت» (mempool) ذخیره میشود. در این مرحله، تراکنش «تأیید نشده» یا «در انتظار» در نظر گرفته میشود.
نودهای ویژهای به نام «ماینرها» این تراکنش را به همراه سایر تراکنشهای معتبر در حافظه موقت در یک «بلوک» بستهبندی میکنند؛ سپس آنها برای یافتن عددی که با تعداد مشخصی صفر شروع شود، رقابت میکنند. اولین ماینری که عدد صحیح را حدس بزند، بلوک خود را استخراج کرده و به شبکه ارسال میکند.
نودهای شبکه بیت کوین بررسی میکنند که آیا ماینر عدد صحیح را حدس زده یا نه! اگر درست باشد، بلوک ماینر را به نسخه خود از بلاکچین اضافه میکنند و آن را به نودهای دیگر نیز ارسال میکنند.
وقتی بلوک حاوی تراکنش به بلاکچین اضافه شد، تراکنش «تأیید» میشود. هر بلوکی که به بالای بلوک حاوی تراکنش اضافه شود، بهعنوان یک «تأیید اضافی» محسوب میشود. استاندارد فعلی برای ایمن دانستن تراکنشها، انتظار برای شش تأیید است.
از دیدگاه گیرنده
گیرنده تراکنش را تأیید کرده و کیف پول بیت کوین خود را بررسی میکند تا ببیند آیا بیت کوین منتقل شده است یا خیر.
تا زمانی که فرستنده یا گیرنده آدرس کیف پول بیتکوین خود را عمومی نکنند، هیچکس نمیداند که چه کسی در یک تراکنش بیتکوین شرکت کرده. همه فقط میبینند که یک بیتکوین از یک آدرس به آدرس دیگر ارسال شده، اما نمیدانند چه کسی پشت این آدرسها است.
همانطور که دیدید، بسیاری از مراحل تراکنش بیتکوین پشت صحنه انجام میشود. پس از این که گیرنده آدرس خود را به فرستنده داده و فرستنده تراکنش را از طریق کیف پول بیتکوین خود آغاز کرده، بقیه مراحل توسط کامپیوترها و کدهای نرمافزاری انجام میشوند.

نمای کلی از نحوۀ عملکرد یک تراکنش بیتکوین
یک تراکنش بیتکوین انتقال مقدار معینی بیتکوین از یک آدرس به آدرس دیگر است که در بلاکچین ثبت میشود. در این بخش، نحوۀ عملکرد یک تراکنش بیتکوین را از دیدگاه کلی توضیح میدهیم.
فرض کنیم فرستنده آدرس گیرنده و مقدار بیتکوین مورد نظر را برای ارسال وارد کرده است. کیف پول فرستنده به یک نود متصل میشود که پیامی به تمام کامپیوترهای شبکۀ بیت کوین ارسال میکند که میگوید: «من میخواهم 1 بیتکوین به گیرنده ارسال کنم».
فرستنده دارای یک رشته منحصر به فرد از حروف و اعداد به نام “کلید خصوصی” است. با استفاده از این کلید خصوصی، نرمافزار کیف پول فرستنده یک “امضای دیجیتال” تولید میکند که تضمین میکند پیام از سوی او ارسال شده است و نه از طرف شخص دیگری.
کامپیوترهای شبکه بیتکوین به راحتی میتوانند با استفاده از یک رشته متفاوت از حروف و اعداد که فرستنده فراهم میکند، به نام “کلید عمومی”، این امضای دیجیتال را تأیید کنند. همچنین میتوانند به راحتی تأیید کنند که فرستنده مقدار لازم بیتکوین برای ارسال را دارد، زیرا همه آنها یک نسخه از پایگاه داده فعلی را در اختیار دارند.
تمام نودها به طور مداوم با جدیدترین اطلاعات (تراکنشها) که به شبکه بیتکوین اضافه میشود، یکدیگر را بهروز میکنند. تراکنشها به عنوان سابقهای از انتقال بیتکوین از یک آدرس به آدرس دیگر وجود دارند. تراکنشها به صورت جداگانه در بلاکچین ثبت نمیشوند، بلکه ابتدا به صورت گروهی در بلوکها قرار میگیرند.
در این مرحله، تراکنش تنها پیشنهاد شده است و هیچ کامپیوتری نسخه خود از دفتر کل (بلاکچین) را بهروز نکرده است. تراکنشها ابتدا در یک فضای موقت به نام «مخزن حافظه» (mempool) قرار میگیرند، جایی که در انتظار تأیید هستند. مخزن حافظه یک پایگاه داده کوچکتر از تراکنشهای تأیید نشده (در انتظار) است که هر نود آن را نگه میدارد. تمامی تراکنشهای در مخزن حافظه در حال انتظار هستند و تا زمانی که در یک بلوک قرار نگیرند، نباید به آنها اعتماد کرد.
نقش ماینرها در شبکۀ بیتکوین
در اینجا، یک شرکتکننده ویژه در شبکه وارد عمل میشود: «ماینرها». ماینرها کامپیوترهایی هستند که در سراسر جهان پراکندهاند و بخشی حیاتی از شبکه بیت کوین را تشکیل میدهند. وظیفه آنها این است که تراکنشهای جدید معتبر را، مانند تراکنش فرستنده، به صورت بلوکهایی گروهبندی کرده و برای تسویه پیشنهاد کنند.
یک بلوک مجموعهای از تراکنشها است. بلوکها به ترتیب زمانی به یکدیگر متصل میشوند تا یک زنجیره از بلوکها یا بلاکچین تشکیل دهند.
در هر لحظه، هزاران کامپیوتر برای حق ایجاد بلوک بعدی رقابت میکنند. این رقابت شامل حل یک «معما» است و ماینرها تنها در صورتی میتوانند یک بلوک جدید پیشنهاد دهند که معمای جاری را حل کنند.
پاداش بلوک
ماینری که ابتدا راهحل را پیدا کند، به دریافت پاداشی به نام «پاداش بلوک» مستحق است. پاداش بلوک برای تشویق نودها به شرکت در استخراج طراحی شده است. پاداش بلوک از دو جزء تشکیل شده است: بیتکوینهای تازه استخراج شده و هزینههای تراکنش که توسط فردی که تراکنش را آغاز کرده پرداخت میشود.
پاداش بلوک انگیزهای است برای ماینرها تا کار لازم برای تأیید تراکنشها و نگهداری پایگاه داده را انجام دهند.
بهروزرسانی زنجیره بلوکها
بلوکهای جدید بهطور تقریبی هر 10 دقیقه یکبار در شبکه بیتکوین تسویه میشوند. امروز، بیشتر استخراج توسط «استخرهای استخراج» انجام میشود، گروههایی از ماینرها که قدرت پردازش خود را ترکیب میکنند و پاداش بلوک را بین خود تقسیم میکنند.
این فرآیند به این شکل است که ماینرها تراکنشها را در یک بلوک موقت گروهبندی کرده و برای حل معما رقابت میکنند. هر ماینری که معما را حل کند، میتواند بلوک موقت خود را به عنوان بلوک دائمی به بلاکچین اضافه کند و تراکنشها را تأیید کند.
مکانیزم اجماع
این مکانیزم اجماع است که تعیین میکند چه تراکنشهایی بهطور دائمی ثبت و تأیید شوند. مکانیزم اجماع هسته طراحی بلاکچین بیتکوین است.
خلاصه
برای ارسال بیتکوین به شخص دیگر، آدرس بیتکوین گیرنده را فراهم میکنید و کیف پول شما به یک نود متصل میشود تا تراکنش را آغاز کند. نود تراکنش را تأیید کرده و آن را به سایر نودها و ماینرها منتقل میکند. ماینرها این تراکنشها را به بلوکهای موقت گروهبندی کرده و برای حق انتشار بلوک خود به بلاکچین رقابت میکنند. ماینری که معما را حل کند، بلوک خود را به بلاکچین اضافه کرده و تراکنشها را تأیید میکند. نودها این بلوک را دریافت کرده و تأیید میکنند که ماینر قوانین شبکه را رعایت کرده است. هنگامی که نود به روزرسانی جدید را دریافت کند، کیف پول گیرنده موجودی بهروزرسانی شده با بیتکوینهای دریافتی را نشان میدهد.