پردازه های تراکنش در شبکه بیت کوین

تاکنون فرض شده است که خروجی تراکنش ها به یک آدرس بیت کوین ارسال می شود. با این حال، پروتکل انعطاف پذیرتر از آن است. هر خروجی تراکنش معمایی ریاضی است که باید به منظور خرج کردن خروجی، آن را حل کرد. معما و نیز راه حل برای معماهای مزبور در قالب دو پردازه نشان داده می شوند. پردازه کلید عمومی معما را ایجاد کرده و بخشی از پردازه حاوی کلید عمومی است. معمایی که پردازه کلید عمومی را حل کرده و در نتیجه وجوه باز می شود، پردازه امضا نام داشته و آن بخشی از پردازه حاوی امضاست. نام های مزبور نام هایی است که در کد منبع و در سراسر اسناد بیت کوین ذکر شده است.

شکل 1. پردازه نگاری

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

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

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

منبع: کتاب راهنمای بیت کوین نوشته پدرو فرانکو