تراکنش های چند امضایی به چه معناست؟

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

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

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

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

همچنین ممکن است تراکنش های چند امضایی را با تراکنش های عادی ترکیب کنیم. برای نمونه میتوان به تراکنشی که باید توسط m تا از n جناح امضا شود و در نهایت توسط یک شخص و شریک نهایی قفل شود، اشاره کرد. استفاده از تراکنش های چند امضایی شامل موارد زیر است:

چند امضایی، اجازه ورود به قرارداد با شخصی غیر قابل اعتماد را می دهد.

  • حساب های امانی سه جانبه

چند امضایی، اجازه ورود به قرارداد با شخصی غیر قابل اعتماد را می دهد. ابتدا یک میانجی بین دو طرف مورد توافق قرار می گیرد، سپس فرستنده وجوه را به یک خروجی چند امضایی که نیاز به ۲ امضا از ۳ امضا دارد، می فرستد. سه کلید عمومی در پردازه کلید عمومی گنجانده شده، که شامل کلیدهای عمومی فرستنده، گیرنده و واسطه است. اگر بعد از مدتی فرستنده و گیرنده توافق کنند که تراکنش باید انجام شود، هر دو آنها می توانند تراکنش را بدون نیاز به درگیر کردن واسطه امضا کنند. با این حال، اگر فرستنده و گیرنده یکدیگر را قبول نداشته باشند که آیا تراکنش باید ادامه پیدا کند یا خیر، میانجی وارد شده و تصمیم می گیرد چه کسی باید وجه را دریافت کند. فرض کنید واسطه تصمیم می گیرد فرستنده باید وجه دریافت کند. در این مورد واسطه و فرستنده می توانند هر دو تراکنش را امضا کرده و وجه درون آن را باز نموده و آن را به فرستنده ارسال کنند. فن آوری حساب های امانی درب امنی را (برای خریدار) برای تجارت الکترونیکی با تراکنش های بیت کوین باز می کند.

  • خدمات حفاظت از کیف پول

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

تعداد امضاهای موجود برای یک تراکنش چند امضایی ، در حال حاضر به ۳ محدود شده است. این با توجه به محدودیت فعلی پردازه امضا بوده که تا ۲۰۰ بایت را پشتیبانی می کند. محدودیت مزبور قرار است در نسخه های آینده پروتکل به ۵۰۰ بایت افزایش یابد و بنابراین تعداد زیادی از امضاها ممکن خواهد شد.

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