مدل UTXO یا خروجی خرج نشده تراکنش در بیت کوین چیست؟

در سال‌های اخیر تقاضا برای ارزهای دیجیتال به طور فزاینده‌ای بالا رفته و همچنان در حال رشد است، این امر موجب شده تا کاربران به جنبه‌های مختلف این بازار علاقه‌ مند شوند. UTXO یکی از رایج‌ترین اصطلاحاتی است که در هنگام آشنایی با فضای ارزهای دیجیتال مانند بیت‌کوین با آن مواجه می‌شویم. برای مثال بی‌شک در هنگام ارسال یا دریافت بیت‌کوین با عبارت “خروجی خرج نشده تراکنش” مواجه شده و این عبارت سؤالاتی را در ذهن شما ایجاد کرده است. اما این عبارت به چه معناست؟ آیا در هنگام انجام تراکنش‌های ناموفق که در آنها مبلغی جابه‌جا نشده رسید دریافت می‎کنیم؟ مطمئناً جواب این سؤال خیر است. در ادامه این مطلب به بررسی نحوه کارکرد این مدل می‌پردازیم:
فهرست این مقاله
معرفی مدل UTXO
عبارت UTXO کوتاه شده عبارت Unspent Transaction output بوده و یک اصطلاح فنی است. در دنیای ارزهای دیجیتال مانند بیت‌کوین، خروجی خرج نشده تراکنش، یک واژه انتزاعی از پول الکترونیکی بوده و به میزان رمز ارزی که پس از انجام یک تراکنش رمز ارز مانند بیت‌کوین برای فرد باقی می‌ماند گفته می‌شود. هر UTXO مشابه با یک کوین بوده و با توجه‌ به واحد پول مربوط به خود، ارزش مشخصی دارد.
زمانی که تراکنش پذیرفته شده‌ای در یک سیستم پرداخت معتبر مانند بلاک چین بیت‌کوین انجام می‌شود، تنها UTXOها می‌توانند به‌عنوان ورودی‌های تراکنش استفاده شوند. خروجی خرج نشده تراکنش به طور مداوم پردازش شده و مسئول شروع و پایان هر تراکنش است، یعنی زمانی که یک تراکنش جدید اتفاق می‌افتد، ورودی‌ها حذف شده و خروجی‌ها به‌عنوان UTXOهای جدید ایجاد می‌شوند.
رابطه مدل UTXO با تراکنش‌های بیت کوین و بلاک چین
UTXO یک مفهوم بسیار مهم در حوزه بلاک چین بوده و درک آن بسیار ساده است، این مدل در بلاک چین بیت‌کوین نسبت به سایر بلاک چین‌ها متفاوت است. چراکه از همان ابتدا یکی از مهم‌ترین اهداف راه‌اندازی بیت‌کوین ایجاد سیستم مالی با ویژگی‌هایی مانند شفافیت، منصفانه بودن و قابلیت حسابرسی بوده است.
این مدل به تمام نودهای موجود در شبکه بیت‌کوین این امکان را می‌دهد تا در هر مقطع زمانی در خصوص اینکه کدام بیت‌کوین وجود دارد، توافق کنند. از طرف دیگر تراکنش‌های انجام شده در بلاک چین بیت‌کوین شامل ورودی و خروجی‌های متعددی است. این امر سبب می‌شود تا UTXOها ترکیب و تقسیم شده و هرکدام مبلغی را پرداخت کنند.
گره‌های بیت‌کوین با استفاده از مدل UTXO این امکان را دارند تا هر تراکنش انجام شده در بلاک چین را به طور مؤثر تأیید کنند. این گره‌ها پس از دریافت تراکنش‌ها می‌توانند تأیید کنند که آیا UTXOهایی که مصرف می‌شوند معتبر هستند یا خیر. در نهایت این ویژگی سبب می‌شود تا بیت‌کوین بدون نیاز به وجود اشخاص ثالث قابل‌اعتماد، مشکل Double Spend را برطرف کند.
نحوه کارکرد مدل UTXO
UTXO مانند پول نقد در دنیای واقعی عمل می‌کند، به‌عنوان مثال زمانی که برای خرید به مغازه‌ای می‌روید اسکناس ۱۰ هزار تومانی خود را داده و با بخشی از ارزش آن کالایی را خریداری کرده و باقی ‌مانده پول خود را دریافت می‌کنید. در این مثال شما برای دریافت باقی‌ مانده پول خود اسکناس ۱۰ هزار تومانی را نصف نمی‌کنید، بلکه این اسکناس را به‌ صورت کامل پرداخت کرده و برای باقی ‌مانده آن یک اسکناس ۵ هزار تومانی دریافت می‌کنید.
در دنیای ارزهای دیجیتال UTXO نیز مشابه مثال بالا عمل می‌کند، در یک تراکنش انجام شده در بلاک چین، UTXOها همیشه به‌ صورت کامل پرداخت می‌شوند، حتی اگر مبلغ پرداختی موردنظر بخش جزئی از کل ارزش UTXO اصلی باشد.
مانند مثال بالا، فرض کنید علی می‌خواهد در ازای خرید کالایی که ۶ بیت‌کوین قیمت دارد به فروشنده بیت‌کوین پرداخت کند، اما علی فقط یک UTXO به ارزش ۱۰ بیت ‌کوین دارد. برای خرید این کالا، علی یک تراکنش ایجاد کرده و در آن تمام ۱۰ بیت‌کوین را مصرف می‌کند. برای انجام این تراکنش علی دو UTXO ایجاد می‌کند، یک UTXO برای فروشند به ارزش ۶ بیت‌کوین و یک UTXO برای خودش به ارزش ۴ بیت‌کوین.
UTXO که علی برای خودش ایجاد کرده به‌عنوان UTXO Change (باقی‌مانده پول) شناخته شده و کیف پول نرم‌افزاری وی به طور خودکار این UTXO را ردیابی می‌کند تا موجودی نهایی ۴ بیت‌کوین را در حساب وی اعمال کند.
معرفی جایگزین‌های مدل UTXO

