Quantcast
Channel: آموزش بیت کوین - ارزدیجیتال
Viewing all articles
Browse latest Browse all 27

امضای اشنور (Schnorr Signature)؛ نسل جدید امضاهای رمزنگاری‌شده

$
0
0

امضای اشنور

فرض کنید که می‌خواهید از حساب خود در بانک مبلغی را برداشت یا چکی را در وجه کسی صادر کنید. برای اجرایی‌شدن چنین درخواستی، نیاز است که اثبات کنید این درخواست را مالک واقعی دارایی ارائه داده است. این کار با امضا انجام می‌شود. در دنیای ارزهای دیجیتال نیز، مالکیت افراد بر دارایی‌های دیجیتال آن‌ها با امضا اثبات می‌شود؛ اما این امضاها از نوع دیجیتال هستند و یکی از انواع آن‌ها امضای اشنور (Schnorr Signature) است.

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

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

نسل جدید امضاهای رمزنگاری‌شده
امضای دیجیتال تأیید می‌کند که تراکنش را مالک واقعی کیف پول انجام می‌دهد

امضای اشنور (Schnorr Signature) چیست؟

در واقع، امضای اشنور امضایی دیجیتال است که بر‌اساس الگوریتم اشنور طراحی شده است. سال‌ها پیش از آنکه بیت کوین پا به عرصه بگذارد، رمزنگار آلمانی، کلاوس اشنور (Claus Schnorr)، این الگوریتم را طراحی کرد. بااین‌حال، زمانی‌که ساتوشی ناکاموتو در حال طراحی بیت کوین بود، به امضای اشنور توجهی نشان نداد و از الگوریتم دیگری برای امضای تراکنش‌های بیت کوین استفاده کرد.

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

شایان ذکر است که تراکنش‌های بیت کوین بدون امضا اجرا نمی‌شوند و البته این امضا بخشی از فضای بلاک را نیز ازآنِ خود می‌کند. این مسئله در تراکنش‌هایی که بیت کوین را از آدرسی به آدرس دیگر انتقال می‌دهند، مشکلی ایجاد نمی‌کند؛ بلکه مشکل در تراکنش‌هایی است که در آن‌ها انتقال از چند آدرس به یک آدرس انجام می‌شود.

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

امضای اشنور چگونه کار می‌کند؟

امضای اشنور؛ تبدیل چند امضا به یک امضا
امضای اشنور چند امضا را در یک امضا ادغام می‌کند

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

سیستم بیت کوین از امضای دیجیتالی با نام ECDSA برای اثبات مالکیت کاربران بر مقدار بیت کوین انتقالی استفاده می‌کند. هر‌بار که کاربری می‌خواهد تراکنشی را اجرا کند، باید امضایی فراهم کند که مالکیتش را بر بیت کوین انتقالی تأیید کند. در هر تراکنش، بخشی وجود دارد که نحوه خرج‌کردن ورودی تراکنش را مشخص می‌کند و می‌تواند شرایطی نظیر قفل زمانی (Time Lock) یا تعداد امضاها را مشخص کند.

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

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

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

تفاوت امضای اشنور با ECDSA

شکل‌ناپذیری امضای اشنور
امضای اشنور شکل‌پذیر نیست و نمی‌توان آن را تغییر داد

همان‌طورکه گفتیم، بیت کوین در‌حال‌حاضر از امضای ECDSA مخفف عبارت Elliptic Curve Digital Signature Algorithm به‌معنای «الگوریتم امضای دیجیتال منحنی بیضوی (بیضی‌گون)» استفاده می‌کند. اگر بخواهیم وارد مباحث فنی نشویم، ECDSA به‌طور‌خلاصه امضایی دیجیتالی است که با استفاده از الگوریتمی موسوم به منحنی بیضوی (Elliptic Curve)، پیام‌های رمزگذاری‌شده می‌سازد.

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

تفاوت در حجم فایل

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

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

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

همچنین، ازآن‌جا‌که حجم داده ارسالی به شبکه کمتر است، کاربران کارمزد تراکنش کمتری می‌پردازند؛ زیرا فضای اشغال‌شده در بلاک هم در تعیین کارمزد تراکنش مؤثر است. علاوه‌بر‌این، وقتی حجم داده‌های بلاک کاهش یابد، فضای بیشتری باقی می‌ماند و می‌توان تراکنش‌های بیشتری را در هر بلاک جا داد.

تفاوت در شکل‌پذیری

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

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

