چنانچه با کیف پول های ارز دیجیتال کار کرده باشید، باید با مفاهیمی مانند کلیدهای خصوصی و عمومی و امضای دیجیتال آشنا باشید. رشته هایی از اعداد و حروف مورد استفاده برای تایید تراکنش ها و هویت فرستنده یا گیرنده. این رشته های شخصیت منحصر به فرد با استفاده از فناوری های رمزنگاری مختلف تولید می شوند که یکی از پیچیده ترین آنها امضای ECDSA است. آشنایی با الگوریتم امضای دیجیتال ECDSA به عنوان پرکاربردترین الگوریتم رمزنگاری در بلاک چین، درک شما را از امنیت تراکنش ها و دارایی های شما در کیف پول های ارز دیجیتال افزایش می دهد. به همین خاطر در این مقاله به بررسی این امضا و تاثیر آن بر امنیت تراکنش و دارایی های کیف پول ارز دیجیتال می پردازیم.
امضای ECDSA چیست؟
همانطور که می دانید در دنیای محاسبات و بلاک چین از فناوری رمزگذاری نامتقارن یا رمزگذاری کلید عمومی (PKC) برای ارسال و دریافت اطلاعات استفاده می شود. این فناوری از یک جفت کلید خصوصی و کلید عمومی برای احراز هویت فرستنده و گیرنده اطلاعات استفاده می کند. فرستنده اطلاعات را با کلید خصوصی خود امضا می کند، می فرستد و ظاهراً رمزگذاری می کند. گیرنده همچنین صحت کلید عمومی فرستنده را تأیید و رمزگشایی می کند.
الگوریتم امضای ECDSA مخفف الگوریتم امضای دیجیتال منحنی بیضوی است؛ یکی از پیچیدهترین روشهای تولید رمزنگاری با کلید عمومی که توانایی تولید جملات کوتاهتر از روشهای دیگر را بدون کاهش امنیت ارائه میدهد. ECDSA ترکیبی از الگوریتم های قدیمی تر منحنی بیضی (ECC) و امضای دیجیتال (DSA) است. این مکانیسم از گروههای چرخهای منحنیهای بیضوی بر روی میدانهای بینهایت برای تولید کدهای خود بهره می برد.
الگوریتم امضای ECDSA گواهی هایی را تولید می کند که در واقع نوعی سند دیجیتالی هستند. این سند حاوی اطلاعاتی درباره مالک کلید خصوصی و صادرکننده گواهی است. یک امضای 256 بیتی ECDSA همان امنیت کدهای RSA 3072 بیتی را دارد. RSA یکی از شناخته شده ترین الگوریتم های رمزنگاری در جهان است.
فرآیند تولید کلید عمومی و خصوصی در الگوریتم ECDSA
مکانیسم ECDSA از لحاظ نظری پیچیده است اما به سادگی می توان آن را شامل مراحل زیر دانست:
- یک منحنی بیضوی را انتخاب کنید.
- انتخاب یک نقطه مبدا به نام G Point توسط یک تابع مولد به نام G Generator.
- یک نقطه تصادفی حاوی اعداد صحیح روی منحنی را به عنوان کلید خصوصی انتخاب کنید.
- ضرب اسکالر مختصات از نقطه کلید خصوصی تا نقطه مبدا G و ایجاد یک نقطه جدید یکسان با کلید عمومی.
به طور خلاصه، فرآیند تولید یک کلید عمومی از یک کلید خصوصی در الگوریتم امضای ECDSA به شرح زیر است:
شماره G * کلید خصوصی = کلید عمومی
واضح است که کلید عمومی از کلید خصوصی گرفته شده است اما برعکس آن درست نیست. در واقع کلید عمومی یک نقطه دو متغیره در منحنی به صورت x,y است. با این حال، یکی از این دو عدد به اضافه یک بیت را می توان به تنهایی فشرده کرد. به همین دلیل طول آن از رمزهای عبور RSA کمتر است. بیت کوین این فشرده سازی را با طرح رمزگذاری Base58 و توابع هش انجام می دهد.
منطق الگوریتم امضای ECDSA بر این فرض استوار است که حدس زدن کلید خصوصی از کلید عمومی به دلیل تعداد زیاد آن بسیار دشوار خواهد بود. این منطق از یک لگاریتم گسسته به نام ECDLP می آید. بنابراین این الگوریتم در عین داشتن کاراکترهای کمتر از امنیت بیشتری برخوردار است. منحنی های بیضوی بسته به مختصات و رفتارشان انواع مختلفی دارند. نام منحنی بلاک چین بیت کوین secp256k1 است. بنابراین با خرید بیت کوین، کلید عمومی شما روی این منحنی رمزگذاری می شود. سپس ماینرها بدون اینکه کلید خصوصی شما را بدانند، تراکنش را تأیید می کنند.
مزایای امضای دیجیتال ECDSA
امضای ECDSA علاوه بر کوتاه کردن طول کدها، مزایای دیگری نیز دارد که مهمترین آنها عبارتند از:
- توانایی تأیید شخص ثالث امضای دیجیتال بدون به خطر انداختن امنیت
- برای هر جفت کلید خصوصی و عمومی یک امضای دیجیتال منحصر به فرد و غیر قابل تکرار ایجاد کنید.
- توانایی تولید کلیدهای عمومی نامحدود.
- تسهیل و تسریع در تایید تراکنش ها و قراردادهای هوشمند.
- کاهش حجم داده های ذخیره شده در بلاک و در نتیجه کاهش هزینه های تراکنش.
- چندین منبع کد پشتیبان مانند Botan، Bouncycastle، Crypto++، Microsoft Crypto API و Open SSL.
- امکان بازیابی کلید عمومی و امضا از پیام امضا شده با افزودن متغیر دیگری به نام v به امضای دیجیتال و تبدیل فرمت آن (به r,s,v). به عنوان مثال، بلاک چین اتریوم از این ویژگی استفاده می کند.
معایب فناوری رمزگذاری امضای ECDSA
با وجود مزایای فراوان امضای دیجیتال ECDSA، این روش رمزگذاری هنوز از RSA محبوبیت کمتری دارد. شاید دلیل اصلی این موضوع تاریخچه RSA باشد اما می توان نقاط ضعفی را نیز برای این روش رمزنگاری در نظر گرفت.
بزرگترین مشکل امضای ECDSA پیچیدگی اجرای آن برای مشاغل کوچک و متوسط است. آنها برای پیاده سازی این مکانیسم در وب سایت ها و اپلیکیشن های خود باید هزینه های زیادی را صرف کنند. هرگونه ضعف در پیاده سازی نیز به بستری برای حملات هکرها تبدیل خواهد شد. هک کلید خصوصی کنسول بازی سونی پلی استیشن 3 در سال 2010 به همین دلیل اتفاق افتاد. در آگوست 2013، هکرها توانستند وجوه قابل توجهی را از حساب کاربران کیف پول بیت کوین اندروید برداشت کنند. این حادثه به دلیل تولید کلید خصوصی توسط مولدهای اعداد تصادفی معیوب ایجاد شد.
همچنین به طور کلی تمامی روش های رمزگذاری از جمله ECDSA در مقایسه با روش های محاسبات کوانتومی سرعت و مقیاس پذیری کمی دارند. البته استفاده از محاسبات کوانتومی در تولید امضای دیجیتال هنوز در مراحل اولیه و آزمایشی خود است.
سایر نقاط ضعف امضای ECDSA عبارتند از:
- کندی فرآیند از تولید کلید خصوصی تا تأیید از طرف گیرنده که می تواند بر سرعت و دشواری استخراج ارز دیجیتال تأثیر منفی بگذارد.
- هزینه اجرای بالا به دلیل سختی آن.
مراحل امضای دیجیتال در ECDSA
پس از تولید کلیدهای خصوصی و عمومی، امضای دیجیتالی فرستنده برای تکمیل تراکنش مورد نیاز است. یک امضای ECDSA از یک جفت اعداد صحیح (r,s) تشکیل شده است. اعداد r و s هر محاسبات پیچیده ریاضی با اعمال توابعی مانند mod n، هش (Hash) و لگاریتم طبیعی (Ln) روی کلیدهای خصوصی و عمومی به دست می آیند.
فرآیند امضای ECDSA با رمزگذاری یک نقطه تصادفی به نام R که فقط دارای مختصات x با استفاده از کلید خصوصی است و هش کردن پیام به عدد s آغاز می شود. عملیات با تبدیل منحنی بیضی انجام می شود و تأیید می کند که کلید خصوصی متعلق به امضا کننده پیام است. از سوی دیگر، تایید کننده امضا، عدد s را به مبدأ R رمزگشایی می کند. این عملیات نیز با استفاده از کلید عمومی، هش پیام و فشرده سازی x با مختصات r انجام می شود.
به طور خلاصه فرستنده، پیام یا فایل را با کلید خصوصی خود و یک هش از فایل امضا می کند که یک شماره منحصر به فرد نشان دهنده فایل است. گیرنده فقط به کلید عمومی خود برای تأیید فایل و تأیید صحت آن نیاز دارد. بنابراین، واضح است که کلید عمومی تنها یک سرنخ برای تایید مبادله است و مالکی ندارد.
جهت کسب اطلاعاتی در زمینه امضای کور، بر روی لینک کلیک کنید.
کاربردهای امضای ECDSA
الگوریتم امضای دیجیتال منحنی بیضوی به دلیل استفاده گسترده از آن در بلاک چین های ارزهای دیجیتال معروف شده است. با این حال، این فناوری آنقدرها هم جدید و نوظهور نیست و حضور آن در دنیای دیجیتال به سال 2005 برمی گردد. در طول سال ها، امضای ECDSA کاربردهای مختلفی پیدا کرده است. مهمترین آنها عبارتند از:
- برنامه های پیام رسان مانند WhatsApp
- تایید واریز و دریافت در کیف پول ارز دیجیتال
- لایه های انتقال و امنیت TLS و SSL در مرورگرهای وب
- رمزگذاری اتصالات در وب سایت های HTTPS
- به محافظت از حریم خصوصی کاربر در برنامه های ارتباطی ناشناس مانند Tor کمک می کند.
برای آشنایی با رمزارزها و آموزش ارز دیجیتال، بر روی لینک کلیک کنید.
تفاوت امضای ECDSA و اشنور چیست؟
یکی از جدی ترین رقبای الگوریتم امضای دیجیتال ECDSA، امضای Schnorr است. الگوریتمی حتی قدیمی تر از RSA که در سال 1991 توسط کلاوس اشنور اختراع شد. امضای Schnorr نیز از رمزنگاری منحنی بیضوی استفاده می کند اما نیاز به محاسبات بسیار کمتر و ساده تری دارد. بنابراین، بسیاری آن را گزینه بهتری برای استفاده در بلاک چین می دانند؛ زیرا خطر افشای کلید خصوصی را به دلیل اجرای معیوب یا ناقص کاهش می دهد. مزایای دیگر الگوریتم Schnorr نسبت به امضای ECDSA عبارتند از:
- کاهش طول و حجم کدهای دیجیتال با حفظ امنیت و سرعت بخشیدن به فرآیند ارسال و تایید اطلاعات
- امکان ترکیب چند امضا در یک امضای معتبر برای مجموعه ای از کلیدها. (این ویژگی کارمزد تراکنش ها را کاهش می دهد و مقیاس پذیری بلاک چین را افزایش می دهد.)
- افزایش حریم خصوصی با نمایش یک آدرس جمعآوری شده برای تراکنشهای چند امضایی به جای نمایش اکثر آدرسها
- کاهش حجم اطلاعات را برای پرداخت های چند امضایی
- عدم امکان تأیید اعتبار امضای اصلاح شده و حذف خطر تغییر پیام ارسال شده
این مزایا باعث شده است که بسیاری اشنور را جایگزین خوبی برای امضای ECDSA بدانند. با این حال، این الگوریتم در کنار RSA حتی قابل قبول تر است. در حال حاضر، بلاک چین هایی مانند Kusama، Ziliqa و Polkadata از Schnorr در میان روش های دیگر استفاده می کنند. بیت کوین، اتریوم، ریپل، کاردانو، لایت کوین، دوج کوین، آوالانچ و بسیاری دیگر از بلاک چین ها همچنان به امضای دیجیتال منحنی بیضوی وفادار هستند.
ECDSA از دیدگاه کاربران ارزهای دیجیتال
صنعت ارزهای دیجیتال اساساً مبتنی بر محاسبات دقیق است. به عنوان یک معامله گر، ماینر یا به طور کلی فعال در این بازار، نیازی به درک این محاسبات دشوار نیست. با این حال، خوب است بدانیم که چگونه این جزئیات فنی می توانند اثرات عینی بر رشد یک ارز دیجیتال و پتانسیل بلاک چین آن داشته باشند. به عنوان مثال، استفاده از امضای ECDSA در یک بلاک چین ممکن است نشان دهنده امنیت بالای آن باشد اما تغییر این الگوریتم به گزینه های پیشرفته تر مانند اشنور، ممکن است فرصتی برای رشد قیمت ارز بومی این بلاک چین فراهم کند.