Що таке Цифровий підпис і як він працює?

Середній1/19/2024, 6:23:26 PM
Блокчейни використовують цифрові підписи як невід'ємну частину їх децентралізованого процесу верифікації, створюючи безпечний спосіб аутентифікації процесів без розголошення ідентифікації користувача.

Вступ

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

Однак технологія блокчейн широко популяризувала використання цифрових підписів як невід'ємної частини свого децентралізованого та процесу верифікації транзакцій. У цій статті докладно розглядається, як працює цифровий підпис, різні алгоритми, що використовуються блокчейнами, та їх застосування в просторі Web3.

Розуміння Цифровий підпис

Джерело: CoinGeek

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

Традиційно підписи забезпечують юридичну обов'язковість угод, підтверджують ідентичність задіяних сторін та мають однозначне прийняття умов контракту. Цифрові підписи йдуть ще далі, щоб вирішити проблему змін та підроблення, що робить його більш безпечним формою підпису.

Особливості Цифрового підпису

Основні особливості цифрового підпису:

  • Аутентифікація: Цифровий підпис підтверджує, що повідомлення було відправлено вказаним відправником, перевіряючи повідомлення за допомогою публічних ключів відправника.
  • Невідмовність: Цифрові підписи використовують публічні ключі відправника для розшифрування підпису, якщо це вдається, відправник не може заперечувати відправлення повідомлення.
  • Цілісність: Можливість перевірки хеш-значення / дайджесту доводить, що дані не були змінені в процесі передачі.

Асиметрична криптографія

Джерело: ВікіКниги

Асиметричне шифрування - це метод шифрування та дешифрування даних за допомогою двох різних ключів, що робить один із ключів (це публічний ключ) відкрито доступним для усіх. Інший ключ, відомий як приватний ключ, - це конфіденційний і безпечно збережений ключ, відомий лише підписанту. Дані, зашифровані одним ключем, можуть бути розшифровані лише іншим.

У криптографії ключ часто є рядком чисел і літер, який використовується для перетворення даних так, що вони виглядають випадковими. Однак будь-хто, у кого є правильний ключ для розшифрування даних, може розшифрувати їх до початкової форми.

Наприклад, припустимо, ми беремо зображення і шифруємо його за допомогою ключа; скажімо, ключ - 28j932d8kd8. Зашифроване за допомогою цього ключа наше зображення виглядає як "X5CSycg14=xJ". Однак, розшифрувавши його за допомогою правильного ключа, ми можемо отримати наше зображення назад.

Ключові терміни, які вам потрібно зрозуміти

Хешування

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

Джерело: CyberHoot

На зображенні вище шматок тексту (загадка) проходить через хеш-функцію (SHA-256) і перетворюється на хеш (фіксована довжина чисел та літер).

Що таке хеш-функції?

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

Хеш-значення

Остаточним результатом функції хешу є значення хешу, також відоме як дайджест, яке є унікальним для кожного введення. Розмір значення хешу коливається від 32-біт до 256-біт, залежно від використаної функції хешування. Значення хешу потрібні лише для одноразового використання в процесах, таких як аутентифікація даних або створення цифрового підпису. Тому цифровий підпис є унікальним для кожної транзакції.

Як працюють цифрові підписи?

Для виконання цифрового підпису вам знадобиться наступне:

  1. A Key Pair: The key pair consists of a public/private key pair. The private key is used to create a signature, and the corresponding public key is used to verify the signature.

  2. Дані, які потрібно підписати: Вміст або повідомлення, яке ви хочете підписати. Це може бути документ, операція або будь-які цифрові дані.

  3. Функція хешування: до даних застосовується функція хешування для створення хеш-значення фіксованого розміру. Це хеш-значення потім шифрується приватним ключем для створення цифрового підпису.

  4. Алгоритм цифрового підпису: Алгоритм, який поєднує приватний ключ з даними, які потрібно підписати, зазвичай залучаючи функцію хешування. Цей алгоритм генерує цифровий підпис.

  5. Механізм верифікації: Кожен, хто бажає перевірити цифровий підпис, повинен мати доступ до відкритого ключа та такого ж алгоритму цифрового підпису. Відкритий ключ використовується для розшифрування цифрового підпису та виявлення значення хешу, яке потім порівнюється зі значенням хешу, розрахованим з оригінальних даних.

