کارمزد بیت کوین و مسئله تأیید تراکنش‌ها؛ هر آنچه که باید بدانید




زمانی که ساتوشی ناکاموتو، خالق ناشناس بیت کوین، این پدیده انقلابی را معرفی کرد، از کارمزدهای بالای تراکنش به‌عنوان یکی از مشکلات سیستم‌های مالی سنتی یاد کرده بود. امروز با گسترش شبکه بیت کوین می‌توانید چند میلیون دلار پول را با کارمزد چند دلاری و در عرض یک ساعت یا کمتر به نقطه‌ای دیگر از سراسر جهان منتقل کنید. با این حال، اگر بخواهید با شبکه بیت کوین یک کالای ارزان‌قیمت مانند یک فنجان قهوه را خریداری کنید، کارمزدی که باید پرداخت کنید احتمالاً از هزینه قهوه بیشتر خواهد بود. آیا می‌توان این موضوع را نقطه ضعف شبکه بیت کوین دانست؟

کارمزد تراکنش بیت کوین (Transaction Fee) که گاهی کارمزد استخراج هم نامیده می‌شود، هزینه‌ای است که کاربران بیت کوین باید برای ارسال یک تراکنش پرداخت کنند. این کارمزد به ماینرها یا استخرهای استخراج بیت کوین تعلق می‌گیرد.

نکته بسیار مهم درباره کارمزد بیت کوین این است که کارمزد تراکنش‌ها با روشی بسیار نوین و به‌طور کاملاً‌ آزاد و رقابتی تعیین می‌شود؛ به این معنی که لزوماً بالابودن مبلغ تراکنش، کارمزد را هم بالا نمی‌برد.

تعیین کارمزد کافی به کاربران اجازه می‌دهد تا تراکنش‌ خود را نسبت به سایر تراکنش‌ها در اولویت قرار دهند و آن را سریع‌تر وارد بلاک چین بیت کوین کنند. در هنگام انتخاب تراکنش‌ها برای ساخت بلاک‌ها، ماینرها به‌دنبال تراکنشی هستند که بیشترین کارمزد را می‌پردازد. بنابراین اگر کارمزدی که برای تراکنش خود تعیین می‌کنید به‌اندازه کافی نباشد، ممکن است این تراکنش‌ برای مدت‌زمان طولانی در انتظار تأیید باقی بماند.

پیش از مطالعه این مقاله، بهتر است بدانید که برای انجام تراکنش‌های بیت کوین، لازم نیست حتماً کارمزد را به‌صورت دستی تعیین کنید. تمامی کیف پول‌های امروزی بیت کوین،‌ می‌توانند مبلغ کارمزد استاندارد برای هر تراکنش را به‌طور خودکار و بر اساس میانگین کارمزد‌های شبکه تعیین کرده و از موجودی شما کسر کنند.

در این مطلب که با کمک مقاله‌ای از وب‌سایت آموزشی 99Bitcoins گردآوری شده است، اصول و مبانی اولیه کارمزد بیت کوین را بررسی کرده و تلاش می‌کنیم توضیح جامعی در مورد کارمزد تراکنش‌های بیت کوین ارائه دهیم.

کارمزد تراکنش‌های بیت کوین چیست؟

کارمزد تراکنش، هزینه‌ای است که مالک‌ بیت کوین به ماینرها پرداخت می‌کند تا بتواند دارایی بیت کوین خود را به یک آدرس‌ بیت کوین دیگر منتقل کند. کیف پول‌های بیت کوین، کارمزد هر تراکنش را به‌صورت خودکار و بر اساس ترافیک شبکه تعیین می‌کنند؛ اما همچنین بسیاری از کیف پول‌ها این امکان را به کاربران می‌دهند که کارمزد تراکنش خود را به‌صورت دستی و مطابق اولویت تراکنش تنظیم کنند.

اما برای درک بهتر جزئیات کارمزد تراکنش‌ها، ابتدا باید بدانیم که به‌هنگام انتقال بیت کوین به آدرسی دیگر، چه اتفاقی می‌افتد؟ انتقال بیت کوین از آدرسی به آدرس دیگر، فرایندی است که مراحل زیر را شامل می‌شود:

۱. اعلام تراکنش به شبکه و اعتبارسنجی آن
بعد از اینکه تراکنشی را در کیف پول خود امضا کردید و نرم‌افزار کیف پولتان آن را به شبکه ارسال کرد، همه رایانه‌هایی که نسخه‌ای از بلاک چین بیت کوین را در اختیار دارند، اعتبار این تراکنش را بررسی می‌کنند. در دنیای بیت کوین و ارزهای دیجیتال، این رایانه‌هاتحت‌عنوان نود (node) و این فرایند تحت‌عنوان اعتبارسنجی شناخته می‌شود. در این مرحله، نودها تاریخچه تراکنش‌های بیت کوین را بررسی می‌کنند تا مطمئن شوند که بیت‌ کوین‌هایی که قصد خرج‌‌کردن آنها را دارید، واقعاً متعلق به شما هستند و پیش‌تر خرج نشده‌اند.

