امضاهای کتبی حداقل از قرن هفدهم برای تأیید اسناد مورد استفاده قرار میگرفتند. امروزه از امضاهای کتبی در انواع بیشماری از قراردادها از قراردادهای کاری و رسید کارتهای اعتباری گرفته تا معاهدات بینالمللی استفاده میشود. اما عصر دیجیتال راههای جدیدی را برای برقراری ارتباط ایجاد کرده است که دیگر محدود به کاغذ و صندوقهای پستی فیزیکی نیست. شاید مهمترین سؤالی که در رابطه با این موضوع پیش میآید این باشد که چگونه میتوانیم پیامهای دیجیتال را تأیید کنیم؟ در پاسخ به این سؤال باید گفت که راهحل این موضوع در امضای دیجیتال است. در این مقاله قصد داریم تا شما را با مفهوم امضای دیجیتال آشنا کرده و به شما در درک بهتر نقش آن در فناوری بلاکچین کمک کنیم.
امضای دیجیتال چگونه کار میکند؟
همانطور که امضای مکتوب، شخص را به یک سند خاص گره میزند، امضای دیجیتال نیز به صورت رمزنگاری هویت یک شخص را به یک پیام مرتبط میکند. در روشی که رمزنگاری کلید عمومی (Public Key Cryptography) نامیده میشود، کاربران، یک کلید عمومی و یک کلید خصوصی دارند که با هم یک جفت را تشکیل میدهند. در واقع، رمزنگاری کلید عمومی از رمزگذاری برای تضمین امنیت و محافظت از اطلاعات حساس استفاده میکند. به همین دلیل، جعل امضای دیجیتال تقریباً غیرممکن است چرا که این امضا مبتنی بر نظریه اعداد است.
کلید عمومی نشاندهنده هویت مالک است اما کلید خصوصی مخفی بوده و به افراد اجازه میدهد تا ثابت کنند که مالک کلید عمومی هستند. فرض کنید آلیس میخواهد یک پیام رمزگذاری شده را برای باب بفرستد. هر کسی میتواند کلید عمومی باب را ببیند، بنابراین آلیس میتواند از آن در الگوریتمی استفاده کند که پیام او را رمزگذاری میکند. از طرف دیگر، ناظران میتوانند پیام رمزگذاری شده را ببینند یا رهگیری کنند، اما نمیتوانند آن را بدون کلید خصوصی باب، که فقط او میداند، رمزگشایی کنند. بنابراین آلیس میتواند مطمئن شود که هیچ کس جز باب نمیتواند پیام را ببیند مگر اینکه کلید خصوصی او را داشته باشد.
برای امضای دیجیتال، عملیات برعکس است. به جای انجام محاسبات اولیه با یک کلید عمومی، آلیس از کلید خصوصی خود در الگوریتم امضا استفاده میکند تا یک امضا را به پیام و کلید عمومی خود پیوند دهد. واقعیت این است که هیچ کس نمیتواند کلید خصوصی آلیس را استخراج کرده یا یک امضای معتبر برای او جعل کند. با این حال، هر کسی که کلید عمومی آلیس را میداند میتواند به راحتی تأیید کند که پیام توسط کلید خصوصی او امضا شده است.
نقش امضای دیجیتال در فناوری بلاکچین
امضای دیجیتال یکی از بخشهای مهم یک شبکه بلاکچینی است که عمدتاً از آن برای احراز هویت تراکنشها استفاده میشود. هنگامی که کاربران تراکنشهایی را ارسال میکنند، باید به هر نود در سیستم ثابت کنند که مجاز به خرج کردن آن وجه هستند. هر نود، تراکنش ارسال شده را تأیید کرده و بر کار نودهای دیگر نظارت میکند.
اگر آلیس بخواهد برای باب، ۱ بیتکوین بفرستد، باید تراکنشی را امضا کند که یک بیتکوین ورودی را با کلید خصوصی خود امضا کرده و آن را به نودهای شبکه ارسال کند. ماینرها که کلید عمومی او را میدانند، شرایط تراکنش را بررسی کرده و امضا او را تأیید میکنند. پس از تأیید اعتبار، بلوک حاوی آن تراکنش توسط اعتبارسنجها نهایی میشود.
دوره آموزش اندیکاتور ایچیموکو ارز دیجیتال
امضاهای رایج در بلاکچین
رمزنگاری، متکی بر برخی مسائل ریاضی میباشد که حل آنها دشوار است. به عنوان مثال، الگوریتم RSA، یکی از اولین سیستمهای رمزنگاری کلید عمومی میباشد که فرض میکند، تعیین دو عدد اول بزرگ، دشوار است.
ECDSA
الگوریتم امضای دیجیتال منحنی بیضی (ECDSA) به عنوان امضای فعلی بیتکوین شناخته میشود. این امضا از کلیدهای کوتاهتری استفاده کرده و نیاز به محاسبات کمتری نسبت به سیستم RSA دارد و امنیت بالاتری در شبکه به وجود میآورد. ECDSA از «منحنیهای بیضوی» استفاده میکند. در واقع، این منحنیها، گروه محدودی از نقاط روی یک منحنی هستند که در آن، انجام برخی عملیات در یک جهت آسان و در جهت دیگر دشوار است. ECSDA، به جای دشواری فاکتورگیری اعداد اول، بر موضوع لگاریتم گسسته متکی است. موضوع به شرح زیر است:
فرض کنید، a، b و c اعداد صحیح هستند. بهطوریکه a^b = c. اگر c و a به شما داده شود، پیدا کردن b در صورتیکه عدد بزرگی باشد، دشوار است. اکنون این معادله را برای یک گروه منحنی بیضوی اعمال کنید و Q = nP را محاسبه کنید، که در آن n مقداری صحیح، P یک نقطه روی منحنی و Q نتیجه عملیات است. در منحنیهای بیضوی، محاسبه Q با n و P آسان میباشد، اما یافتن n با توجه به P و Q دشوار است. در رمزنگاری، این موضوع با عنوان «موضوع لگاریتم گسسته منحنی بیضوی» شناخته میشود.
الگوریتم ECDSA برای تولید امضاهایی که جعل آنها دشوار و تأیید آنها آسان است، ایجاد شده است. بهتر است بدانید که بیتکوین از منحنی خاصی به نام «secp256k1» استفاده میکند که توسط آژانس دولتی ایالات متحده، مؤسسه ملی استاندارد و فناوری (NIST) استانداردسازی شده است.
اگرچه اندازههای کلید ECDSA نسبتاً کوتاه است و به همین دلیل، کارایی محاسباتی بهتری نسبت به RSA دارد اما پیادهسازی آن ضعیفتر است. علاوه بر این، مهمترین مشکل بیتکوین با اجرای ECDSA این بود که در آن، شناسه تراکنش را میتوان با تغییر امضای آن تغییر داد که این مشکل توسط فرآیندی به نام SegWit برطرف شده است.
SCHNORR Signatures (BITCOIN)
در طول سالها، ECDSA خدمات خوبی به بیتکوین ارائه کرده است. اما این امضا، فاقد یک ویژگی کلیدی است. در این روش، هیچ راه کارآمدی برای فشردهسازی و تأیید امضاها با هم وجود ندارد. به همین دلیل، اخیراً فشارهایی برای تغییر ECDSA به یک طرح جدید برای بهبود مقیاسپذیری، کارایی و حریم خصوصی با نام امضای Schnorr به وجود آمده است. Schnorr یک امضای ظریف است که در سال ۱۹۸۸ توسط Claus-Peter Schnorr پیشنهاد شد و تا سال ۲۰۰۸ به ثبت رسید. از آنجایی که Schnorr در طی سالهای اخیر به طور گسترده پذیرفته یا استانداردسازی نشده بود، ساتوشی ناکاموتو بنیانگذار بیتکوین از ECDSA استفاده کرد.
امضاهای Schnorr با استفاده از رمزنگاری استاندارد و خطی بودن موجب ایجاد امنیت خوبی در شبکه میشوند. خطی بودن، امضاکنندگان یک تراکنش چند امضایی را قادر میسازد تا کلیدهای عمومی خود را در یک کلید تجمیع شده، ترکیب کنند. عملکرد Multi-Sig بومی بیتکوین نیست و به طور سنتی به اسکریپتهای Pay-to-Script-Hash (P2SH) محدود میشود که در آن، همه طرفها باید کلیدهای عمومی و امضاهای خود را در یک تراکنش ارسال کنند. در این تراکنشها، ناظران زمان انجام یک تراکنش چندامضایی و شرکتکنندگان حاضر در آن را تشخیص میدهند.
در مقابل، امضاهای Schnorr به شرکتکنندگان کمک میکند تا با تجمیع کلیدهای عمومی خود در یک امضای مجزا و غیرقابل تشخیص از یک امضای معمولی، پنهان شوند. این کار، باعث کاهش بار بلوک و افزایش حریم خصوصی میشود، تکنیکی که اسکریپتهای پیچیده را از تراکنشهای معمولی متمایز نمیکند.
جالب است بدانید که تراکنشهای بیتکوین اغلب ورودیهای زیادی دارند و هر کدام به امضای دیجیتال جداگانه نیاز دارند و در نتیجه، این امضاها، فضای زیادی را در یک بلوک اشغال میکنند. امضاهای Schnorr موجب تجمیع امضاهای منفرد شده و در نتیجه با کمک این امضای دیجیتال، میتوان همه ورودیها را با یک امضا تأیید کرد. این امر فضای بیشتری را برای دادههای تراکنش در بلوکها باقی میگذارد و برآورد میشود که ظرفیت هر بلوک را به میزان ۲۰ تا ۴۰ درصد افزایش میدهد.
امضاهای BLS (ETH2)
زنجیره فعلی اتریوم همانند بیتکوین از ECDSA استفاده میکند. با این حال، زمانی که اتریوم به صورت کامل به Proof of Stake منتقل میشود، ECDSA دیگر از الزامات اعتبارسنجی آن پشتیبانی نمیکند. زنجیره اتریوم ۲، شامل هزاران اعتبارسنج در کمیتههای مختلف است که هر کدام باید هزاران امضا را در مدت زمان کوتاهی تولید کنند. به عنوان مثال، فرض کنید ۶۴ کمیته در هر بلوک وجود دارد و هر کمیته دارای ۲۰۴۸ اعتبار سنج است. بنابراین ۱۳۱۰۷۲ (۲۰۴۸*۶۴) امضا باید در هر بلوک (۱۲ ثانیه) محاسبه و تأیید شود. بنابراین وجود یک امضای کارآمد در اتریوم ۲ به وضوح مورد نیاز است. به همین دلیل اتریوم ۲، قصد دارد از امضاهای BLS (Boneh-Lynn-Sacham) استفاده کند.
بسیاری از بلاکچینهای جدیدتر (که بیشتر آنها Proof of Stake هستند) نیز در تلاش هستند تا از امضای BLS استفاده کنند. به عنوان مثال، پولکادات، قصد دارد از BLS برای اعتبارسنجی GRANDPA، به روشی مشابه اتریوم ۲ استفاده کند. حتی Grin، یک بلاکچین اثبات کار حفظ حریم خصوصی، امضاهای BLS را به عنوان راهی برای کاهش بار تراکنشها و عملکرد آسانتر مورد بررسی قرار داده است.
جمعبندی
در دنیایی که هر ماینر یا اعتبارسنجی باید هر امضایی را تأیید کند، فناوری بلاکچین بدون وجود ایده و طرحهای مناسب برای امضای دیجیتال نمیتواند عملکرد قابل قبولی را در سطح جهانی داشته باشد. بهطورکلی، هر طرحی، پیامدهای خاص خود را بر روی عملکرد بلاکچین خواهد داشت. بنابراین انتخاب امضای مناسب، نقش مهمی در توسعه یک پروتکل دارد.
بهبود اندازه امضا، زمان تأیید یا امنیت در شبکههای بلاکچینی دائماً در حال انجام است. اگر مزایا قانعکننده باشد، یک طرح میتواند دوامپذیرتر از دیگری باشد. به عنوان مثال، امضاهای BLS تا چند سال گذشته به ندرت مورد استفاده قرار میگرفتند اما هنگامیکه مقالاتی در رابطه با بهبود کارایی آنها در پروتکلهای بلاکچینی منتشر شد، تیمهای توسعهدهنده بیشتری به سمت آن روی آوردند.
امضاهایی که در این مقاله مورد بحث قرار گرفتند، دهههاست که وجود داشتند و احتمالاً در آینده نیز وجود خواهند داشت. با این حال، احتمالاً آنها با طرحهای توسعه یافته از تحقیقاتی که امروزه در حال انجام هستند، جایگزین میشوند. از آنجا که رمزنگاری با برخی از حساسترین اطلاعات در فناوری بلاکچین سروکار دارد، ضروری است که این طرحها تا حد امکان به طور کامل بررسی شوند. به همین دلیل است که پذیرش یک طرح امضای دیجیتال ممکن است دههها طول بکشد و این نشاندهنده اهمیت این موضوع در فناوری بلاکچین است.