Як вони поєднуються, щоб це працювало?

Джерело: CamCert — Відправник підписує (шифрує) значення хешу своїм приватним ключем, а отримувач перевіряє автентичність повідомлення, порівнюючи значення хешів

Крок 1: Створіть хеш-значення, передавши оригінальні дані через функцію хешування

Крок 2: Підпишіть дайджест приватним ключем відправника, щоб створити шифрування.

Крок 3: Надішліть зашифрований файл одержувачеві, який може розшифрувати його, використовуючи відкритий ключ відправника для генерації дайджесту.

Крок 4: Після розшифрування пропустіть дані через ту ж хеш-функцію для генерації еквівалентного дайджесту.

Крок 5: Підтвердіть цілісність даних, порівнявши новостворений хеш зі значенням хешу, отриманим поруч з даними. Відповідність підтверджує цілісність даних.

Давайте скористаємося цією ілюстрацією передачі документа між Марком, який є відправником, та Карен, яка є одержувачем.

  1. Підписання та відправлення: Марк ініціює процес, відправляючи документ. Документ проходить через хеш-алгоритм, створюючи дайджест/хеш-значення. Цей дайджест потім шифрується за допомогою приватного ключа Марка, завершуючи цифровий підпис; комбінація документа та його приватного ключа.
  2. Отримання та перевірка: Карен, отримувач, використовує відкритий ключ Марка для розшифрування цифрового підпису та отримання початкового дайджесту. Незалежно Карен застосовує той самий алгоритм хешування до отриманого документа, генеруючи інший дайджест.
  3. Карен порівнює два дайджести: один від розшифрованого підпису, інший незалежно згенерований. Якщо вони збігаються, Карен впевнена в цілісності документа та автентичності Марка як відправника.

Алгоритми підпису, використовані в блокчейнах

Вибір алгоритмів Цифрового підпису залежить від таких факторів, як вимоги до безпеки, розмір ключа та вимоги до продуктивності. Кожен алгоритм має свої переваги та недоліки, і його використання може розвиватися на основі досягнень в криптографії та виникаючих викликів у сфері безпеки.

У цьому розділі обговорюються найбільш поширені алгоритми цифрового підпису в технології блокчейн.

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

  2. EdDSA (алгоритм цифрового підпису на кривій Едвардса): Це сучасний та ефективний алгоритм цифрового підпису, який базується на криптографії на еліптичних кривих. Він був введений для вирішення певних проблем та покращення продуктивності порівняно з іншими схемами підпису, такими як ECDSA. Цей алгоритм призначений для забезпечення міцної безпеки при релятивно невеликих розмірах ключів, що робить його добре підходящим для різноманітних застосувань, включаючи технологію блокчейну, наприклад, Cardano та Solana.

  3. Алгоритм Шнорра: Підпис Шнорра - це тип алгоритму цифрового підпису, який дозволяє агрегацію, тобто кілька підписів на одне повідомлення можуть бути об'єднані в один підпис. Цей підпис не лише є більш ефективним за обсягом, але й сприяє більш ефективному процесу верифікації.
    Це доводить свою ефективність в сценаріях, пов'язаних з підписанням спільного повідомлення декількома сторонами, таких як авторизація транзакції з адреси багато підписів (multisig). У таких випадках кожен учасник повинен надати свій відкритий ключ та підпис. В результаті, якщо три сторони мають намір підписати те саме повідомлення, доказ буде включати три відкритих ключі та три підписи. Це здається недоцільним з точки зору обчислень та зберігання, оскільки кожен вузол повинен виконати функцію перевірки підпису тричі та зберігати три різних набори підписів та відкритих ключів.
    Алгоритм Шнорра просто створює підпис, який є дійсним для суми їхніх відкритих ключів. Агрегування ключів може зменшити комісію за газ та покращити масштабованість базового рівня, оскільки підписи, які надходять від багатопідписних транзакцій, займають такий самий обсяг місця в блоках, як і підписи, що надходять від транзакцій однієї сторони.

  4. Підпис BLS: Криптографічний алгоритм BLS (Boneh-Lynn-Shacham) базується на білінійних парах над групами еліптичних кривих. Він був представлений Деном Бонем, Беном Лінном і Ховавом Шахамом у 2001 році. Основна увага криптографії BLS спрямована на ефективні та надійні схеми підписів, які підтримують унікальні властивості, такі як агрегація. Крім того, підпис BLS використовується в Ethereum 2.0 та Chia.