۲. ارسال تراکنش به استخر حافظه (مِمپول)
پس از تأیید اعتبار، تراکنش به استخر حافظه یا مِمپول (Mempool) فرستاده می‌شود. ممپول ‌نوعی «اتاق انتظار» است که تراکنش‌ها برای انتخاب ‌شدن توسط ماینرها و ثبت شدن در یک بلاک (بسته‌های حاوی تراکنش)، در آن منتظر می‌مانند. در این مرحله، تراکنش «تأییدنشده» (unconfirmed) یا «بدون تأیید» (۰confirmation) ارزیابی می‌شود. در حقیقت به‌بیان ساده می‌توان گفت در این مرحله هنوز تراکنش‌ها (در بلاک‌ها) بسته‌بندی نشده‌اند.

۳. ثبت در بلاک و تأیید تراکنش
هرگاه ماینری تراکنشی را انتخاب و آن را با موفقیت در بلاک استخراج‌شده جای‌گذاری کند، تراکنش تأییدشده محسوب می‌شود. هر بلاک می‌تواند تنها تعداد محدودی از تراکنش‌ها را در خود جای دهد که در حال حاضر، این تعداد به‌طور متوسط ۲,۵۰۰ تراکنش است. در مواقعی که ترافیک شبکه بالاست و تراکنش‌های بسیاری منتظر تأییدشدن هستند، اولیت ماینرها با تراکنشی است که کارمزد بالاتری برای آن در نظر گرفته شده باشد.




کارمزد می‌تواند میزان فوریت تراکنش شما را مشخص کند. در حقیقت، اگر دوست دارید تراکنش شما در اول صف تأیید باشد، باید کارمزد بیشتری به ماینرها پرداخت کنید. اگر زمان برای شما اهمیت چندانی ندارد، می‌توانید از میزان کارمزد کمتری استفاده کنید. همچنین به این نکته نیز توجه داشته باشید که همیشه فرستندهٔ تراکنش، کارمزدها را پرداخت می‌کند.

حال درباره این سوال که چگونه کارمزد متعارف تراکنش‌های بیت کوین را تشخیص دهیم، در ادامه مقاله بیشتر توضیح خواهیم داد.

نحوه تعیین کارمزدها در تراکنش بیت کوین

برای درک بهتر نحوه تعیین کارمزدها در تراکنش‌های بیت کوین، بهتر است ابتدا چند مفهوم ساده را با هم مرور کنیم.

یو‌تی‌ایکس‌او (UTXO)
سیستم بیت کوین برخلاف بانک‌ها کار می‌کند. در بانک‌ها برای اینکه مشخص شود هرکس چه مقدار موجودی دارد، یک فهرست از موجودی کاربران در اختیار بانک است که در زمان تراکنش از موجودی یک نفر کم می‌کند و به موجودی فرد دیگری اضافه می‌کند. اما در بیت کوین چنین سازوکاری وجود ندارد و هیچ فهرستی از موجودی کاربران در کار نیست. در بیت کوین به‌جای آن که نیاز باشد موجودی هر کاربر به‌شکل مستقیم ذخیره شود از مدل UTXO استفاده می‌شود.

در مدل‌های UTXO، شبکه بر اساس تمام تراکنش‌هایی که شما در کیف پول خود دریافت یا ارسال کرده‌اید، متوجه می‌شود که آیا دارایی کافی برای انجام تراکنش دارید یا خیر.

برای اینکه این مفهوم را بهتر درک کنید، به این مثال توجه کنید:

فرض کنیم که در کیف پول جیبی خود ۷۵ هزار تومان پول نقد دارید. از آنجایی که اسکناس ۷۵ هزار تومانی نداریم، پس در کیف پول‌تان ترکیبی از اسکناس‌های مختلف وجود دارد که جمع آنها در کل ۷۵ هزار تومان می‌شود.

هر اسکناس را به‌عنوان یک خروجی خرج‌نشده در نظر بگیرید. هر اسکناس دارای ارزشی است که شما می‌توانید در تبادلات بعدی خود از آن‌ استفاده کنید.

