Докази спалення ( PoB ) протокол: нове рішення екосистеми Cardano
Нещодавно з'явилося рішення для виклику, запропонованого Чарльзом Хоскінсоном. Це рішення вводить в екосистему Cardano протокол доказу спалювання (PoB). У цій статті буде представлено цю нову розробку, включаючи:
Огляд механізму підтвердження спалювання та його застосування
Це рішення PoB реалізовано у мережі Cardano через смарт-контракти та механізми роботи
Розгортання та тестування смарт-контрактів ( на тестовій мережі )
Виконання протоколу PoB шляхом надсилання токенів на адресу "чорна діра"
1. Підтвердження спалювання та його застосування
Знищення токенів ( – це поширена практика, яка насправді полягає в надсиланні токенів на недоступну адресу "чорної діри". Ця адреса не має жодного приватного ключа для відновлення знищених токенів. Громадськість може перевірити, що знищення дійсно відбулося, але знає лише одне "секретне" значення зобов'язання. Дизайн цього механізму покликаний забезпечити, щоб знищені кошти не підлягали перевірці з боку посередників.
Механізм спалювання має безліч застосувань, може збільшити вартість залишкових токенів або служити доказом зобов'язань блокчейн-протоколу. Масштабне спалювання токенів може створити дефляційний тиск, оскільки зменшує загальну кількість токенів в обігу. Хоча транзакції зі спалюванням є звичайними, їх все ще потрібно схвалювати майнерам. Незважаючи на те, що ці механізми мають переваги, є й ті, хто виступає проти спалювання токенів. У зв'язку з цим деякі команди прагнуть впровадити незаборонений протокол спалювання токенів. Ця особлива операція привернула увагу Charles Hoskinson.
Безпека доказу спалення та безпека транзакцій з переказу токенів базується на однаковому механізмі - криптографічних хеш-функціях. Ці функції легко обчислюються, але їх важко обчислити в зворотному напрямку. По суті, їх важко обчислити в зворотному напрямку, тому що зміна одного біта на вході призводить до випадкової зміни кожного біта на виході. Це означає, що обчислення зворотного напрямку від виходу криптографічної хеш-функції займе надзвичайно багато часу. Іншими словами, перевертання найменш значущого біта криптографічної хеш-функції може створити чорну діру адреси. Все, що надсилається на цю адресу, стане важким або неможливим для відновлення.
Безпека криптовалютних транзакцій повністю базується на криптографії з відкритим ключем та криптографічних хеш-функціях: "Кожного разу, коли надсилаються кошти, створюється новий непотрачений вихід транзакції )UTxO(." Цей UTxO фіксує кількість коштів і криптографічний хеш відкритого ключа отримувача. Якщо отримувач хоче використати ці кошти, він повинен підписати нову транзакцію витрат з того ж відкритого ключа.
Чому потрібно перевертати найменший значущий біт виходу хеш-функції, а не використовувати хеш 0x0? Причина в тому, що використання відомого значення робить спалювання відразу видимим. Однак, задум цього протоколу полягає в тому, щоб спочатку спалити кошти, а потім ) в окремому кроці ( довести, що вони були спалені. Для цього потрібно спочатку почати з хешу, що створює зобов'язання. Після цього зобов'язання показує, що було створено адресу чорної діри.
2. Доказательство спалювання в мережі Cardano ) PoB ( смарт-контракт
Цей розділ пояснить механізм доказу спалювання в розумних контрактах Cardano. Розумні контракти Cardano — це програми, які працюють в мережі Cardano, що дозволяють розробникам контрактів виконувати фінансові ) транзакції відповідно до певних правил. Розумні контракти призначені для встановлення прозорих і перевіряємих угод між різними сторонами. Нещодавно зростання децентралізованих фінансових послуг та децентралізованих організацій сприяло експоненційному зростанню застосування розумних контрактів.
Традиційні смарт-контракти на основі Ethereum складаються з стану, записаного в реєстрі, та програми, що асинхронно викликає цей стан. Оскільки стан в реєстрі належить смарт-контракту, його можна змінити лише через програму, всі дозволені операції зі станом можна вивести з коду програми та зафіксувати в блокчейні.
Екосистема Cardano має різну структуру, яка дозволяє користувачам моделювати кожну транзакцію у своєму гаманці, ускладнюючи ( мережу ) атаки. Виниклі зміни перевіряються вузлами блокчейну, а потім фіксуються. Для цього смарт-контракти Cardano мають три складові:
Сценарій викупу: дозволяє або забороняє витрачати eUTxOs
Сценарій гаманця: представляє користувача, який виконує операції для викупу коштів і створення нових eUTxOs
eUTxOs: Кожен eUTxO містить кошти та одну точку даних (datum), яку викупник використовує для визначення умов, за яких ці кошти можуть бути використані знову.
Це означає, що смарт-контракти Cardano не мають централізованого стану в реєстрі. Кожен eUTxO має незалежний стан (datum), що є невід'ємною частиною його коштів. Це призводить до наступних чотирьох можливих операцій:
Спалення: надсилання коштів на адресу чорної діри з секретним хеш-підтвердженням
Було знищено: підтверджено, що горіння певної обіцянки дійсно відбулося
Блокування: надсилання коштів на адресу з ключем
Викуп: викуп заблокованих раніше коштів
Слід звернути увагу на те, що кінцеві точки працюють у гаманці користувача. Після завершення виконання скрипта кінцевої точки в гаманці згенерована транзакція буде перенесена в блокчейн. У нашому випадку ця транзакція перемістить кошти до скрипта викупу. Цей скрипт перевіряє, що кошти можуть бути доступні тільки для адреси-одержувача, яка має хеш.
У процесі блокування хеш-значення може бути нашою власною адресою. У випадку згорянням хеш-значення вказує на адресу чорної діри. Ми досягаємо цього, надаючи хешу секретне зобов'язання, а потім його перевертаючи. Оскільки ми використовуємо криптографічні хеш-функції, майже неможливо знайти відповідний хеш-значення для його результату.
Зверніть увагу: flipCommitment лише перевертає найменш значущі біти хеш-значення (LSB).
Посередник, який приймає угоди, не може знати, чи це угода на знищення, чи на блокування. Завдяки використанню цього скрипта посередник не може вибірково перевіряти будь-які угоди на знищення. Знищення та блокування використовують однаковий формат викупника, лише ініціатор угоди знає, чи це знищення, чи блокування. Значення знищення можна перевірити за допомогою знищеного кінцевого пункту з даним значенням зобов'язання. До публікації значення зобов'язання ніхто не знає, яка кількість знищених коштів. Якщо вас цікавить код, кодова база буде детально описана в наступному розділі.
!
3. Розгортання смарт-контрактів ( на тестовій мережі )
Щоб запустити вузол тестової мережі з гаманцем, потрібні мнемонічна фраза та випадковий пароль. Ви можете розгорнути смарт-контракт, виконавши такі кроки:
( 1. Встановіть набір інструментів Haskell
) 2. Побудова сценаріїв Plutus
3. Запустіть контейнер для з'єднання з вузлом Cardano та гаманцем Cardano
4. Відновлення гаманця та виведення ID гаманця ### подальші кроки потребують ###, виконайте наступний код ( для генерації випадкових мнемонічних слів для тестування )
( 5. Запуск токена винищення
) 6. Виконання, перевірка спалювання
Запустивши вищезазначені кроки, зовнішні особи не можуть дізнатися, чи це транзакція на спалення, чи на блокування. Однак після публікації цього скрипта люди можуть спробувати скомпілювати відмову від викупників, відповідно до хешу їх запропонованого скрипта викупника. Це вимагатиме величезних зусиль, але може призвести до певної цензури спалення. Щоб запобігти такій ситуації та ускладнити порушення, у наступному розділі буде обговорено, як зробити це рішення безпечнішим.
Використовуючи той факт, що більшість операцій смарт-контрактів відбувається в гаманцях користувачів, створення рішень, які використовують лише гаманці, може зробити смарт-контракти непотрібними. Однак, цей підхід може мати практичну перевагу, а саме, що неможливо вибірково блокувати відповідні транзакції смарт-контрактів на знищення. Проте, ті, хто хоче заблокувати всі знищення, можуть досягти своєї мети, блокуючи всі скрипти. Використовуючи лише гаманці, єдиний спосіб перевірки знищення - це перевірка всіх транзакцій Cardano. Це є остаточним опором до цензури.
Щоб це реалізувати, нам потрібно замінити хеш відкритого ключа хешем значення зобов'язання та перевернути найменш значущій біт значення зобов'язання. Але цього недостатньо. Cardano запобігає помилкам вводу в адресах, перевіряючи структуру та код CRC. Тому найпростіший спосіб генерувати адресу з зобов'язання – це використовувати наступний скрипт та бібліотеку Cardano API.
Щоб переглянути, як це працює, ви можете використовувати наступний код для генерації адреси для спалювання:
Потім ви можете використовувати наступний код для подачі транзакції до блокчейну Cardano:
Щоб перевірити спалення, вам потрібно використовувати наступний код для перегляду транзакцій, надісланих на адресу спалення:
!
Висновок
Ця стаття розглядає реалізацію протоколу підтвердження спалювання, яка поділяється на два способи: смарт-контракти або транзакції з гаманцем. Проте, смарт-контракти Alonzo наразі не мають необхідної інфраструктури, такої як бібліотека PAB. Тому ми рекомендуємо використовувати скрипти гаманця. У будь-якому випадку, бібліотека PAB буде реалізована найближчим часом для розробки додатків на основі Cardano, поєднуючи скрипти гаманця, складне рішення смарт-контракту може бути більш доцільним для створення середовища, яке може витримати потенційні перевірки. Якщо ви хочете поглиблено ознайомитися з цим рішенням, ви можете переглянути всю відповідну інформацію на GitHub.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
8 лайків
Нагородити
8
4
Поділіться
Прокоментувати
0/400
MetaMisery
· 5год тому
ada може зрости, так?
Переглянути оригіналвідповісти на0
MetamaskMechanic
· 5год тому
Ого, це ж занадто!
Переглянути оригіналвідповісти на0
OldLeekMaster
· 5год тому
То хай горить, скільки може впасти до кількох копійок
Cardano впроваджує протокол спалювання: детальний опис рішення PoB
Докази спалення ( PoB ) протокол: нове рішення екосистеми Cardano
Нещодавно з'явилося рішення для виклику, запропонованого Чарльзом Хоскінсоном. Це рішення вводить в екосистему Cardano протокол доказу спалювання (PoB). У цій статті буде представлено цю нову розробку, включаючи:
1. Підтвердження спалювання та його застосування
Знищення токенів ( – це поширена практика, яка насправді полягає в надсиланні токенів на недоступну адресу "чорної діри". Ця адреса не має жодного приватного ключа для відновлення знищених токенів. Громадськість може перевірити, що знищення дійсно відбулося, але знає лише одне "секретне" значення зобов'язання. Дизайн цього механізму покликаний забезпечити, щоб знищені кошти не підлягали перевірці з боку посередників.
Механізм спалювання має безліч застосувань, може збільшити вартість залишкових токенів або служити доказом зобов'язань блокчейн-протоколу. Масштабне спалювання токенів може створити дефляційний тиск, оскільки зменшує загальну кількість токенів в обігу. Хоча транзакції зі спалюванням є звичайними, їх все ще потрібно схвалювати майнерам. Незважаючи на те, що ці механізми мають переваги, є й ті, хто виступає проти спалювання токенів. У зв'язку з цим деякі команди прагнуть впровадити незаборонений протокол спалювання токенів. Ця особлива операція привернула увагу Charles Hoskinson.
Безпека доказу спалення та безпека транзакцій з переказу токенів базується на однаковому механізмі - криптографічних хеш-функціях. Ці функції легко обчислюються, але їх важко обчислити в зворотному напрямку. По суті, їх важко обчислити в зворотному напрямку, тому що зміна одного біта на вході призводить до випадкової зміни кожного біта на виході. Це означає, що обчислення зворотного напрямку від виходу криптографічної хеш-функції займе надзвичайно багато часу. Іншими словами, перевертання найменш значущого біта криптографічної хеш-функції може створити чорну діру адреси. Все, що надсилається на цю адресу, стане важким або неможливим для відновлення.
Безпека криптовалютних транзакцій повністю базується на криптографії з відкритим ключем та криптографічних хеш-функціях: "Кожного разу, коли надсилаються кошти, створюється новий непотрачений вихід транзакції )UTxO(." Цей UTxO фіксує кількість коштів і криптографічний хеш відкритого ключа отримувача. Якщо отримувач хоче використати ці кошти, він повинен підписати нову транзакцію витрат з того ж відкритого ключа.
Чому потрібно перевертати найменший значущий біт виходу хеш-функції, а не використовувати хеш 0x0? Причина в тому, що використання відомого значення робить спалювання відразу видимим. Однак, задум цього протоколу полягає в тому, щоб спочатку спалити кошти, а потім ) в окремому кроці ( довести, що вони були спалені. Для цього потрібно спочатку почати з хешу, що створює зобов'язання. Після цього зобов'язання показує, що було створено адресу чорної діри.
! [])https://img-cdn.gateio.im/webp-social/moments-e942fc679d8ef7e55f3db32648b24d99.webp(
2. Доказательство спалювання в мережі Cardano ) PoB ( смарт-контракт
Цей розділ пояснить механізм доказу спалювання в розумних контрактах Cardano. Розумні контракти Cardano — це програми, які працюють в мережі Cardano, що дозволяють розробникам контрактів виконувати фінансові ) транзакції відповідно до певних правил. Розумні контракти призначені для встановлення прозорих і перевіряємих угод між різними сторонами. Нещодавно зростання децентралізованих фінансових послуг та децентралізованих організацій сприяло експоненційному зростанню застосування розумних контрактів.
Традиційні смарт-контракти на основі Ethereum складаються з стану, записаного в реєстрі, та програми, що асинхронно викликає цей стан. Оскільки стан в реєстрі належить смарт-контракту, його можна змінити лише через програму, всі дозволені операції зі станом можна вивести з коду програми та зафіксувати в блокчейні.
Екосистема Cardano має різну структуру, яка дозволяє користувачам моделювати кожну транзакцію у своєму гаманці, ускладнюючи ( мережу ) атаки. Виниклі зміни перевіряються вузлами блокчейну, а потім фіксуються. Для цього смарт-контракти Cardano мають три складові:
Це означає, що смарт-контракти Cardano не мають централізованого стану в реєстрі. Кожен eUTxO має незалежний стан (datum), що є невід'ємною частиною його коштів. Це призводить до наступних чотирьох можливих операцій:
Слід звернути увагу на те, що кінцеві точки працюють у гаманці користувача. Після завершення виконання скрипта кінцевої точки в гаманці згенерована транзакція буде перенесена в блокчейн. У нашому випадку ця транзакція перемістить кошти до скрипта викупу. Цей скрипт перевіряє, що кошти можуть бути доступні тільки для адреси-одержувача, яка має хеш.
У процесі блокування хеш-значення може бути нашою власною адресою. У випадку згорянням хеш-значення вказує на адресу чорної діри. Ми досягаємо цього, надаючи хешу секретне зобов'язання, а потім його перевертаючи. Оскільки ми використовуємо криптографічні хеш-функції, майже неможливо знайти відповідний хеш-значення для його результату.
Зверніть увагу: flipCommitment лише перевертає найменш значущі біти хеш-значення (LSB).
Посередник, який приймає угоди, не може знати, чи це угода на знищення, чи на блокування. Завдяки використанню цього скрипта посередник не може вибірково перевіряти будь-які угоди на знищення. Знищення та блокування використовують однаковий формат викупника, лише ініціатор угоди знає, чи це знищення, чи блокування. Значення знищення можна перевірити за допомогою знищеного кінцевого пункту з даним значенням зобов'язання. До публікації значення зобов'язання ніхто не знає, яка кількість знищених коштів. Якщо вас цікавить код, кодова база буде детально описана в наступному розділі.
!
3. Розгортання смарт-контрактів ( на тестовій мережі )
Щоб запустити вузол тестової мережі з гаманцем, потрібні мнемонічна фраза та випадковий пароль. Ви можете розгорнути смарт-контракт, виконавши такі кроки:
( 1. Встановіть набір інструментів Haskell
) 2. Побудова сценаріїв Plutus
3. Запустіть контейнер для з'єднання з вузлом Cardano та гаманцем Cardano
4. Відновлення гаманця та виведення ID гаманця ### подальші кроки потребують ###, виконайте наступний код ( для генерації випадкових мнемонічних слів для тестування )
( 5. Запуск токена винищення
) 6. Виконання, перевірка спалювання
Запустивши вищезазначені кроки, зовнішні особи не можуть дізнатися, чи це транзакція на спалення, чи на блокування. Однак після публікації цього скрипта люди можуть спробувати скомпілювати відмову від викупників, відповідно до хешу їх запропонованого скрипта викупника. Це вимагатиме величезних зусиль, але може призвести до певної цензури спалення. Щоб запобігти такій ситуації та ускладнити порушення, у наступному розділі буде обговорено, як зробити це рішення безпечнішим.
! []###https://img-cdn.gateio.im/webp-social/moments-7777b1db89195a287d84464f2b80b5e9.webp###
4. Від смарт-контрактів до скриптів гаманців
Використовуючи той факт, що більшість операцій смарт-контрактів відбувається в гаманцях користувачів, створення рішень, які використовують лише гаманці, може зробити смарт-контракти непотрібними. Однак, цей підхід може мати практичну перевагу, а саме, що неможливо вибірково блокувати відповідні транзакції смарт-контрактів на знищення. Проте, ті, хто хоче заблокувати всі знищення, можуть досягти своєї мети, блокуючи всі скрипти. Використовуючи лише гаманці, єдиний спосіб перевірки знищення - це перевірка всіх транзакцій Cardano. Це є остаточним опором до цензури.
Щоб це реалізувати, нам потрібно замінити хеш відкритого ключа хешем значення зобов'язання та перевернути найменш значущій біт значення зобов'язання. Але цього недостатньо. Cardano запобігає помилкам вводу в адресах, перевіряючи структуру та код CRC. Тому найпростіший спосіб генерувати адресу з зобов'язання – це використовувати наступний скрипт та бібліотеку Cardano API.
Щоб переглянути, як це працює, ви можете використовувати наступний код для генерації адреси для спалювання:
Потім ви можете використовувати наступний код для подачі транзакції до блокчейну Cardano:
Щоб перевірити спалення, вам потрібно використовувати наступний код для перегляду транзакцій, надісланих на адресу спалення:
!
Висновок
Ця стаття розглядає реалізацію протоколу підтвердження спалювання, яка поділяється на два способи: смарт-контракти або транзакції з гаманцем. Проте, смарт-контракти Alonzo наразі не мають необхідної інфраструктури, такої як бібліотека PAB. Тому ми рекомендуємо використовувати скрипти гаманця. У будь-якому випадку, бібліотека PAB буде реалізована найближчим часом для розробки додатків на основі Cardano, поєднуючи скрипти гаманця, складне рішення смарт-контракту може бути більш доцільним для створення середовища, яке може витримати потенційні перевірки. Якщо ви хочете поглиблено ознайомитися з цим рішенням, ви можете переглянути всю відповідну інформацію на GitHub.
!