امضای اشنور (Schnorr Signature) امضایی دیجیتالی است که افراد با آن میتوانند مالکیت داراییهای خود را اثبات کنند. امضاهای دیجیتال طرحهایی مبتنیبر الگوریتمهای ریاضیات هستند که در قالب عبارات رمزنگاریشده تولید میشوند تا اعتبار پیام ارسالی و فرستنده آن را تأیید کنند.
الگوهای متفاوتی در حوزه بلاکچین برای پیادهسازی امضای دیجیتال استفاده شده است که یکی از آنها امضای اشنور نام دارد. سال گذشته میلادی، این امضا با بهروزرسانی در بلاکچین بیت کوین رونمایی شد. در این مقاله از بلاگ تترلند، توضیح میدهیم که امضای اشنور چیست و نحوه کار آن چگونه است و چه مزایا و معایبی دارد.
اثبات مالکیت کیف پول
اشنور امضایی رمزنگاریشده برای اثبات مالکیت کیف پول است. پیش از آنکه بیت کوین پا به عرصه ارزهای دیجیتال بگذارد، کلاوس اشنور (Claus Schnorr)، رمزنگار آلمانی، این الگوریتم را طراحی کرد.
بااینحال، زمانیکه ساتوشی ناکاموتو در حال طراحی بیت کوین بود، به امضای اشنور توجهی نشان نداد و از الگوریتم دیگری برای امضای تراکنشهای بیت کوین استفاده کرد.
سالها بعد وقتی بیت کوین جایش را در بازار مالی جهانی باز کرد، توسعهدهندگان آن دریافتند که برای گسترش کاربرد بیت کوین به راهکارهایی برای افزایش مقیاسپذیری (Scalability) آن نیاز است.
برداشتن موانع برای مقیاسپذیری بیت کوین
در بلاکچین بیت کوین، برای امضای تراکنشها باید انواع خاصی از تراکنشهای دیگر را هم ایجاد کرد که این اقدام مانعی بر سر راه مقیاسپذیری بیت کوین است؛ اما توسعهدهندگان بیت کوین دریافتند که الگوریتم اشنور میتواند این مشکل را رفع و به مقیاسپذیری ارز دیجیتال برتر کمک کند.
گفتنی است تراکنشهای بیت کوین بدون امضا اجرا نمیشوند و البته این امضا بخشی از فضای بلاک را نیز ازآنِ خود میکند. این مسئله در تراکنشهایی که بیت کوین را از آدرسی به آدرس دیگر انتقال میدهند، مشکلی ایجاد نمیکند؛ چراکه مشکل درخصوص تراکنشهایی است که در آنها انتقال از چند آدرس به یک آدرس انجام میشود.
امضای اشنور چگونه کار میکند؟
عملکرد اصلی امضای اشنور این است که چند کاربر بتوانند با استفاده از آن امضایی واحد را برای همه کسانی ایجاد کنند که امضای آنها موردنیاز است. این کار باعث میشود که اندازه تراکنشها و تعداد امضاهای لازم برای انجام تراکنش کاهش پیدا کند. برای اینکه نحوه کار امضای اشنور را بدانیم، باید با الگوریتم اصلی امضا در بلاک چین بیت کوین آشنا شویم.
سیستم بیت کوین از امضای دیجیتالی با نام ECDSA برای اثبات مالکیت کاربران بر مقدار بیت کوین انتقالی استفاده میکند. هربار که کاربری میخواهد تراکنشی را اجرا کند، باید امضایی فراهم کند که مالکیتش را بر بیت کوین انتقالی تأیید کند.
در هر تراکنش، بخشی وجود دارد که نحوه خرجکردن ورودی تراکنش و شرایطی نظیر قفل زمانی (Time Lock) یا تعداد امضاها را مشخص میکند.
وقتی تراکنشی مربوط به یک کیف پول چندامضایی باشد، در این بخش از تراکنش مشخص میشود که چند امضا برای اجراییشدن آن ضروری است. برای مثال، ممکن است یک کیف پول چهارامضایی طوری تنظیم شده باشد که با سه امضا امکان اجرای تراکنش را داشته باشد.
ایجاد تراکنش بهازای هر امضا
در امضای ECDSA، لازم است که بهازای هر امضا یک تراکنش ایجاد شود؛ یعنی برای تراکنشی که به سه امضا از چهار امضا نیاز دارد، باید حداقل سه تراکنش ایجاد شود. ناگفته پیداست که هزینه کارمزد چنین انتقالی چقدر میتواند زیاد باشد؛ چراکه هر تراکنش کارمزدی جداگانه در شبکه دارد.
تفاوت امضای اشنور با ECDSA
همانطورکه گفتیم، بیت کوین درحالحاضر از امضای ECDSA مخفف Elliptic Curve Digital Signature Algorithm بهمعنای «الگوریتم امضای دیجیتال منحنی بیضوی» استفاده میکند.
اگر نخواهیم به مباحث فنی ورود کنیم، ECDSA بهزبان ساده، امضایی دیجیتالی است که با استفاده از الگوریتمی موسوم به منحنی بیضوی (Elliptic Curve)، پیامهای رمزگذاریشده میسازد.
بیت کوین با استفاده از این امضا به کاربرانش امکان میدهد تا بتوانند مالکیتشان را بر داراییهایی اثبات کنند که در آدرس بیت کوین خود قرار دارند. اثبات مالکیت زمانی لازم میشود که کاربر با کلید خصوصی خود تراکنشی میسازد و میخواهد ازطریق کلید عمومیاش آن را انتشار دهد.
تفاوت امضای اشنور و ECDSA
در میان توسعهدهندگان، این استدلال مطرح است که امضای اشنور میتواند نمونه پیشرفتهتر همان امضای ECDSA بهحساب بیاید؛ چراکه دقیقا همان کار را میکند، فقط حجم فایل کمتری دارد و حریم خصوصی آن قویتر است.
تفاوت دیگر امضای اشنور با ECDSA در چیزی است که به آن شکلپذیری یا چکشخواری (Malleability) میگویند. امضای دیجیتال بهشکل هشی رمزنگاریشده از تراکنش ایجاد میشود. این باعث میشود که بتوانیم برای تشخیص تراکنشها از یکدیگر، بهجای بررسی جزئیات تراکنش فقط هشها را باهم مقایسه کنیم.
امضاها کاملاً منحصربهفرد هستند؛ اما شکلپذیری تراکنش این امکان را میدهد تا بتوان با استفاده از روشهای خاصی یک امضا را تغییر داد، بدون آنکه تراکنش نامعتبر شود. طراحی ECDSA طوری است که تغییر امضا را بدون نامعتبرکردن تراکنش امکانپذیر میکند. چنین نقصی پیامدهای خسارتباری دارد.
بهعنوان مثال، فرض کنید پویا مقداری بیت کوین را با امضای ABC برای مهسا ارسال میکند. اگر این امضا در حمله شکلپذیری (Malleability Attack) به ABZ تغییر کند، پویا دیگر نمیتواند مطمئن شود که مهسا بیت کوین ارسالی را دریافت کرده است یا نه. این حفره به مهسا کمک میکند تا از پویا بخواهد که تراکنش را دوباره ارسال کند. این در حالی است که تراکنش قبلی با وجود تغییر امضا همچنان معتبر است و مهسا مبلغ را دو بار دریافت میکند.
امضای اشنور برای رفع این مشکل دادههای مربوط به امضا را به بخشی جدا در تراکنشها منتقل میکند؛ ازاینرو، ساختار داده متفاوتی برای راستیآزمایی تراکنشها بهکار میرود که باعث میشود شکلپذیری تراکنش از بین برود.
مزایا و معایب امضای اشنور کدام است؟
در بخشهای پیشین این مقاله که درباره ماهیت امضای اشنور و تفاوت آن با امضای ECDSA بود، به برخی از مزایای امضای اشنور اشاره کردیم. حالا درادامه، میخواهیم مزایا و معایب آن را دقیقتر بررسی کنیم.
مزایا
- افزایش حریم خصوصی: یکی از مزایای امضای اشنور این است که حریم خصوصی را در شبکه ارتقا میدهد. همانطورکه پیشتر گفتیم، امضای اشنور باعث میشود که همه تراکنشها در شبکه مثل تراکنشهای عادی تکامضایی دیده شوند و تراکنشهای چندامضایی و تکامضایی تفاوتی باهم نداشته باشند.
- کاهش کارمزد: امضای اشنور فضای موردنیاز برای تراکنشهای چندامضایی را تا ۲۵درصد کاهش میدهد. بدینترتیب، اندازه تراکنش در داخل بلاک کاهش مییابد و فضای کافی برای گنجاندن تراکنشهای بیشتر در بلاک مهیا میشود. صرفهجویی در فضای بلاک بهنوبه خود کارمزد تراکنش را کاهش میدهد.
- افزایش مقیاسپذیری: دیگر مزیت امضای اشنور که به همان کاهش اندازه تراکنش مربوط میشود، این است که مقیاسپذیری شبکه را افزایش میدهد. اینکه کاهش اندازه تراکنش باعث میشود تعداد تراکنشهای بیشتری در یک بلاک جای گیرد، بدینمعنی است که شبکه امکان پردازش تعداد تراکنش بیشتری دارد.
- افزایش سرعت پردازش تراکنش: کاهش اندازه تراکنش که صرفهجویی در فضای بلاک و افزایش تعداد تراکنشها را بهدنبال دارد، باعث میشود سرعت اعتبارسنجی و تأیید تراکنشها بیشتر شود. ازاینرو، زمان انتظار برای تأیید تراکنش در شبکه کاهش چشمگیری پیدا میکند.
- رفع مشکل شکلپذیری: امضای اشنور مشکل شکلپذیری تراکنش را رفع میکند تا هیچکسی امکان تغییر امضا و تحمیل پرداخت مضاعف به دیگران را نداشته باشد.
- تسهیل اعمال تپروت (Taproot): امضای اشنور یکی از بخشهای ضروریِ بهروزرسانی تپروت در شبکه بیت کوین است. این بهروزرسانی مقیاسپذیری و حریم خصوصی بیت کوین را افزایش داده و قابلیت قراردادهای هوشمند را در این شبکه فعال کرده است.
معایب
- ضرورت تأیید کلید عمومی: درصورت استفاده از امضای اشنور در تراکنشها، هریک از مشارکتکنندگان در تراکنش باید اعتبار کلید عمومی خود را اثبات کند. این کار ازطریق امضایی با کلید خصوصی متناظر همان کلید عمومی انجام میشود.
- امکان جعل کلید عمومی: در امضای اشنور، مشارکتکننده میتواند یک کلید عمومی تقلبی ایجاد کند و از این طریق تراکنشی چندامضایی را در کنترل خود درآورد.
دلیل اهمیت امضای اشنور برای بیت کوین
یکی از رویدادهای مهمی که بیت کوین پس از اعمال سگویت (Segwit) در سال ۲۰۱۷ تجربه کرد، بهروزرسانی تپروت است. تپروت ارتقای سافتفورکی در بلاکچین بیت کوین است که با هدف تقویت حریم خصوصی با ادغام امضاهای چندگانه در یک امضا و فعالسازی قابلیت قراردادهای هوشمند در این شبکه اِعمال شد.
اهمیت امضای اشنور در این است که بهعنوان یکی از پایههای ارتقای تپروت، تسهیلکننده بخش مهمی از اهداف این طرح ارتقا بوده است. از دیدگاه فنی، تپروت ارتقایی است که روی «درخت نحو انتزاعی مرکلیشده» یا Merklized Abstract Syntax Trees (بهاختصار MAST) اِعمال میشود و از حجم دادههای تراکنشها و کارمزد آنها میکاهد.
در تراکنشهایی که با امضاهای چندگانه و قفلهای زمانی سروکار دارند، برای پنهانکردن هویت کاربران باید چندین تراکنش ایجاد شود که به هزینه و حجم داده بیشتر منجر میشود. این هم بهنوبه خود مقیاسپذیری بیت کوین را ازلحاظ تعداد تراکنش در هر ثانیه محدود میکند. طرح ارتقای تپروت این مشکل را ازطریق امضای اشنور حل میکند؛ بدینشکل که همه امضاهای لازم برای تراکنش را در قالب یک امضا اجرا میکند.
تپروت و اشنور مکمل یکدیگر
تپروت و امضای اشنور بهعنوان دو طرحی که مکمل یکدیگر هستند، آغاز عصری جدید برای بیت کوین و دیگر ارزهای دیجیتال بهشمار میروند. الگوریتم امضای اشنور علاوهبر تقویت حریم خصوصی و افزایش مقیاسپذیری شبکه، راه را برای پیشرفتهای آینده بیت کوین نیز هموار میکند. نکته دیگر اینکه توسعهدهندگان بیت کوین آن را در دیگر راهکارها نظیر اتمیک سواپ (Atomic swap) و شبکه لایتنینگ (Lightning Network) نیز میتوانند بهکار گیرند.
جمعبندی
عملکرد اصلی امضای اشنور در شبکه بیت کوین این است که امضاهای چندگانه را ادغام میکند و در قالب یک امضا در تراکنش قرار میدهد. همین قابلیت مزایای متعددی برای شبکه بیت کوین بهارمغان میآورد که تقویت حریم خصوصی کاربران و کاهش کارمزدها و حجم داده تراکنشها بخشی از آن است.
کاهش حجم اشغالی تراکنشها در فضای بلاک خودبهخود باعث افزایش مقیاسپذیری بیت کوین میشود که موضوع مهمی برای این بلاکچین بهشمار میرود. نکته مهم درباره الگوریتم امضای اشنور این است که علاوهبر مزیتهای فعلیاش در بلاکچین، میتواند نقش مهمی در توسعه آینده این ارز دیجیتال ایفا کند.