در شبکه‌های بلاک چینی امروزی دو نوع مدل ثبت رکورد رایج است:

مدل خروجی تراکنش خرج نشده که توسط شبکه بیت‌ کوین استفاده می‌شود.
Account / Blance Model که توسط شبکه اتریوم استفاده می‌شود.

در بالا با مدل UTXO آشنا شدیم، اما رقیب اصلی آن یعنی  Account Model چگونه کار می‌کند؟ مدل تراکنش اکانت، مانند حساب‌های بانکی، دارایی‌ها را به‌ صورت موجودی حساب نشان می‌دهد.
دو نوع اکانت وجود دارد:

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

تراکنش انجام شده بر اساس مدل اکانت، برای کاهش موجودی حساب فرستنده و افزایش مانده‌ حساب گیرنده، گره‌هایی (Nodes) را فعال می‌کند. برای جلوگیری از حملات تکراری، هر تراکنش در مدل اکانت، دارای یک nonce است. حملات تکراری زمانی اتفاق می‌افتد که گیرنده پرداخت، برای دریافت مجدد پول، یک تراکنش جعلی را پخش می‌کند. در نتیجه مبلغ پرداختی از حساب فرستنده دو بار کسر می‌شود.
برای مقابله با این‌ گونه حملات، هر حساب در شبکه اتریوم، دارای یک nonce است که برای عموم کاربران قابل ‌مشاهده بوده و با هر تراکنش خروجی یک عدد به آن اضافه می‌شود. این امر مانع ارسال چند مرتبه یک تراکنش می‌شود. برای درک بهتر تراکنش در مدل اکانت به مثال زیر توجه کنید:
طرح مثال
فرض کنید علی ۵ اتر دارد و می‌خواهد یکی از آنها را به محمد بدهد. در مرحله اول، سیستم یک اتر را از حساب علی کسر کرده و اکنون او ۴ اتر دارد. از طرف دیگر محمد یک اتر در حساب خود دارد و با دریافت یک اتر از علی، سیستم یک اتر دیگر به حساب محمد اضافه می‌کند. همانطور که ملاحظه کردید، ثبت سوابق مالی در شبکه اتریوم مانند بانک در دنیای حقیقی است. در هنگام انجام تراکنشات بانکی ابتدا بانک سوابق مالی کاربر را بررسی کرده و تنها در صورت وجود موجودی کافی، تراکنش انجام شده را تأیید و نهایی می‌کند.
مقایسه مدل خروجی خرج نشده تراکنش با اکانت مدل
در ادامه قصد داریم دو مدل خروجی خرج نشده تراکنش و مدل Account را از جنبه‌های مختلف مانند مقیاس‌پذیری، حفظ حریم خصوصی، قابلیت‌های قرارداد هوشمند و… با یکدیگر مقایسه کنیم:
به طور خلاصه مدل UTXO یک Verification Model است. این بدان معناست که کاربران تراکنش‌هایی را ارسال می‌کنند که مشخص‌ کننده وضعیت نتایج تراکنش بوده و به‌عنوان خروجی‌های تراکنش جدید قابل مصرف، توسط گیرنده (ها) تعریف می‌شود. در نهایت نودها وضعیت ورودی‌ها و امضاها را بررسی می‌کنند. اما از طرف دیگر مدل Account یک مدل محاسباتی است که با استفاده از آن کاربران تراکنش‌هایی را اعمال کرده و در خصوص چگونگی وضعیت تراکنش‌ها به نودها دستور می‌دهند. سپس شبکه بر اساس دستورالعمل‌ها محاسبات مربوط به وضعیت جدید را انجام می‌دهد.
۱. مقایسه مقیاس‌پذیری در مدل UTXO و اکانت
از چند روش مختلف می‌توان مقیاس‌پذیری دو مدل UTXO و اکانت را با یکدیگر مقایسه کرد. یک روش این است که بر روی الزامات ذخیره‌سازی کلی هر سیستم تمرکز کنیم. یک روش دیگر آن است که در نظر داشته باشیم که کدام یک از این دو مدل برای استقرار فناوری‌های لایه دوم در بالای بلاک چین اصلی، مناسب ‌تر است.

