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

ایجاد سیستم مالی غیرمتمرکز و بی‌نیاز از اعتماد، بیش از هر چیز به اعتماد احتیاج دارد؛ شاید متناقض به نظر برسد اما منظور از بی‌نیاز از اعتماد، عدم نیاز به اعتماد به شخصی ثالث (اعم از فردی، گروه یا دولت) است. برای نیل به چنین هدفی باید فرایندهای در کار به نحوی طراحی شوند که به شکلی قابل اثبات بتوانند امنیت و عدم نشت اطلاعات را تامین کنند. در این راه از علم ریاضی و شاخه رمزنگاری سود می‌جوییم. ممکن بودن مفهوم ارزهای دیجیتال به قدری با رمزنگاری گره خورده است که بی‌‌دلیل نیست که نام «رمزارز» یا Cryptocurrency به این گروه از ارزهای دیجیتال اطلاق می‌شود. امضای اشنور (Schnorr Signature) نوعی سیستم رمزنگاری است که پس از بروزرسانی تپ روت بیت کوین، کاربرد تازه‌ای در حوزه ارزهای دیجیتال پیدا کرده است. در ادامه این مطلب با امضای اشنور، برخی از ویژگی‌های آن و کاربردهای آن در شبکه بیت کوین بیشتر آشنا خواهیم شد. با ادامه این مطلب با میهن بلاکچین همراه باشید.

امضای اشنور چیست؟

ایده مالکیت دیجیتال (در کنار بسیاری دیگر از موارد) با پدید آمدن مفهوم رمزنگاری کلید عمومی-خصوصی توسط دیفی-هلمن در سال ۱۹۷۶ شکل گرفت. این ایده طی سالیان ثابت مانده است هر چند تکنیک‌‌ها و روش تحقق آن روز به روز پیشرفت کرده است. یکی از پیشرفت‌هایی که در اوایل دهه ۹۰ میلادی رخ داد، زاده افکار کلاوس-پیتر اشنور (Claus-Peter Schnorr) است. او که استاد دانشگاه فرانکفورت بود، در مقاله‌ای اصول نوعی طرح شناسایی و امضای دیجیتال را ارائه کرد که با نام خود او معروف شد. او طرح خود را ثبت کرد و با این کار شاید به شکلی ناخواسته سبب شد تا تکنیک بهتر او (نسبت به الگوریتم امضای دیجیتال منحنی بیضوی – ECDSA) مدت‌ها مغفول بماند. گواهی ثبت اختراع و مالکیت معنوی او تا سال ۲۰۰۸ اعتبار داشت. جالب است بدانید که سلف الگوریتم ECDSA – الگوریتم DSA – برای دور زدن گواهی ثبت اختراع اشنور ایجاد شده بود.

یکی از انتخاب‌های مهم پیش روی ساتوشی ناکاموتو در هنگام تدوین مشخصات پروتکل بیت کوین، انتخاب الگوریتم رمزنگاری بود. او ECDSA را برگزید؛ احتمالا بدین دلیل که از پیش استانداردسازی شده بود و به شکل پیش‌فرض توسط کتابخانه OpenSSL که کدهای بیت کوین به شدت به آن وابسته هستند، پشتیبانی می‌شود. نخستین زمزمه‌های گنجاندن امضای اشنور در پروتکل بیت کوین برای نخستین بار در سال ۲۰۱۴ و در فروم بیت کوین تاک مطرح شد. چهار سال بعد و در سال ۲۹۱۸، اولین پیش‌نویس برای گنجاندن این امضا توسط پیتر وویل (Pieter Wuille) تهیه شد. در سال ۲۰۲۰، این پیشنهاد با نام BIP-340 رسمیت یافت و در نهایت در سال ۲۰۲۱ به عنوان یکی از تغییرات بروزرسانی موسوم به تپ روت اجرایی شد.

اما امضای اشنور چیست؟

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

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

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

فرض کنید پارامترهای زیر موجودند: p, q, a, s, v, r, x و y

p می‌تواند هر عدد اولی باشد. q مقسوم علیه p-1 است (فاکتور آن است) و a بخ نحوی انتخاب شده است که a^q بر p باقی‌مانده یک (modulo) داشته باشد (a^q = 1 mod p).

سه پارامتر بالا، عمومی هستند و همه می‌‌توانند از مقادیر آن اطلاع داشته باشند. حال دو مقدار زیر را داریم:

s که کلید خصوصی است (مقدار s بین صفر و q است) و v که کلید عمومی با مقدار a^-s mod q است. v (یا همان کلید عمومی) عمومی است اما تنها فرد الف از s مطلع است. حال اگر او بخواهد پیغام M را ارسال نماید،‌باید مراحل زیر را انجام دهد:

  • ابتدا باید عدد تصادفی r را برگزیند به نحوی مقدار r بین صفر تا q باشد.
  • سپس مقدار X را به شکلی محاسبه نماید که X = a^r mod p
  • حال که مقدار X را محاسبه نمود، آن را به پیام الحاق می‌کند (مشابه الحاق رشته‌ای در برنامه‌نویسی).