Блокчейни, їх хеш-алгоритм та алгоритм підпису

  1. Bitcoin (BTC):
    Хеш-алгоритм: SHA-256
    Алгоритм цифрового підпису: ECDSA, Schnoor (TapRoot Soft Fork)

  2. Ethereum (ETH):
    Хеш-алгоритм: Keccak
    Алгоритм цифрового підпису: ECDSA

  3. Litecoin (LTC):
    Хеш-алгоритм: Scrypt
    Алгоритм цифрового підпису: ECDSA

  4. Ripple (XRP):
    Хеш-алгоритм: SHA-256
    Алгоритм цифрового підпису: ECDSA

  5. Cardano (ADA):
    Хеш-алгоритм: Keccak
    Цифровий підпис Алгоритм: EdDSA (Edwards-curve Digital Signature Algorithm)

  6. Polkadot (DOT):
    Хеш-алгоритм: Blake2
    Цифровий підпис Алгоритм: EdDSA

  7. Tezos (XTZ):
    Хеш-алгоритм: Blake2b
    Цифровий підпис Алгоритм: EdDSA

  8. Ланцюг BNB (BNB):
    Хеш-алгоритм: Keccak (використовується для токенів BEP-2)
    Алгоритм цифрового підпису: ECDSA

Як Bitcoin використовує Цифровий підпис

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

)

Джерело: TimesofIndia — тільки підписані транзакції можуть бути розповсюджені та підтверджені вузлами мережі

Основний механізм транзакцій Bitcoin включає в себе низку кроків, включаючи використання цифрового підпису.