به‌عنوان مثال، فرض کنید پویا مقداری بیت کوین را با امضای ABC برای مهسا ارسال می‌کند. اگر این امضا در حمله شکل‌پذیری (Malleability Attack) به ABZ تغییر کند، پویا دیگر نمی‌تواند مطمئن شود که مهسا بیت کوین ارسالی را دریافت کرده است یا نه. این حفره‌ به مهسا کمک می‌کند تا از پویا بخواهد که تراکنش را دوباره ارسال کند. این در حالی است که تراکنش قبلی با وجود تغییر امضا همچنان معتبر است و مهسا مبلغ را دو بار دریافت می‌کند.

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

مزایا و معایب امضای اشنور

مزایا و معایب امضای اشنور

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

مزایا

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

۲. کاهش کارمزد: امضای اشنور فضای موردنیاز برای تراکنش‌های چندامضایی را تا ۲۵‌درصد کاهش می‌دهد. بدین‌ترتیب، اندازه تراکنش در داخل بلاک کاهش می‌یابد و فضای کافی برای گنجاندن تراکنش‌های بیشتر در بلاک مهیا می‌شود. صرفه‌جویی در فضای بلاک به‌نوبه خود کارمزد تراکنش را کاهش می‌دهد.

۳. افزایش مقیاس‌پذیری: دیگر مزیت امضای اشنور که به همان کاهش اندازه تراکنش مربوط می‌شود، این است که مقیاس‌پذیری شبکه را افزایش می‌دهد. اینکه کاهش اندازه تراکنش باعث می‌شود تعداد تراکنش‌های بیشتری در یک بلاک جای گیرد، بدین‌معنی است که شبکه امکان پردازش تعداد تراکنش بیشتری دارد.

۴. افزایش سرعت پردازش تراکنش: کاهش اندازه تراکنش که صرفه‌جویی در فضای بلاک و افزایش تعداد تراکنش‌ها را به‌دنبال دارد، باعث می‌شود که سرعت اعتبارسنجی و تأیید تراکنش‌ها بیشتر شود. ازاین‌رو، زمان انتظار برای تأیید تراکنش در شبکه کاهش چشمگیری پیدا می‌کند.

۵. رفع مشکل شکل‌پذیری: امضای اشنور مشکل شکل‌پذیری تراکنش را رفع می‌کند تا هیچ‌کسی امکان تغییر امضا و تحمیل پرداخت مضاعف به دیگران را نداشته باشد.

۶. تسهیل اعمال تپروت (Taproot): امضای اشنور یکی از بخش‌های ضروریِ به‌روزرسانی تپروت در شبکه بیت کوین است. این به‌روزرسانی مقیاس‌پذیری و حریم خصوصی بیت کوین را افزایش داده و قابلیت قراردادهای هوشمند را در این شبکه فعال کرده است.

معایب

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

۲. امکان جعل کلید عمومی: در امضای اشنور، مشارکت‌کننده می‌تواند یک کلید عمومی تقلبی ایجاد کند و از این طریق تراکنشی چندامضایی را در کنترل خود درآورد.

دلیل اهمیت امضای اشنور برای بیت کوین

یکی از رویدادهای مهمی که بیت کوین پس از اِعمال سگویت (Segwit) در سال ۲۰۱۷ تجربه کرد، به‌روزرسانی تپروت است. تپروت ارتقای سافت فورکی در بلاک چین بیت کوین است که با هدف تقویت حریم خصوصی با ادغام امضاهای چندگانه در یک امضا و فعال‌سازی قابلیت قراردادهای هوشمند در این شبکه اعمال شد.

اهمیت امضای اشنور در این است که به‌عنوان یکی از پایه‌های ارتقای تپروت، تسهیل‌کننده بخش مهمی از اهداف این طرح ارتقا بوده است. از دیدگاه فنی، تپروت ارتقایی است که روی «درخت نحو انتزاعی مرکلی‌شده» یا Merklized Abstract Syntax Trees (به‌اختصار MAST) اِعمال می‌شود و از حجم داده‌های تراکنش‌ها و کارمزد آن‌ها می‌کاهد.

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

تپروت و امضای اشنور به‌عنوان دو طرحی که مکمل یکدیگر هستند، آغاز عصری جدید برای بیت کوین و دیگر ارزهای دیجیتال به‌شمار می‌روند. الگوریتم امضای اشنور علاوه‌بر تقویت حریم خصوصی و افزایش مقیاس‌پذیری شبکه، راه را برای پیشرفت‌های آینده بیت کوین نیز هموار می‌کند. نکته دیگر اینکه توسعه‌دهندگان بیت کوین آن را در دیگر راهکارها نظیر اتمیک سواپ (Atomic swap) و شبکه لایتنینگ (Lightning Network) نیز می‌توانند به‌کار گیرند.

جمع‌بندی

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

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

The post امضای اشنور (Schnorr Signature)؛ نسل جدید امضاهای رمزنگاری‌شده appeared first on ارزدیجیتال.


Viewing all articles
Browse latest Browse all 27

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>