حالا این مثال را یک قدم جلوتر ببریم. فرض کنید که می‌خواهید با ۲۸ هزار تومان از ۷۵ هزار تومان خود ناهار بخرید. برای خرید ناهار باید به رستوران چند اسکناس (خروجی خرج‌نشده تراکنش) بدهید تا مبلغ ناهار را پرداخت کنید. فرض کنیم که ۷۵ هزار تومان شما شامل هفت اسکناس ۱۰ هزار تومانی و یک اسکناس ۵ هزار تومانی می‌شود. پس به‌طور کلی شما ۸ خروجی خرج‌نشده تراکنش (UTXO) دارید. حالا برای خرید یک ناهار ۲۸ هزار تومانی به فرض سه UTXO (سه اسکناس ۱۰ هزارتومانی) پرداخت می‌کنید و رستوران به شما دو هزارتومان برمی‌گرداند.

بنابراین آن سه اسکناس ۱۰ هزار تومانی که شما پرداخت کردید را به‌عنوان UTXO در نظر بگیرید که خرج می‌شود و دیگر خرج‌نشده به حساب نمی‌آید. آن دو هزار تومان بقیه را هم یک UTXO در نظر بگیرید که به شما برمی‌گردد.

حالا از مثال تخیلی خارج شویم و یک مثال واقعی را بررسی کنیم:

زمانی که کسی بخواهد برای شما ۱.۲ بیت کوین ارسال کند، باید در کیف پولش (کاربر نیاز نیست کاری انجام دهد) به اندازه ارزش مبلغ ارسالی، UTXO داشته باشد. فرض کنیم فرد موردنظر دو خروجی خرج‌نشده در کیف پولش دارد که یکی از آنها یک بیت کوین و دیگری ۰.۵ بیت کوین ارزش دارد. پس فرد موردنظر ما در کیف پولش به اندازه ۱.۵ بیت کوین UTXO دارد، اما او فقط می‌خواهد برای شما ۱.۲ ارسال کند. پس زمانی که او تراکنش را ارسال می‌کند، در حقیقت دارد به شبکه می‌گوید که من در کل ۱.۵ بیت کوین می‌فرستم و تو باید ۱.۲ بیت کوین را به گیرنده بدهی و ۰.۳ بیت کوین دیگر را به آدرس خودم برگردانی.

به عبارت دیگر و زبان ساده‌تر، وقتی قصد ارسال مبلغی را دارید، به شبکه که شامل گروهی از ماینرها و نودها است، تراکنش‌های دریافتی قبلی خود را نشان می‌دهید و می‌گویید این‌ها مدارک داشتن بیت کوین هستند. سپس تراکنش شما معتبر شناخته شده و وارد بلاک می‌شود.

برای جمع‌بندی می‌توان گفت:

[B]اصطلاح UTXO به‌معنای «خروجی خرج‌نشده تراکنش» است. به بیان ساده، هر UTXO مانند یک اسکناس نقدی عمل می‌کند که ارزشی را (به‌صورت بیت کوین) در خود ذخیره کرده و فقط یک‌ بار می‌توان آن را خرج کرد. بنابراین هر تراکنش بیت کوین، (حداقل) یک UTXO را مصرف کرده و یک یا چند UTXO جدید را ایجاد می‌کند.

ورودی تراکنش[/B]
در هر تراکنش شبکه بیت کوین، از یک یا چند UTXO (خروجی خرج‌نشده تراکنش‌های قبلی) به‌عنوان ورودی تراکنش استفاده می‌‌شود. شخص فرستنده با توجه به مبلغ تراکنش، ورودی مناسب را از میان UTXOهای موجود در کیف پول خود انتخاب می‌کند.

خروجی تراکنش
خروجی‌های تراکنش، مقصد بیت کوین‌های ورودی را تعیین می‌کنند. هر خروجی مشخص می‌کند که چه مقدار از بیت کوین‌های ورودی به چه آدرسی منتقل شوند. خروجی‌های تراکنش، در نهایت UTXOهای مستقلی را ایجاد می‌کنند که می‌توان هریک را به‌صورت جداگانه خرج کرد.

برای درک بهتر چگونگی عملکرد اجزای بالا، به مثال زیر توجه کنید.

نحوه استفاده از UTXOها و تعیین ورودی و خروجی تراکنش‌ها



در مثال بالا، نحوه استفاده از UTXOها و تنظیم ورودی‌ها و خروجی‌های تراکنش نشان داده شده است. اما اگر این ۲ تراکنش را واقعی درنظر بگیریم، احتمالاً هیچ ماینری آن‌ها را تأیید نخواهد کرد؛ چراکه در این تراکنش‌ها هیچ سهمی به‌عنوان کارمزد درنظر گرفته نشده است.
ادامه دارد…
انجمن بیت‌کوین