پس از الحاق X با M ( با علامت X || M)، این دو را به عنوان ورودی به تابع هش می‌فرستد و خروجی را با نام e ذخیره می‌کند.

e = H(M||X) که در آن H() تابع هش است.

  • حال مقدار y را به شکل روبرو محاسبه می‌کند: y = (r + s*e) mod q

حال که تمامی محاسبات به پایان رسید، فرد الف دو مورد زیر را به گیرنده ارسال می‌‌کند:

  • پیغام M
  • امضاهای e و y

حال بیایید بررسی کنیم که فرد ب چه اطلاعاتی در دسترس دارد:

  • او کلید عمومی (v) فرد الف را دارد.
  • عدد اول p را می‌داند.
  • q که فاکتور p-1 است.
  • همچنین از مقدار a نیز باخبر است.

فرد ب اکنون مقدار Z را بدین ترتیب محاسبه می‌‌کند:

Z = a^y * v^e mod p

از طرفی می‌دانیم که v = a^-s است. بیایید آن را در معادله جایگذاری کنیم:

Z = a^y * a^-se = a^ (y-s*e)

همچنین می‌دانیم که y = r + s*e است که بدین معنی است که r = y-s*e

حال اگر این مقدار را نیز جایگذاری کنیم، خواهیم داشت:

Z = a^r

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

بنابراین این چنین ثابت شد تنها راهی که فرد الف می‌توانست به چنین خروجی برسد، با در اختیار داشتن کلید خصوصی صحیح است. با این روش وی می‌تواند بدون افشای کلید خصوصی، عاملیت خود را در فرستادن پیغام (و یا هویت خود را) اثبات کند. حال در بلاک چین، پیغام M می‌تواند تراکنش خرج نشده رمز شده با کلید عمومی باشد.این چنین تنها دارنده کلید خصوصی می‌تواند آن تراکنش را خرج کند و نودها بدون اطلاع از محتوای کلید خصوصی، می‌توانند از صحت آن اطمینان حاصل کنند.

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

همان‌طور که اشاره شد، با طرح BIP-340، امضای اشنور برای استفاده در پروتکل بیت کوین استانداردسازی شد. طبق این طرح، ویژگی‌هایی که توسعه‌دهندگان – پیتر وویل، جوناس نیک (Jonas Nick) و تیم روفینگ (Tim Ruffing) – را بر آن داشت تا این امضا را پیشنهاد کنند، به شرح زیر است:

  • امنیت قابل اثبات: امضای اشنور به شکل قابل اثباتی امن است. به شکل دقیق‌تر این امضا در برابر حمله SUF-CMA – به شدت غیرقابل خدشه در برابر حمله پیام انتخاب شده – مقاوم است.
  • چکش‌خوار نبودن: یکی از پیامدهای ویژگی قبلی، چکش‌خوار نبودن امضای اشنور است در حالی که امضاهای منحنی بیضوی به شکل ذاتی چکش‌خوار هستند؛ بدین معنی که شخص ثالث می‌تواند بدون دسترسی به کلید خصوصی، با دستکاری یک امضای معتبر برای یک کلید عمومی و پیغام مشخص، آن را به امضایی دیگر که برای همان پیغام و کلید معتبر است، تبدیل کند.
  • خطی بودن: در فرایند تایید و ساخت امضاهای اشنور خبری از تقسیم نیست که قابلیت ضمنی آن، افزودن خاصیت بسیار مهم خطی بودن به این طرح امضا است. خطی بودن سلل می‌شود که صاحبان چندین کلید عمومی بتوانند از کلیدهای عمومی خود کلیدی مشترک تهیه کنند که مجموع کلیدهای آن‌هاست. این ویژگی سنگ‌بنای ویژگی‌های سطح بالاتری همچون حفظ امنیت در پرداخت‌های چند امضایی و قراردادهای هوشمند است.

همچنین پس از استانداردسازی، این امضا خصوصیات مثبت دیگری نیز پیدا کرده است. برای مثال، طول ثابت و کوتاه (۶۴ بایتی) آن در قیاس با امضاهای ECDSA (بین ۷۰ تا ۷۲ بایت)، سبب کاهش اتلاف در فضای بلوک و افزایش نرخ تراکنش می‌شود (برخی بررسی‌ها خبر از این می‌دهند که با جایگزینی امضای اشنور، این متریک تا ۲ درصد بهبود می‌یابد).

یکی از ویژگی‌های ناخوشایند امضای ECDSA این است که نمی‌توان مجموعه‌ای از آن را به شکلی سریع‌تر از امضای تک صحت‌سنجی کرد در حالی که با تجمیع امضاهای اشنور می‌توان به شکلی سریع‌تر و بهینه‌تر آن‌ها را صحت‌سنجی کرد. همچنین کلیدهای عمومی ساخته شده از اشنور به جای ۳۳ بایت رایج، ۳۲ بایت فضا اشغال می‌نمایند.

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

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

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

جمع‌بندی

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

شما تا چه حد به امنیت و رمزنگاری اهمیت می‌دهید؟ دیدگاه‌های خود را با ما در میان بگذارید.

نظر شما !!