۲. مقایسه اندازه بلاک چین در مدل UTXO و اکانت
مدل اکانت نسبت به مدل UTXO به طور کارآمدتری از فضای ذخیره‌ سازی استفاده می‌کند. ذخیره یک موجودی حساب واحد در مدل اکانت، در مقایسه با ذخیره چندین UTXO که کل موجودی کاربر را تشکیل می‌دهند، فضای ذخیره‌ سازی کمتری نیاز دارد. ازآنجایی‌ که تراکنش‌های انجام شده در مدل اکانت تنها حاوی فرستنده، گیرنده، مبلغ انتقال و یک امضای دیجیتال است، اندازه آنها به نسبت مدل UTXO کوچک ‌تر است. علاوه بر این، تنها با حذف خروجی‌های تغییر، داده‌های زیادی در مدل اکانت ذخیره می‌شوند.
از طرف دیگر، یک تراکنش UTXO وضعیت پس از انتقال تراکنش (خروجی‌های تراکنش جدید ایجاد شده) را مشخص کرده و نسبت به مدل اکانت، حاوی داده‌های بیشتری است. همچنین ممکن است از چندین UTXO به‌عنوان ورودی‌های تراکنش‌ها مصرف شوند، درحالی‌ که تراکنش اکانت تنها مشخص می‌کند که از کدام حساب مبلغ موردنظر کسر شود. برای درک بهتر این موضوع، لازم به ذکر است که مدل اکانت شبکه اتریوم ۱۰۰ بایت و مدل خروجی خرج نشده در Horizen تراکنش حدود ۲۰۰ تا ۳۰۰ بایت لازم است.
همچنین سرعت دریافت نودهای جدید در سیستم‌هایی که از مدل اکانت استفاده می‌کنند، بیشتر است، چراکه برای همگام‌ سازی آنها به داده‌های کمتری نیاز است. تعداد حساب‌ها در مدل اکانت بسیار کمتر از تعداد کل UTXOهای تنظیم شده در سیستمی با اندازه مشابه است.
۳. مقایسه سازوکار کانال‌های State و پرداخت در مدل UTXO
در حال حاضر، پیشرفته ‌ترین سازوکار کانال پرداخت، مربوط به شبکه Lightening روی بیت‌کوین است. در این سازوکار زمانی که دارایی‌ها به لایه دوم وارد یا از آن خارج می‌شوند، از یک مکانیسم اثبات و تأیید استفاده می‌شود. همانطور که در بالا نیز به آن اشاره شد، مدل UTXO یک مدل اثبات و تأیید و مدل اکانت یک مدل محاسباتی است. از همین رو، ساختار UTXO برای این نوع رویکردهای مقیاس ‌پذیری، مناسب ‌تر است.
۴. مقایسه فرایند شاردینگ در مدل UTXO و اکانت
هنگام استفاده از مدل UTXO پارتیشن‌ بندی یک بلاک چین به شاردها و زنجیره‌های جانبی آسان‌ تر خواهد بود. جمع‌آوری خروجی‌های تراکنش‌های قابل خرج و تعریف خروجی‌ها در سمت مشتری اتفاق افتاده و استرس را بر سیستم کلی کاهش می‌دهد.
اما در مدل اکانت، هر نود حساب فرستنده و گیرنده را در قسمت‌های مختلف بومی‌ سازی کرده و سپس هر دو را ویرایش می‌کند. در نهایت می‌توان گفت مدل خروجی خرج نشده تراکنش امکان پارتیشن ‌بندی ساختار داده را ساده‌ تر می‌کند.
۵. مقایسه حریم خصوصی در مدل  UTXO و اکانت

زمانی که صحبت از حریم خصوصی می‌شود هر دو مدل‌های خروجی خرج نشده تراکنش و اکانت مزیت‌هایی را ارائه می‌دهند که در ادامه به معرفی هر یک از آنها می‌پردازیم:

مدل UTXO پیوند میان تراکنش‌ها را سخت‌ تر می‌کند، درحالی ‌که مدل اکانت قابلیت تعویض بهتری را ارائه می‌دهد. با توجه‌ به ویژگی قابلیت تعویض، می‌توان گفت مدل اکانت حریم خصوصی بهتری را به کاربران ارائه می‌دهد.
در مدل UTXO به‌ صورت مداوم از آدرس‌های تغییر استفاده شده و این امر باعث می‌شود تا ردیابی مالکیت کوین نسبت به مدل اکانت دشوارتر باشد. در یک بیان ساده، آدرسی که به‌ تازگی در این مدل ایجاد می‌شود، مالک شناخته شده‌ای نداشته و برای رسیدن به یک کاربر مشخص، نیاز به تجزیه و تحلیل یک زنجیره پیشرفته است.

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

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

از طرف دیگر، مدل اکانت همراه با یک “Coin Mixer” داخلی ارائه می‌شود. به این ترتیب زمانی که یک حساب توسط چندین تراکنش تأمین مالی می‌شود، نتیجه تراکنش یک موجودی واحد است. در نهایت هنگامی که پرداختی از این حساب انجام می‌شود، ناظر نمی‌تواند تعین کند کدام یک از سکه‌های دریافتی در خرج خواهند شد.
۶. مقایسه قابلیت قراردادهای هوشمند در مدل UTXO و اکانت
زمانی که صحبت از فعال‌سازی قراردادهای هوشمند می‌رسد، مدل اکانت مزایای روشنی دارد. پیش از هر چیزی مدل اکانت منطق واضح‌تری را ارائه می‌دهد. اضافه و کم‌کردن موجودی‌ها سبب می‌شود تا ایجاد تراکنش‌هایی که نیازمند اطلاعات State بوده و چندین طرف را درگیر می‌کند، برای توسعه‌ دهندگان راحت ‌تر باشد.
در این مدل، تراکنش امضا شده تا زمانی معتبر است که حساب ارسال ‌کننده موجودی کافی برای پرداخت هزینه اجرا را داشته باشد. از نظر محاسباتی بررسی موجودی حساب، هزینه کمتری نسبت به تأیید فرایند خرج یا خرج نشدن، تراکنش دارد. این امر به ‌ویژه در مورد “حساب‌های کنترل شده با کد” که با سایر قراردادهای هوشمند تعامل دارند نیز صادق است.
قراردادهای هوشمند در مدل UTXO برای انتخاب خروجی‌ها در هنگام ارسال دارایی‌ها و مدیریت “خروجی‌های تغییر” نیازمند ارائه منطق روشنی هستند. ازآنجایی ‌که مدل UTXO ذاتاً بدون State است، تراکنش‌ها را وادار به ارائه اطلاعات state کرده و سبب پیچیده شدن طراحی کلی می‌شود.
موارد مهم دیگر در مقایسه مدل UTXO و مدل اکانت
یکی از مزایای مدل UTXO این است که امکان موازی‌ سازی تراکنش‌ها در قراردادهای هوشمند را بسیار راحت‌ تر می‌کند.
ازآنجایی‌ که تمام UTXOها به ورودی‌های مستقلی مرتبط هستند، این امکان وجود دارد تا چندین UTXO مورداستفاده در چند تراکنش مختلف، به طور هم‌زمان پردازش شوند. اما در مدل اکانت، نتیجه تراکنش به وضعیت ورودی بستگی داشته و انجام معاملات به ‌صورت موازی باید با دقت انجام شود. در نتیجه، تراکنش‌های مربوط به یک حساب به‌ صورت متوالی انجام می‌شوند.
نکته کلیدی آنجاست که مدل UTXO هنگام انجام معاملات ساده بهتر عمل می‌کند، و مدل اکانت زمانی کاربرد پیدا می‌کند که با یک منطق پیچیده‌ تری سروکار داشته باشید. ازاین‌ رو، ترند محبوب در مورد پلتفرم‌های قرارداد هوشمند فعلی، استفاده از یک مدل ترکیبی است که در آن به طور همزمان از مدل خروجی خرج نشده تراکنش برای حساب تراکنشات و از مدل اکانت برای قراردادهای هوشمند بهره می‌برند.
نکات مهم در خصوص مدل UTXO

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

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

توجه: با وجود اینکه دو صرافی کوینکس و کوکوین هر دو فعلا بدون نیاز به تغییر IP فعالیت می‌کنند اما بهتر است برای امنیت بیشتر از IP ثابت خارج از ایران استفاده کنید.
برای ورود به صرافی کوینکس حتما باید با IP خارج از ایران وارد شوید.

به این مقاله امتیاز دهید تا با کمک شما کیفیت آن را بسنجیم

ترتیبی که برای خواندن مقالات” بیت کوین “به شما پیشنهاد می‌کنیم:

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *