معاملۀ پایه بیتکوین یک ساختار دادهای اساسی و امضا شده است که انتقال ارزش را ثبت میکند. این ساختار ارزش را از خروجیهای تراکنش هزینهنشده (UTXOها) به خروجیهای جدید منتقل میکند که بهتبع آنها به UTXOهای جدیدی تبدیل میشوند و برای خرجهای آینده در دسترس خواهند بود. شبکه بهصورت رمزنگاریشده این تراکنشها را اعتبارسنجی میکند و اطمینان حاصل میکند که بهدرستی روی دفتر کل توزیعشدۀ خود، بلاکچین، ثبت شدهاند.
کالبدشکافی تراکنش بیتکوین: زیربنای انتقال ارزش دیجیتال
بیتکوین در هسته خود بر روی سیستمی ساده و در عین حال هوشمندانه برای انتقال ارزش عمل میکند. برخلاف بانکداری سنتی که در آن حسابها دارای موجودی هستند، بیتکوین بیشتر شبیه به یک سیستم نقد دیجیتال عمل میکند که در آن هر واحد ارزش از طریق مجموعهای از تراکنشها ردیابی میشود. این مکانیزم بنیادی که اغلب از آن به عنوان «تراکنش پایه» (Base Transaction) یاد میشود، سنگ بنایی است که کل شبکه بیتکوین بر روی آن بنا شده است. درک نحوه ساختاردهی، تأیید و ثبت این تراکنشها برای فهم امنیت، یکپارچگی و اصول عملیاتی اولین و بزرگترین ارز دیجیتال جهان حیاتی است.
مدل خروجی خرجنشده تراکنش (UTXO): پول نقد دیجیتال در عمل
برای درک نحوه عملکرد تراکنشهای بیتکوین، ابتدا باید مفهوم «خروجی خرجنشده تراکنش» یا همان UTXO را درک کرد. این مدل یک تغییر پارادایم نسبت به سیستمهای سنتیِ مبتنی بر حساب است و نقشی محوری در طراحی بیتکوین دارد.
پول نقد فیزیکی را در کیف پول خود تصور کنید: شما یک «موجودی حساب» از نقدینگی ندارید؛ بلکه اسکناسهای خاصی با مبالغ مختلف (مثلاً یک اسکناس ۱۰ دلاری و یک ۲۰ دلاری) در اختیار دارید. وقتی میخواهید هزینه چیزی را بپردازید، از این اسکناسهای خاص استفاده میکنید. اگر قیمت کالایی ۱۵ دلار باشد و شما یک اسکناس ۲۰ دلاری بپردازید، ۵ دلار به عنوان مابقی پول (Change) در قالب یک اسکناس جدید دریافت میکنید.
مدل UTXO در بیتکوین نیز به شکلی مشابه عمل میکند:
- بدون موجودی حساب: کیف پولهای بیتکوین از نظر فنی «موجودی» به معنای متعارف آن را نگهداری نمیکنند. در عوض، آنها مجموعهای از UTXOها را مدیریت میکنند که توسط کلیدهای خصوصی کیف پول «قابل خرج کردن» هستند.
- واحدهای مجزای ارزش: هر UTXO نشاندهنده مقدار مشخص و خرجنشدهای از بیتکوین است که خروجی یک تراکنش قبلی بوده است. این دقیقاً مانند یک اسکناس یا سکه دیجیتال است.
- خرج کردن UTXOها: وقتی تراکنشی را آغاز میکنید، کیف پول شما یک یا چند UTXO تحت مالکیت شما را انتخاب میکند تا مبلغی را که میخواهید ارسال کنید پوشش دهد. این UTXOهای انتخاب شده به طور کامل به عنوان ورودی (Input) تراکنش جدید شما مصرف (خرج) میشوند.
- ایجاد UTXOهای جدید: سپس تراکنش خروجیهای (Output) جدیدی به شکل UTXO ایجاد میکند:
- یک UTXO برای گیرنده که حاوی مبلغ ارسالی شماست.
- در صورت نیاز، یک UTXO دیگر (خروجی مابقی یا Change Output) که به کیف پول خودتان بازگردانده میشود؛ این مبلغ شامل باقیمانده UTXOهای مصرف شده است که به گیرنده ارسال نشده یا به عنوان کارمزد پرداخت نشده است.
مدل UTXO مزایای متعددی دارد، از جمله حریم خصوصی بیشتر (زیرا تراکنشها مستقیماً به حسابهای کاربری لینک نمیشوند و فقط با کلیدهای عمومی در ارتباطاند)، امنیت بهبودیافته در برابر «دوبار خرج کردن» (Double-spending) و مقیاسپذیری بالاتر از طریق پردازش موازی تراکنشها. این مدل تضمین میکند که هر واحد بیتکوین از زمان ایجاد (استخراج) در تمام تاریخچه تراکنشهایش قابل حسابرسی و ردیابی باشد.
آناتومی یک تراکنش بیتکوین
هر تراکنش بیتکوین یک ساختار دادهای شامل چندین جزء کلیدی است. این ساختار تضمین میکند که ارزش به طور ایمن در سراسر شبکه منتقل و تأیید شود.
ورودیهای تراکنش (Transaction Inputs)
ورودیها مشخص میکنند که بیتکوینِ در حال خرج شدن از کجا میآید. هر ورودی به یک UTXO خاص از یک تراکنش قبلی اشاره دارد.
- شناسه تراکنش (TXID) خروجی قبلی: یک شناسه منحصربهفرد (هش) از تراکنشی که UTXO مورد نظر را ایجاد کرده است.
- شاخص خروجی (Vout): عددی که نشان میدهد دقیقاً کدام خروجی از آن تراکنش قبلی در حال خرج شدن است (یک تراکنش میتواند چندین خروجی داشته باشد).
- اسکریپت بازگشایی (ScriptSig): این بخش حیاتی است که مالکیت را اثبات و اجازه خرج کردن را صادر میکند. برای یک تراکنش استاندارد P2PKH، این بخش معمولاً شامل موارد زیر است:
- امضای دیجیتال: توسط کلید خصوصی فرستنده تولید میشود و هشی از دادههای تراکنش فعلی را امضا میکند. این کار ثابت میکند که فرستنده بدون فاش کردن کلید خصوصی خود، تراکنش را تأیید کرده است.
- کلید عمومی: که از کلید خصوصی فرستنده مشتق شده است. شبکه از این کلید برای تأیید امضای دیجیتال در برابر هش کلید عمومی که در اسکریپت قفلگذاری UTXO قبلی قرار داشت، استفاده میکند.
خروجیهای تراکنش (Transaction Outputs)
خروجیها مشخص میکنند که بیتکوین به کجا میرود و تحت چه شرایطی میتواند در آینده خرج شود.
- ارزش (Value): مقدار بیتکوین (بر حسب ساتوشی، کوچکترین واحد بیتکوین) که به این خروجی ارسال میشود.
- اسکریپت قفلگذاری (ScriptPubKey): که با نام «شرط خرج کردن» نیز شناخته میشود؛ این اسکریپت شرایطی را تعیین میکند که برای خرج شدن این خروجی در تراکنشهای آینده باید احراز شوند. در یک خروجی استاندارد P2PKH، این اسکریپت معمولاً شامل هش کلید عمومی گیرنده است. برای خرج کردن این خروجی، گیرنده باید یک امضای دیجیتال تولید شده توسط کلید خصوصی متناظر با این هش و همچنین خودِ کلید عمومی را ارائه دهد.
سایر فیلدهای تراکنش
علاوه بر ورودیها و خروجیها، یک تراکنش بیتکوین شامل اطلاعات حیاتی دیگری نیز هست:
- شماره نسخه (Version Number): نسخه ساختار دادهای تراکنش را مشخص میکند که امکان ارتقای پروتکل در آینده را فراهم میسازد.
- زمان قفل (Locktime یا nLocktime): فیلدی اختیاری که زمان یا شماره بلاک خاصی را تعیین میکند که پیش از آن، تراکنش نمیتواند به بلاکچین اضافه شود. این فیلد برای قراردادهای زماندار (Time-locked contracts) استفاده میشود. مقدار ۰ به معنای تایید فوری است.
- دادههای شاهد (Witness Data): در تراکنشهای مبتنی بر پروتکل SegWit، دادههای امضا در ساختاری مجزا ذخیره میشوند که به بهینهسازی فضای بلاک و رفع مشکل «تغییرپذیری تراکنش» (Transaction Malleability) کمک میکند.
کل ساختار دادهای تراکنش (به جز دادههای شاهد در سگویت) سپس به صورت رمزنگاریشده هش میشود تا شناسه تراکنش (TXID) تولید شود؛ شناسه منحصربهفردی که معرف آن تراکنش خاص است.
ساخت و انتشار یک تراکنش
هنگامی که تصمیم میگیرید بیتکوین ارسال کنید، نرمافزار کیف پول شما چندین مرحله بحرانی را در پسزمینه انجام میدهد:
- انتخاب UTXO: کیف پول شما بلاکچین را اسکن میکند تا تمام UTXOهای قابل خرج توسط کلیدهای خصوصی شما را شناسایی کند. سپس ترکیبی از این UTXOها را انتخاب میکند که مجموع ارزش آنها برابر یا بیشتر از مبلغ ارسالی به اضافه کارمزد تراکنش باشد.
- ایجاد خروجی:
- یک خروجی اصلی برای آدرس گیرنده، شامل مقدار مشخص شده بیتکوین، ایجاد میشود.
- اگر مجموع ارزش UTXOهای انتخاب شده بیشتر از مبلغ ارسالی به اضافه کارمزد باشد، یک «خروجی مابقی» (Change Output) ایجاد میشود. این خروجی باقیمانده پول را به آدرس جدیدی تحت کنترل کیف پول شما بازمیگرداند تا با عدم استفاده مجدد از آدرسها، حریم خصوصی حفظ شود.
- محاسبه کارمزد تراکنش: تفاوت بین مجموع ارزش ورودیها و مجموع ارزش خروجیها (گیرنده + مابقی)، کارمزد تراکنش را تشکیل میدهد که توسط استخراجکنندهای که تراکنش را در بلاک قرار میدهد، جمعآوری میشود.
- امضای دیجیتال: هر ورودی در تراکنش باید توسط کلید خصوصی متناظر با کلید عمومی کنترلکننده آن UTXO، به صورت دیجیتالی امضا شود. این فرآیند از الگوریتم امضای دیجیتال منحنی بیضوی (ECDSA) استفاده میکند.
- تجمیع تراکنش: تمام این اجزا – ورودیهای انتخاب شده، خروجیهای ایجاد شده، امضاها و سایر فیلدها – در یک ساختار دادهای کامل تجمیع میشوند.
- انتشار (Broadcasting): تراکنش کامل و امضا شده به شبکه بیتکوین ارسال میشود.
اعتبارسنجی تراکنش: نگهبانان شبکه
نودهای کامل (Full Nodes) بیتکوین به محض دریافت تراکنش، یک فرآیند اعتبارسنجی دقیق را قبل از ارسال آن به نودهای دیگر آغاز میکنند. این تایید چندمرحلهای برای حفظ یکپارچگی شبکه و جلوگیری از تراکنشهای نامعتبر یا مخرب حیاتی است.
نودها چگونه یک تراکنش را تأیید میکنند؟
- بررسیهای ساختاری و نحوی: آیا فرمت تراکنش طبق قوانین پروتکل است؟ آیا اندازه آن از حد مجاز فراتر نرفته؟ آیا مقادیر ورودی و خروجی منطقی هستند؟
- وجود و وضعیت UTXOهای مرجع: برای هر ورودی، UTXO ارجاع داده شده باید وجود داشته باشد و مهمتر از همه، باید خرجنشده باشد. این اصلیترین دفاع در برابر «دوبار خرج کردن» است.
- تأیید اسکریپت: نود اسکریپت
ScriptSig (از ورودی) را با ScriptPubKey (از UTXO مرجع) ترکیب و اجرا میکند. اگر نتیجه «TRUE» باشد، تراکنش معتبر است. اینجا همان جایی است که امضای دیجیتال تأیید میشود.
- بررسی ثبات ارزش: مجموع مقادیر ورودیها باید بزرگتر یا مساوی مجموع مقادیر خروجیها باشد. بیتکوین جدید نمیتواند از هیچ (Thin air) خلق شود.
- بررسی Locktime: اگر زمان قفل تعیین شده باشد، تراکنش تنها پس از رسیدن به آن زمان یا ارتفاع بلاک معتبر خواهد بود.
تنها پس از عبور از تمام این فیلترها، تراکنش معتبر شناخته شده، به «استخر حافظه» (Mempool) نود اضافه شده و به نودهای مجاور بازپخش میشود.
گنجانده شدن در بلاک: مسیر تایید نهایی
تراکنشهای تأیید شده در ممپول منتظر میمانند تا توسط استخراجکنندگان در یک بلاک قرار گیرند:
- انتخاب توسط ماینر: استخراجکنندگان ممپول را رصد کرده و تراکنشهایی را انتخاب میکنند که کارمزد بالاتری نسبت به حجم (Fee per byte) دارند تا پاداش خود را به حداکثر برسانند.
- ساخت بلاک: ماینر یک بلاک کاندید شامل هدر و تراکنشهای انتخاب شده میسازد.
- اثبات کار (Proof-of-Work): ماینر کار محاسباتی سنگینی انجام میدهد تا یک «نانس» (Nonce) پیدا کند که هش بلاک را به زیر هدفِ سختی شبکه برساند.
- انتشار بلاک: به محض یافتن نانس معتبر، ماینر بلاک جدید را در شبکه منتشر میکند.
- اعتبارسنجی بلاک: نودهای دیگر بلاک را دریافت و به سرعت صحت اثبات کار و تمام تراکنشهای داخل آن را بررسی میکنند.
- تأییدیه (Confirmation): اگر بلاک معتبر باشد، نودها آن را به کپی بلاکچین خود اضافه میکنند. در این لحظه، تراکنش اولین «تأییدیه» خود را دریافت میکند. با استخراج بلاکهای بعدی روی این بلاک، تعداد تأییدیهها بیشتر شده و تراکنش برگشتناپذیرتر میشود.
کارمزدهای تراکنش: سوخت شبکه
کارمزدها دو هدف اصلی دارند:
- ایجاد انگیزه برای استخراجکنندگان: برای جبران هزینههای پردازشی و تأمین امنیت شبکه.
- جلوگیری از اسپم: کارمزد مانع از این میشود که مهاجمان شبکه را با تعداد انبوهی از تراکنشهای بیارزش پر کنند.
کارمزد بیتکوین بر اساس مبلغ ارسالی نیست، بلکه بر اساس اندازه دادهای تراکنش (بایت) و میزان ترافیک شبکه تعیین میشود.
یک مثال عینی: آلیس به باب پول پرداخت میکند
- اسکن کیف پول آلیس: کیف پول آلیس دو UTXO پیدا میکند: یکی ۰.۳ بیتکوینی و دیگری ۰.۴ بیتکوینی (مجموعاً ۰.۷ BTC).
- انتخاب UTXO: برای ارسال ۰.۵ بیتکوین، کیف پول هر دو UTXO را انتخاب میکند.
- ساخت تراکنش:
- ورودیها: ارجاع به هر دو UTXO قبلی همراه با امضای آلیس.
- خروجیها: ۰.۵ BTC برای آدرس باب و ۰.۱۹۹۹ BTC برای آدرس مابقیِ آلیس (با کسر ۰.۰۰۰۱ BTC به عنوان کارمزد).
- تأیید و ثبت: تراکنش امضا، منتشر، توسط نودها تأیید و در نهایت توسط یک ماینر در بلاک ثبت میشود. حالا باب صاحب یک UTXO جدید به ارزش ۰.۵ بیتکوین است.
قدرت ماندگار مدل تراکنش بیتکوین
طراحی سیستم تراکنشهای بیتکوین بر پایه UTXO و تأیید رمزنگاریشده، مزایای بنیادینی را ارائه میدهد:
- امنیت: امضاهای دیجیتال و اثبات کار تضمین میکنند که تراکنشها فقط توسط مالک واقعی مجاز شده و پس از تأیید، عملاً غیرقابل تغییر هستند.
- تمرکززدایی: هیچ نهاد مرکزی تراکنشها را تأیید یا رد نمیکند؛ نودها مستقلاً بر اساس قوانین اجماع عمل میکنند.
- شفافیت و قابلیت حسابرسی: تمام تراکنشها به صورت عمومی در بلاکچین ثبت میشوند و هر کسی میتواند جابجایی ارزش را ردیابی کند.
- جلوگیری از دوبار خرج کردن: مدل UTXO و اعتبارسنجی سراسری شبکه، خرج کردن دوباره یک بیتکوین را غیرممکن میسازد.
این رقص دقیقِ انتخاب UTXO، اجرای اسکریپت، امضای رمزنگاریشده و اعتبارسنجی غیرمتمرکز، تضمین میکند که هر تراکنش بیتکوین سندی ایمن، قابل تأیید و تغییرناپذیر از انتقال ارزش باشد و ستون فقرات مقاوم کل شبکه بیتکوین را شکل دهد.