الگوریتم امضای دیجیتال منحنی بیضوی (ECDSA) چگونه کلید خصوصی بیتکوین را میسازد و تایید میکند؟
بیتکوین برای تولید کلیدهای عمومی از کلیدهای خصوصی ۲۵۶ بیتی، بر ریاضیات منحنی بیضوی secp256k1 تکیه دارد. پروتکل ECDSA تضمین میکند که تراکنشها میتوانند بدون افشای عدد صحیح خصوصی پایه، بهطور امن تایید شوند.
به قلم بهنام کاظمی
این خبر را به اشتراک بگذارید
برای اینکه شبکه بیتکوین یک انتقال را تایید کند، تنها یک شرط ریاضی باید برقرار باشد: ضرب یک نقطه روی یک منحنی خاص باید از نظر محاسباتی ساده باشد، اما تقسیم و بازگرداندن آن عملاً غیرممکن باشد. این عدم تقارن یکطرفه که به عنوان مسئله لگاریتم گسسته شناخته میشود، پایه و اساس الگوریتم امضای دیجیتال منحنی بیضوی (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]
نکات کلیدی
- بیتکوین برای تایید تراکنشها بدون افشای کلیدهای خصوصی، به الگوریتم امضای دیجیتال منحنی بیضوی (ECDSA) وابسته است.
- این پروتکل از یک منحنی خاص کوبلیتز (Koblitz) به نام secp256k1 استفاده میکند که با معادله y^2 = x^3 + 7 تعریف میشود.
- کلید خصوصی یک عدد صحیح ۲۵۶ بیتی است که بهطور تصادفی تولید شده و بهعنوان تنها سازوکار برای خرج کردن داراییها عمل میکند.
- کلیدهای عمومی از طریق ضرب کلید خصوصی در یک نقطه مولد (Generator Point) از پیشتعیینشده روی منحنی تولید میشوند.
آنچه نمیدانیم
- پیشرفتهای رایانش کوانتومی، مانند الگوریتم شور (Shor)، با چه سرعتی ممکن است در نهایت فرض لگاریتم گسسته را که اساس منحنیهای بیضوی ۲۵۶ بیتی است، تهدید کنند.
- آیا بهروزرسانیهای آینده پروتکل بیتکوین، ECDSA را بهطور کامل با طرحهای امضای جایگزین مانند اشنور (Schnorr) در تمامی انواع تراکنشها جایگزین خواهند کرد یا خیر.
- رمزنگاران
- بر قطعیت ریاضی مسئله لگاریتم گسسته و مزایای خاص کارایی منحنی کوبلیتز secp256k1 تمرکز دارند.
- توسعهدهندگان بلاکچین
- اجرای عملی ECDSA را برای امضای تراکنش، تولید اعداد تصادفی یکبار مصرف و تایید شبکه در اولویت قرار میدهند.
- تولیدکنندگان کیفپول سختافزاری
- بر امنیت فیزیکی کلید خصوصی ۲۵۶ بیتی و ایزوله بودن محیط امضا تاکید میکنند.
دیدگاههایی که این گزارش پوشش نداده
- پژوهشگران رایانش کوانتومی که تهدیدهای آینده علیه رمزنگاری ۲۵۶ بیتی را مدلسازی میکنند
منابع
[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 →
بیشتر در مالی
مشاهده همه →زیان ناپیدا
فرمول حاصلضرب ثابت چگونه زیان ناپیدا را از تامینکنندگان نقدینگی بیرون میکشد؟
2 منبع
امنیت صرافیها
زیان ۳۸۷.۵ میلیون دلاری بیتگت در پی هک سیستمهای بکاند؛ کره شمالی متهم ردیف اول
3 منبع
سرقت رمزارز
چهار کشور گروه هکری «واترپلام» کره شمالی را به سرقت ۱۱ میلیون دلار رمزارز متهم کردند
2 منبع
پروتکل بیتکوین
چگونه چرخه هاوینگ ۲۱۰ هزار بلاکی، منحنی عرضه مطلق بیتکوین را تعیین میکند
10 منبع
نظرات
هر زاویه. هر روز.
اخبار مالی با پوشش کامل منابع و تحلیل دیدگاهها، هر روز و رایگان.