Тут наведено загальний огляд:

  1. Відправник вирішує здійснити транзакцію з біткоїнами. Це може включати відправлення біткоїнів іншому користувачеві або кільком користувачам.
  2. Відправник створює повідомлення про транзакцію, що містить ключові деталі, такі як адреса гаманця одержувача, сума BTC, що надсилається, будь-які пов'язані комісії, та походження біткоїну (невитрачені вихідні транзакції або UTXO), які використовуються як входи для транзакції.
  3. Відправник підписує повідомлення про транзакцію своїм приватним ключем за допомогою алгоритму цифрового підпису на еліптичній кривій (ECDSA). Цей цифровий підпис надає доказ того, що транзакція була авторизована законним власником адреси відправника.
  4. Повідомлення про транзакцію хешується за допомогою SHA-256 (алгоритм безпечного хешування 256 біт) та подальше хешується за допомогою RIPEMD-160 (оцінка цілісності примітивів гонки повідомлень 160 біт). Цей процес генерує хеш фіксованої довжини, який загалом відомий як ідентифікатор транзакції або хеш.
  5. Підписана транзакція транслюється в мережу Bitcoin, де вона стає видимою для всіх вузлів (комп'ютерів, які беруть участь в мережі Bitcoin). Вузли в мережі, включаючи шахраїв, перевіряють валідність транзакції. Ця перевірка включає перевірку цифрового підпису, щоб забезпечити відповідність відправника публічному ключу та те, що вхідні дані (UTXO) використовуються в транзакції є не витраченими та валідними.
  6. Дійсні транзакції збираються майнерами, які змагаються у вирішенні складної математичної задачі (підтвердження роботи). Перший майнер, який вирішує задачу, додає блок, що містить перевірені транзакції, до блокчейну.
  7. Новий доданий блок транслюється в мережу, і інші вузли перевіряють доказ роботи та валідність транзакцій у межах блоку. Як тільки досягнуто консенсус, блок вважається підтвердженим, а транзакція постійно записується в блокчейні.
  8. Баланс гаманця отримувача оновлюється, щоб відобразити отримані біткоїни, а баланс гаманця відправника коригується для врахування витрачених UTXO.

Застосування Цифрового підпису в Web3

Тепер, коли ми розуміємо принципи та важливість підписів, давайте висвітлимо практичні застосування цифрових підписів у забезпеченні транзакцій, автентифікації ідентичності та забезпеченні цілісності даних у екосистемі Web3.

Аутентифікація транзакції

Наприклад, Еліса хоче переказати Ethereum Бобу. Вона підписує транзакцію своїм приватним ключем, генеруючи цифровий підпис. Мережа Ethereum перевіряє підпис за допомогою публічного ключа Еліси, забезпечуючи авторизацію транзакції нею. Це також застосовується до передачі власності NFT, оскільки вона записана в блокчейні за допомогою підписаної транзакції, забезпечуючи законність зміни власності.

Виконання смарт-контрактів

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

Децентралізований ідентифікатор та аутентифікація

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

Це також може бути простим способом для залучення нових користувачів Web3, оскільки їм не потрібно створювати обліковий запис та зберігати ще один пароль, користувачі можуть приховати свою ідентичність і не обов'язково розкривати особисті дані, такі як їх адреса електронної пошти.

Цілісність даних та невідмовність NFT

Художник підписує цифровий файл з мистецтва своїм приватним ключем перед тим, як вибивати його у вигляді NFT. Цифровий підпис гарантує цілісність твору мистецтва, і художник не може пізніше заперечити авторство.

Системи голосування

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

Міжланцюгова взаємодія

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

Виклики та майбутні тенденції

Виклик квантових атак

Цифрові підписи залишаються одними з найнадійніших способів аутентифікації на блокчейні. Однак розвиток квантових комп'ютерів великої потужності стане загрозою для безпеки блокчейнів, оскільки криптографічні алгоритми можуть бути швидко розшифровані квантовими комп'ютерами.

Квантові комп'ютери можуть обробляти завдання з неймовірною швидкістю, виконуючи за секунди те, що традиційним комп'ютерам займало б години, злочинці можуть використовувати квантовий комп'ютер для проведення квантових атак, які можуть підірвати цілу блокчейн систему.

Тим не менш, їх можна запобігти за допомогою постквантових підписів, які вже розробляються, хоча вони займали б більший обсяг простору на блокчейні.

Висновок

Цифрові підписи перевіряють автентичність та цілісність даних на основі принципів асиметричної криптографії та хешування. Вони працюють, використовуючи приватний ключ відправника для аутентифікації хешованої форми даних, а отримувач перевіряє за допомогою публічного ключа відправника. Найбільш поширеними криптографічними алгоритмами, що використовуються блокчейнами, є підписи ECDSA, EdDSA, Schnoor та BLS.

Додатково, використання цифрових підписів в основному застосовується в аутентифікації транзакцій, виконанні смарт-контрактів, голосуванні за управління, міжланцюжкових переказах та цілісності даних NFT.

Penulis: Paul
Penerjemah: Sonia
Pengulas: Piccolo、Edward、Ashley He
* Informasi ini tidak bermaksud untuk menjadi dan bukan merupakan nasihat keuangan atau rekomendasi lain apa pun yang ditawarkan atau didukung oleh Gate.io.
* Artikel ini tidak boleh di reproduksi, di kirim, atau disalin tanpa referensi Gate.io. Pelanggaran adalah pelanggaran Undang-Undang Hak Cipta dan dapat dikenakan tindakan hukum.

Що таке Цифровий підпис і як він працює?

Середній1/19/2024, 6:23:26 PM
Блокчейни використовують цифрові підписи як невід'ємну частину їх децентралізованого процесу верифікації, створюючи безпечний спосіб аутентифікації процесів без розголошення ідентифікації користувача.

Вступ

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

Однак технологія блокчейн широко популяризувала використання цифрових підписів як невід'ємної частини свого децентралізованого та процесу верифікації транзакцій. У цій статті докладно розглядається, як працює цифровий підпис, різні алгоритми, що використовуються блокчейнами, та їх застосування в просторі Web3.

Розуміння Цифровий підпис

Джерело: CoinGeek

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

Традиційно підписи забезпечують юридичну обов'язковість угод, підтверджують ідентичність задіяних сторін та мають однозначне прийняття умов контракту. Цифрові підписи йдуть ще далі, щоб вирішити проблему змін та підроблення, що робить його більш безпечним формою підпису.

Особливості Цифрового підпису

Основні особливості цифрового підпису:

  • Аутентифікація: Цифровий підпис підтверджує, що повідомлення було відправлено вказаним відправником, перевіряючи повідомлення за допомогою публічних ключів відправника.
  • Невідмовність: Цифрові підписи використовують публічні ключі відправника для розшифрування підпису, якщо це вдається, відправник не може заперечувати відправлення повідомлення.
  • Цілісність: Можливість перевірки хеш-значення / дайджесту доводить, що дані не були змінені в процесі передачі.

Асиметрична криптографія

Джерело: ВікіКниги

Асиметричне шифрування - це метод шифрування та дешифрування даних за допомогою двох різних ключів, що робить один із ключів (це публічний ключ) відкрито доступним для усіх. Інший ключ, відомий як приватний ключ, - це конфіденційний і безпечно збережений ключ, відомий лише підписанту. Дані, зашифровані одним ключем, можуть бути розшифровані лише іншим.

У криптографії ключ часто є рядком чисел і літер, який використовується для перетворення даних так, що вони виглядають випадковими. Однак будь-хто, у кого є правильний ключ для розшифрування даних, може розшифрувати їх до початкової форми.

Наприклад, припустимо, ми беремо зображення і шифруємо його за допомогою ключа; скажімо, ключ - 28j932d8kd8. Зашифроване за допомогою цього ключа наше зображення виглядає як "X5CSycg14=xJ". Однак, розшифрувавши його за допомогою правильного ключа, ми можемо отримати наше зображення назад.

Ключові терміни, які вам потрібно зрозуміти

Хешування

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

Джерело: CyberHoot

На зображенні вище шматок тексту (загадка) проходить через хеш-функцію (SHA-256) і перетворюється на хеш (фіксована довжина чисел та літер).

Що таке хеш-функції?

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

Хеш-значення

Остаточним результатом функції хешу є значення хешу, також відоме як дайджест, яке є унікальним для кожного введення. Розмір значення хешу коливається від 32-біт до 256-біт, залежно від використаної функції хешування. Значення хешу потрібні лише для одноразового використання в процесах, таких як аутентифікація даних або створення цифрового підпису. Тому цифровий підпис є унікальним для кожної транзакції.

Як працюють цифрові підписи?

Для виконання цифрового підпису вам знадобиться наступне:

  1. A Key Pair: The key pair consists of a public/private key pair. The private key is used to create a signature, and the corresponding public key is used to verify the signature.

  2. Дані, які потрібно підписати: Вміст або повідомлення, яке ви хочете підписати. Це може бути документ, операція або будь-які цифрові дані.

  3. Функція хешування: до даних застосовується функція хешування для створення хеш-значення фіксованого розміру. Це хеш-значення потім шифрується приватним ключем для створення цифрового підпису.

  4. Алгоритм цифрового підпису: Алгоритм, який поєднує приватний ключ з даними, які потрібно підписати, зазвичай залучаючи функцію хешування. Цей алгоритм генерує цифровий підпис.

  5. Механізм верифікації: Кожен, хто бажає перевірити цифровий підпис, повинен мати доступ до відкритого ключа та такого ж алгоритму цифрового підпису. Відкритий ключ використовується для розшифрування цифрового підпису та виявлення значення хешу, яке потім порівнюється зі значенням хешу, розрахованим з оригінальних даних.

Як вони поєднуються, щоб це працювало?

Джерело: CamCert — Відправник підписує (шифрує) значення хешу своїм приватним ключем, а отримувач перевіряє автентичність повідомлення, порівнюючи значення хешів

Крок 1: Створіть хеш-значення, передавши оригінальні дані через функцію хешування

Крок 2: Підпишіть дайджест приватним ключем відправника, щоб створити шифрування.

Крок 3: Надішліть зашифрований файл одержувачеві, який може розшифрувати його, використовуючи відкритий ключ відправника для генерації дайджесту.

Крок 4: Після розшифрування пропустіть дані через ту ж хеш-функцію для генерації еквівалентного дайджесту.

Крок 5: Підтвердіть цілісність даних, порівнявши новостворений хеш зі значенням хешу, отриманим поруч з даними. Відповідність підтверджує цілісність даних.

Давайте скористаємося цією ілюстрацією передачі документа між Марком, який є відправником, та Карен, яка є одержувачем.

  1. Підписання та відправлення: Марк ініціює процес, відправляючи документ. Документ проходить через хеш-алгоритм, створюючи дайджест/хеш-значення. Цей дайджест потім шифрується за допомогою приватного ключа Марка, завершуючи цифровий підпис; комбінація документа та його приватного ключа.
  2. Отримання та перевірка: Карен, отримувач, використовує відкритий ключ Марка для розшифрування цифрового підпису та отримання початкового дайджесту. Незалежно Карен застосовує той самий алгоритм хешування до отриманого документа, генеруючи інший дайджест.
  3. Карен порівнює два дайджести: один від розшифрованого підпису, інший незалежно згенерований. Якщо вони збігаються, Карен впевнена в цілісності документа та автентичності Марка як відправника.

Алгоритми підпису, використовані в блокчейнах

Вибір алгоритмів Цифрового підпису залежить від таких факторів, як вимоги до безпеки, розмір ключа та вимоги до продуктивності. Кожен алгоритм має свої переваги та недоліки, і його використання може розвиватися на основі досягнень в криптографії та виникаючих викликів у сфері безпеки.

У цьому розділі обговорюються найбільш поширені алгоритми цифрового підпису в технології блокчейн.

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

  2. EdDSA (алгоритм цифрового підпису на кривій Едвардса): Це сучасний та ефективний алгоритм цифрового підпису, який базується на криптографії на еліптичних кривих. Він був введений для вирішення певних проблем та покращення продуктивності порівняно з іншими схемами підпису, такими як ECDSA. Цей алгоритм призначений для забезпечення міцної безпеки при релятивно невеликих розмірах ключів, що робить його добре підходящим для різноманітних застосувань, включаючи технологію блокчейну, наприклад, Cardano та Solana.

  3. Алгоритм Шнорра: Підпис Шнорра - це тип алгоритму цифрового підпису, який дозволяє агрегацію, тобто кілька підписів на одне повідомлення можуть бути об'єднані в один підпис. Цей підпис не лише є більш ефективним за обсягом, але й сприяє більш ефективному процесу верифікації.
    Це доводить свою ефективність в сценаріях, пов'язаних з підписанням спільного повідомлення декількома сторонами, таких як авторизація транзакції з адреси багато підписів (multisig). У таких випадках кожен учасник повинен надати свій відкритий ключ та підпис. В результаті, якщо три сторони мають намір підписати те саме повідомлення, доказ буде включати три відкритих ключі та три підписи. Це здається недоцільним з точки зору обчислень та зберігання, оскільки кожен вузол повинен виконати функцію перевірки підпису тричі та зберігати три різних набори підписів та відкритих ключів.
    Алгоритм Шнорра просто створює підпис, який є дійсним для суми їхніх відкритих ключів. Агрегування ключів може зменшити комісію за газ та покращити масштабованість базового рівня, оскільки підписи, які надходять від багатопідписних транзакцій, займають такий самий обсяг місця в блоках, як і підписи, що надходять від транзакцій однієї сторони.

  4. Підпис BLS: Криптографічний алгоритм BLS (Boneh-Lynn-Shacham) базується на білінійних парах над групами еліптичних кривих. Він був представлений Деном Бонем, Беном Лінном і Ховавом Шахамом у 2001 році. Основна увага криптографії BLS спрямована на ефективні та надійні схеми підписів, які підтримують унікальні властивості, такі як агрегація. Крім того, підпис BLS використовується в Ethereum 2.0 та Chia.

Блокчейни, їх хеш-алгоритм та алгоритм підпису

  1. Bitcoin (BTC):
    Хеш-алгоритм: SHA-256
    Алгоритм цифрового підпису: ECDSA, Schnoor (TapRoot Soft Fork)

  2. Ethereum (ETH):
    Хеш-алгоритм: Keccak
    Алгоритм цифрового підпису: ECDSA

  3. Litecoin (LTC):
    Хеш-алгоритм: Scrypt
    Алгоритм цифрового підпису: ECDSA

  4. Ripple (XRP):
    Хеш-алгоритм: SHA-256
    Алгоритм цифрового підпису: ECDSA

  5. Cardano (ADA):
    Хеш-алгоритм: Keccak
    Цифровий підпис Алгоритм: EdDSA (Edwards-curve Digital Signature Algorithm)

  6. Polkadot (DOT):
    Хеш-алгоритм: Blake2
    Цифровий підпис Алгоритм: EdDSA

  7. Tezos (XTZ):
    Хеш-алгоритм: Blake2b
    Цифровий підпис Алгоритм: EdDSA

  8. Ланцюг BNB (BNB):
    Хеш-алгоритм: Keccak (використовується для токенів BEP-2)
    Алгоритм цифрового підпису: ECDSA

Як Bitcoin використовує Цифровий підпис

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

)

