الگوریتم امضای دیجیتال منحنی بیضوی (ECDSA) چگونه کلید خصوصی بیتکوین را میسازد و تایید میکند؟
بیتکوین برای تولید کلیدهای عمومی از کلیدهای خصوصی ۲۵۶ بیتی، بر ریاضیات منحنی بیضوی secp256k1 تکیه دارد. پروتکل ECDSA تضمین میکند که تراکنشها میتوانند بدون افشای عدد صحیح خصوصی پایه، بهطور امن تایید شوند.
به قلم بهنام کاظمی
این خبر را به اشتراک بگذارید
- رمزنگاران
- بر قطعیت ریاضی مسئله لگاریتم گسسته و مزایای خاص کارایی منحنی کوبلیتز secp256k1 تمرکز دارند.
- توسعهدهندگان بلاکچین
- اجرای عملی ECDSA را برای امضای تراکنش، تولید اعداد تصادفی یکبار مصرف و تایید شبکه در اولویت قرار میدهند.
- تولیدکنندگان کیفپول سختافزاری
- بر امنیت فیزیکی کلید خصوصی ۲۵۶ بیتی و ایزوله بودن محیط امضا تاکید میکنند.
دیدگاههایی که این گزارش پوشش نداده
- پژوهشگران رایانش کوانتومی که تهدیدهای آینده علیه رمزنگاری ۲۵۶ بیتی را مدلسازی میکنند
پرسشهای متداول
آیا میتوان از کلید عمومی بیتکوین برای یافتن کلید خصوصی استفاده کرد؟
خیر. الگوریتم ECDSA بر یک تابع تلهدر (trapdoor) تکیه دارد که در آن ضرب منحنی بیضوی به راحتی انجام میشود اما معکوس کردن آن با استفاده از رایانش کلاسیک عملاً غیرممکن است.
چرا بیتکوین به جای سایر منحنیها از secp256k1 استفاده میکند؟
این منحنی یک مزیت ۳۰ درصدی در کارایی تایید ارائه میدهد و از پارامترهای قابل پیشبینی استفاده میکند که از مقادیر اولیه (seed) توضیحدادهنشده موجود در منحنیهای استاندارد NIST جلوگیری میکند.
اگر یک کلید خصوصی گم شود چه اتفاقی میافتد؟
از آنجا که شبکه برای تولید امضاهای معتبر ECDSA کاملاً به کلید خصوصی وابسته است، از دست دادن این عدد صحیح ۳۲ بایتی به این معنی است که داراییهای مرتبط برای همیشه غیرقابل دسترس خواهند بود.
نکات کلیدی
- بیتکوین برای تایید تراکنشها بدون افشای کلیدهای خصوصی، به الگوریتم امضای دیجیتال منحنی بیضوی (ECDSA) وابسته است.
- این پروتکل از یک منحنی خاص کوبلیتز (Koblitz) به نام secp256k1 استفاده میکند که با معادله y^2 = x^3 + 7 تعریف میشود.
- کلید خصوصی یک عدد صحیح ۲۵۶ بیتی است که بهطور تصادفی تولید شده و بهعنوان تنها سازوکار برای خرج کردن داراییها عمل میکند.
- کلیدهای عمومی از طریق ضرب کلید خصوصی در یک نقطه مولد (Generator Point) از پیشتعیینشده روی منحنی تولید میشوند.
- امنیت این سیستم به مسئله لگاریتم گسسته بستگی دارد که معکوس کردن عملیات ضرب را عملاً غیرممکن میسازد.
برای اینکه شبکه بیتکوین یک انتقال را تایید کند، تنها یک شرط ریاضی باید برقرار باشد: ضرب یک نقطه روی یک منحنی خاص باید از نظر محاسباتی ساده باشد، اما تقسیم و بازگرداندن آن عملاً غیرممکن باشد. این عدم تقارن یکطرفه که به عنوان مسئله لگاریتم گسسته شناخته میشود، پایه و اساس الگوریتم امضای دیجیتال منحنی بیضوی (ECDSA) است. در حال حاضر، این محدودیت در برابر رایانش کلاسیک کاملاً پابرجا است و با اطمینان از اینکه یک کلید عمومی نمیتواند مهندسی معکوس شود، امنیت شبکه را تامین میکند.[1][6]
بیتکوین بر یک منحنی خاص کوبلیتز (Koblitz) به نام secp256k1 تکیه دارد که با معادله y^2 = x^3 + 7 تعریف میشود. برخلاف ساختارهای تصادفی منحنیهای رایج NIST، منحنی secp256k1 با پارامترهای غیرتصادفی ساخته شده است که در آن ثابت a دقیقاً ۰ و ثابت b برابر با ۷ است. گروه استانداردهای رمزنگاری کارآمد (SECG) این پارامترها را در نشریه SEC 2 خود در سال ۲۰۱۰ رسمی کرد. این ساختار امکان محاسبات بسیار کارآمد را فراهم میکند و تایید امضا را حدود ۳۰ درصد سریعتر از منحنیهای جایگزین میسازد.[1][5]
در هسته این سیستم، کلید خصوصی قرار دارد. همانطور که در مستندات Bitcoin.org تعریف شده است، «یک کلید خصوصی اساساً یک عدد تصادفی تولید شده است.» بهطور دقیقتر، این یک عدد صحیح ۲۵۶ بیتی بدون علامت است که دقیقاً ۳۲ بایت داده را اشغال میکند و میتواند به صورت ۶۴ کاراکتر هگزادسیمال نمایش داده شود. در این پروتکل، در اختیار داشتن این عدد صحیح ۲۵۶ بیتی مترادف با مالکیت داراییهای مرتبط با آن در بلاکچین است.[3]
برای ایجاد یک کلید عمومی، پروتکل این کلید خصوصی ۳۲ بایتی را میگیرد و آن را در یک مختصات از پیشتعیینشده روی منحنی secp256k1، که به عنوان نقطه مولد (G) شناخته میشود، ضرب میکند. از آنجا که ضرب منحنی بیضوی شامل جمع هندسی نقاط به جای حساب استاندارد است، نتیجه یک مجموعه جدید از مختصات روی منحنی است. این نقطه جدید به عنوان کلید عمومی عمل میکند که میتواند با خیال راحت برای دریافت داراییها با شبکه به اشتراک گذاشته شود.[1][2]
از آنجا که ضرب منحنی بیضوی شامل جمع هندسی نقاط به جای حساب استاندارد است، نتیجه یک مجموعه جدید از مختصات روی منحنی است.
هنگامی که یک کاربر میخواهد بیتکوین خرج کند، باید مالکیت کلید خصوصی را بدون افشای آن ثابت کند. ECDSA این کار را با تولید یک امضای دیجیتال انجام میدهد. پروتکل، دادههای تراکنش را هش کرده و آن را با یک عدد تصادفی یکبار مصرف (nonce) که معمولاً با k نشان داده میشود، و کلید خصوصی ترکیب میکند. این عملیات یک امضای منحصربهفرد متشکل از ۲ مقدار متمایز r و s تولید میکند.[4][6]
عدد تصادفی k یک نقطه آسیبپذیری بحرانی در فرآیند ECDSA است. این عدد باید کاملاً تصادفی باشد و هرگز در چندین امضا دوباره استفاده نشود. اگر دقیقاً از همان عدد تصادفی برای امضای ۲ تراکنش مختلف با همان کلید خصوصی استفاده شود، رابطه ریاضی بین امضاها به یک ناظر اجازه میدهد تا کلید خصوصی را با استفاده از جبر پایه محاسبه کند و بلافاصله داراییها را به خطر بیندازد.[4]
پس از پخش تراکنش و امضای آن، گرههای شبکه باید صحت آن را تایید کنند. گرهها از کلید عمومی فرستنده، هش تراکنش و ۲ مقدار امضا (r و s) برای انجام یک معادله تایید استفاده میکنند. اگر محاسبات ریاضی همخوانی داشته باشد، بهطور قاطع ثابت میکند که امضا توسط دارنده کلید خصوصی مربوطه تولید شده است و انتقال را مجاز میسازد.[2][4]
پیامدهای عملی این سازوکار مطلق است. از آنجا که شبکه برای تایید هویت کاملاً به ECDSA وابسته است، از دست دادن یک کلید خصوصی ۳۲ بایتی به معنای از دست دادن دسترسی به داراییها برای همیشه است، زیرا تابع تلهدر (trapdoor) از هرگونه بازیابی از طریق کلید عمومی جلوگیری میکند. در مقابل، تا زمانی که مسئله لگاریتم گسسته توسط رایانش کلاسیک غیرقابل حل باقی بماند، سد ریاضی که دفتر کل عمومی را از کلید خصوصی جدا میکند، دستنخورده باقی میماند.[1][3]
اصطلاحات کلیدی
- کلید خصوصی
- یک عدد صحیح ۲۵۶ بیتی که بهطور تصادفی تولید شده و به دارنده آن اجازه میدهد تراکنشهای بیتکوین را تایید کند.
- کلید عمومی
- مختصاتی روی منحنی secp256k1 که از کلید خصوصی استخراج شده و برای دریافت داراییها و تایید امضاها استفاده میشود.
- عدد تصادفی یکبار مصرف (k)
- یک عدد تصادفی یکبار مصرف که توسط الگوریتم ECDSA در طول فرآیند امضا برای اطمینان از منحصربهفرد بودن امضا مورد نیاز است.
- secp256k1
- منحنی بیضوی خاصی که توسط بیتکوین استفاده میشود و با معادله y^2 = x^3 + 7 تعریف میگردد.
منابع
[1]Bitcoin Wikiتوسعهدهندگان بلاکچینElliptic Curve Digital Signature Algorithm
مطالعه در Bitcoin Wiki →
[2]Ledgerتولیدکنندگان کیفپول سختافزاریECDSA (Elliptic Curve Digital Signature Algorithm)
مطالعه در Ledger →
[3]Bitcoin.orgتوسعهدهندگان بلاکچینBIP 137: Signatures of Messages using Private Keys
مطالعه در Bitcoin.org →
[4]Bitcoin Stack Exchangeتوسعهدهندگان بلاکچینPrivate Keys / Transaction Verification
مطالعه در Bitcoin Stack Exchange →
[5]Standards for Efficient Cryptography GroupرمزنگارانSEC 2: Recommended Elliptic Curve Domain Parameters
مطالعه در Standards for Efficient Cryptography Group →
[6]Factlen Editorial TeamSynthesis by Factlen editorial team
مطالعه در Factlen Editorial Team →
نظرات
بیشتر در مالی
مشاهده همه →Freelance Translation
چگونه با ترجمه آنلاین به عنوان شغل دوم درآمد کسب کنیم؟
5 منبع
اقتصاد تولید محتوا
راهاندازی کسبوکار جانبی فروش محصولات دیجیتال با سرمایه کم: راهنمای گام به گام
2 منبع
اقتصاد دیجیتال
راهنمای جامع شروع کسبوکار جانبی آنلاین با سرمایه کم
2 منبع
اکوسیستم اتریوم
«اتریوم اینستیتوشنال» راهاندازی شد تا «دروازه ورودی» شبکه برای بانکها و مدیران دارایی باشد
3 منبع
هر زاویه. هر روز.
دریافت مالی اخبار همراه با پوشش کامل منابع و تحلیل دیدگاهها، مستقیم در صندوق ورودی شما.





