Що таке ECDSA? 

ECDSA (Elliptic Curve Digital Signature Algorithm) — це криптографічний алгоритм цифрового підпису на основі еліптичних кривих. Він широко використовується у світі криптовалют (зокрема, у мережах біткоїна та Ethereum) і гарантує, що витратити кошти може лише власник відповідного приватного ключа.

Ідея використання еліптичних кривих у криптографії (ECC) виникла ще у 1985 році, коли математики Ніл Кобліц та Віктор Міллер незалежно запропонували цю концепцію. Попри те, що ECC пропонувала прорив у криптографії, вона не набула широкого застосування до 2000-х років, коли інтернет-провайдери почали впроваджувати її у практиці. Переваги ECC стали більш очевидними з розвитком обчислювальної техніки та потребою у сильнішій безпеці з меншими ключами.

Сама схема ECDSA була представлена у 1992 році канадським криптографом Скоттом Ванстоуном. У 1999 році ECDSA була стандартизована (як частина стандартів ANSI X9.62, FIPS 186-2 тощо) і з часом стала загальнодоступною технологією. 

На момент створення біткоїна у 2008 році ECDSA вже вважалася перевіреним рішенням, на відміну від альтернативної схеми підпису Шнорра.

Базові принципи ECDSA

Кожен користувач генерує випадковий приватний ключ (випадкове велике число), на основі якого обчислюється відповідний публічний ключ (точка на еліптичній кривій). За публічним ключем неможливо обчислити приватний (це одностороння математична задача), тому публічний ключ можна безпечно розповсюджувати для перевірки підписів.

Приватний ключ використовується для підписання транзакції (створення цифрового підпису), а публічний ключ — для її верифікації. Тільки володар приватного ключа може згенерувати дійсний підпис, зате будь-хто, маючи публічний ключ, може переконатися в його автентичності.

У блокчейні володіння монетами підтверджується саме через ECDSA. Наприклад, «володіти» біткоїном означає мати можливість підписати транзакцію, яка передає право власності на нього.

Переваги ECDSA

Менші ключі, висока безпека. ECC забезпечує той самий рівень криптографічної стійкості, що й традиційні алгоритми (наприклад, RSA), але потребує значно менших за розміром ключів. Для прикладу, 256-бітний ключ ECDSA дає приблизно такий самий рівень безпеки, як 3072-бітний ключ RSA. Менші ключі і підписи означають менше навантаження на пам’ять і мережу, що критично для масштабованості блокчейнів, де підписи зберігаються в кожному блоці.

Швидкість. Операції з еліптичними кривими можуть бути дуже швидкими при належній оптимізації. Крива secp256k1, яку використовує біткоїна та багато інших систем, була обрана з урахуванням ефективності: її параметри підібрані таким чином, щоб пришвидшити обчислення (наприклад, вона не містить особливих «випадкових» коефіцієнтів, що спрощує реалізацію). В результаті, реалізації ECDSA на secp256k1 працюють приблизно на 30% швидше, ніж на деяких інших стандартних кривих, що важливо при великій кількості транзакцій.

Перевірена криптографія. З моменту стандартизації наприкінці 1990-х ECDSA пройшла перевірку багатьма роками активного використання. Вона лежить в основі безпеки не лише криптовалют, а й ряду інших протоколів і пристроїв (наприклад, у сертифікатах безпеки, апаратних гаманцях тощо). Це підсилює довіру спільноти до алгоритму. Сатоші обрав ECDSA для біткоїна через відкритість і відсутність патентних обмежень, що дозволило будь-кому запускати вузол і перевіряти транзакції без юридичних перепон.

Обмеження ECDSA

Відсутність мультипідписів. Одним з недоліків класичного ECDSA є відсутність нативної підтримки мультипідписів. Тобто кілька сторін не можуть легко створити один об’єднаний підпис стандартними засобами ECDSA. В екосистемі біткоїна цю проблему історично вирішували через скрипти P2SH (Pay-to-Script-Hash) — коли кошти блокуються скриптом, що містить кілька відкритих ключів і умов (наприклад, вимога підпису від двох із трьох учасників). Витрачаючи такі кошти, учасники мають розкрити весь скрипт і всі публічні ключі, що призводить до втрати приватності та збільшення обсягу даних в блоці.

Гнучкість підпису (malleability). У базовій реалізації ECDSA існувала теоретична можливість модифікації підпису: зловмисник, перехопивши валідний підпис транзакції, міг математично згенерувати інший еквівалентний підпис на ту ж транзакцію без приватного ключа. Хоча така змінена транзакція все одно була б легітимною, це створювало потенційні проблеми для відстеження транзакцій (відоме як signature malleability). У біткоїні цю вразливість було закрито на рівні протоколу (обмеженням формату підпису, BIP-66), але сам факт наявності «гнучкості» в ECDSA відзначався як недолік у порівнянні зі схемою Шнорра.

Відсутність квантової стійкості. Як і більшість сучасних криптографічних алгоритмів з відкритим ключем, ECDSA потенційно вразливий перед появою достатньо потужного квантового комп’ютера. Алгоритм Шора здатен розв’язувати задачу дискретного логарифма (основу безпеки ECDSA) за поліноміальний час, що означає злам алгоритму. Хоча такі квантові машини поки що не існують, криптоспільнота активно досліджує постквантові альтернативи на майбутнє.

Розвиток криптовалютних протоколів привів до впровадження вдосконалених алгоритмів підпису. У листопаді 2021 року в мережі біткоїна було активовано оновлення Taproot, яке додало підтримку підписів Шнорра паралельно з ECDSA. Схема Schnorr усуває багато обмежень ECDSA: вона дозволяє агрегувати кілька підписів в один (що значно покращує реалізацію мультипідписів і економить місце в блоці), має доказову безпеку та вбудовану стійкість до модифікації підпису.

Водночас ECDSA залишається підтримуваним — мережа біткоїна наразі працює з двома алгоритмами підпису паралельно, що забезпечує зворотну сумісність зі старими адресами і софтом.

Читайте ForkLog UA в соціальних мережах

Знайшли помилку в тексті? Виділіть її та натисніть CTRL+ENTER

Матеріали за темою

Ми використовуємо файли cookie для покращення якості роботи.

Користуючись сайтом, ви погоджуєтесь з Політикою приватності.

OK
Exit mobile version