امضای دیجیتال چیست؟ امضا های کتبی حداقل از قرن هفدهم برای تأیید اسناد مورد استفاده قرار می گرفتند. امروزه از امضاهای کتبی در انواع بی شماری از قراردادها از قراردادهای کاری و رسید کارت های اعتباری گرفته تا معاهدات بین المللی استفاده می شود. اما عصر دیجیتال راه های جدیدی را برای برقراری ارتباط ایجاد کرده است که دیگر محدود به کاغذ و صندوق های پستی فیزیکی نیست.
شاید مهم ترین سؤالی که در رابطه با این موضوع پیش می آید این باشد که چگونه می توانیم پیام های دیجیتال را تأیید کنیم؟ در پاسخ به این سؤال باید گفت که راه حل این موضوع در امضای دیجیتال است. در این مقاله قصد داریم تا شما را با مفهوم امضای دیجیتال آشنا کرده و به شما در درک بهتر نقش آن در فناوری بلاکچین کمک کنیم.
امضای دیجیتال چگونه کار می کند؟
همانطور که امضای مکتوب، شخص را به یک سند خاص گره می زند، امضای دیجیتال نیز به صورت رمزنگاری هویت یک شخص را به یک پیام مرتبط می کند. در روشی که رمزنگاری کلید عمومی (مقاله ” کلید عمومی (Public Key) چیست؟ ” را مطالعه نمایید ) نامیده می شود، کاربران، یک کلید عمومی و یک کلید خصوصی دارند که با هم یک جفت را تشکیل می دهند. در واقع، رمزنگاری کلید عمومی از رمزگذاری برای تضمین امنیت و محافظت از اطلاعات حساس استفاده می کند. به همین دلیل، جعل امضای دیجیتال تقریباً غیرممکن است چرا که این امضا مبتنی بر نظریه اعداد است.
کلید عمومی نشان دهنده هویت مالک است اما کلید خصوصی مخفی بوده و به افراد اجازه می دهد تا ثابت کنند که مالک کلید عمومی هستند. فرض کنید آلیس می خواهد یک پیام رمزگذاری شده را برای باب بفرستد. هر کسی می تواند کلید عمومی باب را ببیند، بنابراین آلیس می تواند از آن در الگوریتمی استفاده کند که پیام او را رمزگذاری می کند.
از طرف دیگر، ناظران می توانند پیام رمزگذاری شده را ببینند یا رهگیری کنند، اما نمی توانند آن را بدون کلید خصوصی باب، که فقط او می داند، رمزگشایی کنند. بنابراین آلیس می تواند مطمئن شود که هیچ کس جز باب نمی تواند پیام را ببیند مگر اینکه کلید خصوصی او را داشته باشد.
برای امضای دیجیتال، عملیات برعکس است. به جای انجام محاسبات اولیه با یک کلید عمومی، آلیس از کلید خصوصی خود در الگوریتم امضا استفاده می کند تا یک امضا را به پیام و کلید عمومی خود پیوند دهد. واقعیت این است که هیچ کس نمی تواند کلید خصوصی آلیس را استخراج کرده یا یک امضای معتبر برای او جعل کند. با این حال، هر کسی که کلید عمومی آلیس را می داند می تواند به راحتی تأیید کند که پیام توسط کلید خصوصی او امضا شده است.
نقش امضای دیجیتال در فناوری بلاکچین
امضای دیجیتال یکی از بخش های مهم یک شبکه بلاکچینی است که عمدتاً از آن برای احراز هویت تراکنش ها استفاده می شود. هنگامی که کاربران تراکنش هایی را ارسال می کنند، باید به هر نود در سیستم ثابت کنند که مجاز به خرج کردن آن وجه هستند. هر نود، تراکنش ارسال شده را تأیید کرده و بر کار نودهای دیگر نظارت می کند.
اگر آلیس بخواهد برای باب، ۱ بیتکوین بفرستد، باید تراکنشی را امضا کند که یک بیتکوین ورودی را با کلید خصوصی خود امضا کرده و آن را به نودهای شبکه ارسال کند. ماینرها که کلید عمومی او را می دانند، شرایط تراکنش را بررسی کرده و امضا او را تأیید می کنند. پس از تأیید اعتبار، بلوک حاوی آن تراکنش توسط اعتبارسنج ها نهایی می شود.
دوره آموزش اندیکاتور ایچیموکو ارز دیجیتال
امضا های رایج در بلاکچین
رمزنگاری، متکی بر برخی مسائل ریاضی می باشد که حل آن ها دشوار است. به عنوان مثال، الگوریتم 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 تا چند سال گذشته به ندرت مورد استفاده قرار می گرفتند اما هنگامی که مقالاتی در رابطه با بهبود کارایی آن ها در پروتکل های بلاکچینی منتشر شد، تیم های توسعه دهنده بیشتری به سمت آن روی آوردند.
امضاهایی که در این مقاله مورد بحث قرار گرفتند، دهه هاست که وجود داشتند و احتمالاً در آینده نیز وجود خواهند داشت. با این حال، احتمالاً آن ها با طرح های توسعه یافته از تحقیقاتی که امروزه در حال انجام هستند، جایگزین می شوند. از آنجا که رمزنگاری با برخی از حساس ترین اطلاعات در فناوری بلاکچین سروکار دارد، ضروری است که این طرح ها تا حد امکان به طور کامل بررسی شوند. به همین دلیل است که پذیرش یک طرح امضای دیجیتال ممکن است دهه ها طول بکشد و این نشان دهنده اهمیت این موضوع در فناوری بلاکچین است.