Джерело: TimesofIndia — тільки підписані транзакції можуть бути розповсюджені та підтверджені вузлами мережі

Основний механізм транзакцій Bitcoin включає в себе низку кроків, включаючи використання цифрового підпису.

Тут наведено загальний огляд:

  1. Відправник вирішує здійснити транзакцію з біткоїнами. Це може включати відправлення біткоїнів іншому користувачеві або кільком користувачам.
  2. Відправник створює повідомлення про транзакцію, що містить ключові деталі, такі як адреса гаманця одержувача, сума BTC, що надсилається, будь-які пов'язані комісії, та походження біткоїну (невитрачені вихідні транзакції або UTXO), які використовуються як входи для транзакції.
  3. Відправник підписує повідомлення про транзакцію своїм приватним ключем за допомогою алгоритму цифрового підпису на еліптичній кривій (ECDSA). Цей цифровий підпис надає доказ того, що транзакція була авторизована законним власником адреси відправника.
  4. Повідомлення про транзакцію хешується за допомогою SHA-256 (алгоритм безпечного хешування 256 біт) та подальше хешується за допомогою RIPEMD-160 (оцінка цілісності примітивів гонки повідомлень 160 біт). Цей процес генерує хеш фіксованої довжини, який загалом відомий як ідентифікатор транзакції або хеш.
  5. Підписана транзакція транслюється в мережу Bitcoin, де вона стає видимою для всіх вузлів (комп'ютерів, які беруть участь в мережі Bitcoin). Вузли в мережі, включаючи шахраїв, перевіряють валідність транзакції. Ця перевірка включає перевірку цифрового підпису, щоб забезпечити відповідність відправника публічному ключу та те, що вхідні дані (UTXO) використовуються в транзакції є не витраченими та валідними.
  6. Дійсні транзакції збираються майнерами, які змагаються у вирішенні складної математичної задачі (підтвердження роботи). Перший майнер, який вирішує задачу, додає блок, що містить перевірені транзакції, до блокчейну.
  7. Новий доданий блок транслюється в мережу, і інші вузли перевіряють доказ роботи та валідність транзакцій у межах блоку. Як тільки досягнуто консенсус, блок вважається підтвердженим, а транзакція постійно записується в блокчейні.
  8. Баланс гаманця отримувача оновлюється, щоб відобразити отримані біткоїни, а баланс гаманця відправника коригується для врахування витрачених UTXO.

Застосування Цифрового підпису в Web3

Тепер, коли ми розуміємо принципи та важливість підписів, давайте висвітлимо практичні застосування цифрових підписів у забезпеченні транзакцій, автентифікації ідентичності та забезпеченні цілісності даних у екосистемі Web3.

Аутентифікація транзакції

Наприклад, Еліса хоче переказати Ethereum Бобу. Вона підписує транзакцію своїм приватним ключем, генеруючи цифровий підпис. Мережа Ethereum перевіряє підпис за допомогою публічного ключа Еліси, забезпечуючи авторизацію транзакції нею. Це також застосовується до передачі власності NFT, оскільки вона записана в блокчейні за допомогою підписаної транзакції, забезпечуючи законність зміни власності.

Виконання смарт-контрактів

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

Децентралізований ідентифікатор та аутентифікація

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

Це також може бути простим способом для залучення нових користувачів Web3, оскільки їм не потрібно створювати обліковий запис та зберігати ще один пароль, користувачі можуть приховати свою ідентичність і не обов'язково розкривати особисті дані, такі як їх адреса електронної пошти.

Цілісність даних та невідмовність NFT

Художник підписує цифровий файл з мистецтва своїм приватним ключем перед тим, як вибивати його у вигляді NFT. Цифровий підпис гарантує цілісність твору мистецтва, і художник не може пізніше заперечити авторство.

Системи голосування

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

Міжланцюгова взаємодія

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

Виклики та майбутні тенденції

Виклик квантових атак

Цифрові підписи залишаються одними з найнадійніших способів аутентифікації на блокчейні. Однак розвиток квантових комп'ютерів великої потужності стане загрозою для безпеки блокчейнів, оскільки криптографічні алгоритми можуть бути швидко розшифровані квантовими комп'ютерами.

Квантові комп'ютери можуть обробляти завдання з неймовірною швидкістю, виконуючи за секунди те, що традиційним комп'ютерам займало б години, злочинці можуть використовувати квантовий комп'ютер для проведення квантових атак, які можуть підірвати цілу блокчейн систему.

Тим не менш, їх можна запобігти за допомогою постквантових підписів, які вже розробляються, хоча вони займали б більший обсяг простору на блокчейні.

Висновок

Цифрові підписи перевіряють автентичність та цілісність даних на основі принципів асиметричної криптографії та хешування. Вони працюють, використовуючи приватний ключ відправника для аутентифікації хешованої форми даних, а отримувач перевіряє за допомогою публічного ключа відправника. Найбільш поширеними криптографічними алгоритмами, що використовуються блокчейнами, є підписи ECDSA, EdDSA, Schnoor та BLS.

Додатково, використання цифрових підписів в основному застосовується в аутентифікації транзакцій, виконанні смарт-контрактів, голосуванні за управління, міжланцюжкових переказах та цілісності даних NFT.

Penulis: Paul
Penerjemah: Sonia
Pengulas: Piccolo、Edward、Ashley He
* Informasi ini tidak bermaksud untuk menjadi dan bukan merupakan nasihat keuangan atau rekomendasi lain apa pun yang ditawarkan atau didukung oleh Gate.io.
* Artikel ini tidak boleh di reproduksi, di kirim, atau disalin tanpa referensi Gate.io. Pelanggaran adalah pelanggaran Undang-Undang Hak Cipta dan dapat dikenakan tindakan hukum.
Mulai Sekarang
Daftar dan dapatkan Voucher
$100
!