Зміст
вступ
Що таке конфіденційні транзакції?
Огляд задіяної криптографії
На що здатні конфіденційні транзакції?
Висновок
вступ
Часто вважається критичним для функціонування блокчейну те, що система є прозорою. Це означає, що кожен вузол у мережі повинен мати можливість зберігати копію та перевіряти, чи не було порушено жодних правил. Для багатьох розподілених реєстрів будь-хто може завантажити онлайн-провідник блоків, який дозволить шукати блоки, транзакції та адреси.
З точки зору конфіденційності, це не ідеальна ситуація. У такій системі, як Bitcoin, будь-яка транзакція може бути пов’язана з тією, яка їй передує. Монети технічно не є взаємозамінними, тобто їх можна пов’язати з конкретними транзакціями. Ніхто не може заборонити вам надсилати біткойни, але ваша транзакція може бути відхилена, якщо залучені в неї монети раніше проходили через «адресу з чорного списку».
У гіршому випадку відсутність взаємозамінності може серйозно вплинути на самі основи системи. «Чисті» монети можуть перевищувати їх вартість, тоді як старі монети через свою історію стануть менш цінними.
У біткойнах конфіденційність часто переоцінюють. Відстежувати можна не тільки монети, а й користувачів. Вони користуються «псевдонімом» (замість імен видно публічні адреси), що не позбавлене недоліків. Складні методи аналізу можуть із зростаючим рівнем точності агрегувати адреси, намагаючись деанонімізувати об’єкти в мережі.
Однією з оновлених пропозицій щодо справді приватності транзакцій є конфіденційні транзакції.
Що таке конфіденційні транзакції?
Конфіденційні транзакції (CT) були вперше розглянуті в 2013 році Адамом Беком, генеральним директором Blockstream; пізніше Грегорі Максвелл, розробник біткойнів, розширить свій аналіз. Максвелл виділить проблеми, згадані в попередньому розділі (тобто взаємозамінність і слабка «псевдонімність»), і запропонує рішення. Відправлені суми могли бути захищені від решти мережі, щоб лише сторони, залучені до транзакції, могли знати ці дані.
За звичайних обставин (з загальнодоступними транзакціями) вузлу легко перевірити, що отримана сума не перевищує суму відправлення. Якщо Аліса хоче надіслати Бобу 0,3 BTC, вона візьме невитрачений вихід (скажімо, 1 BTC) і розділить його на дві частини: 0,3, які вона надішле Бобу, і 0,69, які вона поверне собі (різниця, чого не вистачає відповідає відрахуванню гірничої комісії).
Для інших вузлів це проста алгебра: 1 більше за 0,3 + 0,69, усі підписи правильні, а вхідні дані Аліси ще ніде не були використані, тому транзакція має бути дійсною. Однак, коли величини заплутані, все вже не так тривіально. Як можна навіть оцінити, чи дорівнює або перевищує невідома величина сума двох інших невідомих величин?
Огляд задіяної криптографії
Щоб приховати дані, потрібне шифрування. Однак традиційні методи можна порівняти зі зберіганням документів у сейфі: після того, як вони зачинені всередині, вони непридатні до використання, доки сейф не буде вилучено. Що нам потрібно для роботи конфіденційних транзакцій, так це цифровий сейф, який не розкриває свій вміст, але властивості якого можуть бути перевірені сторонніми особами.
Відповідь на це питання криється в гомоморфному шифруванні, зокрема, у схемі під назвою «зобов'язання Педерсена». Цей тип шифрування дозволяє стороннім особам виконувати операції із зашифрованими даними (які вони не бачать) для кількох цілей.
Звичайний хеш можна використовувати для фіксації даних, які ви хочете розкрити пізніше. Уявіть, що ви хочете оголосити конкурс у соціальних мережах, у якому кожен, хто вгадає ваш улюблений обмін, виграє приз у розмірі 0,01 BTC. Учасники можуть скептично поставитися до того, що ви зможете побачити відповіді після завершення конкурсу, і ви зможете вибрати обмін, який не згадується.
Що ви можете зробити, так це надати своїм підписникам хеш: рядок, здавалося б, випадкових чисел і символів, які відповідають певному запису. Ви пропускаєте свій обмін через функцію, щоб отримати певний результат. Проілюструємо за допомогою алгоритму SHA256:
f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191Дивлячись на це, ви навіть не уявляєте, що було введено. Ви також не можете повернути функцію, щоб отримати її. Однак, якщо ви знаєте, що запис був «Binance», ви можете легко переконатися, що ваш хеш відповідає згаданому вище. Таким чином, ваші підписники будуть впевнені, що ви не зміните свою відповідь після закінчення конкурсу, оскільки це призведе до зовсім іншого результату.
Однак насправді це не дуже безпечно. Хоча ваші послідовники не можуть переробити алгоритм, вони можуть створити список потенційних угод, хешуючи кожну з них, доки не знайдеться збіг. Ми можемо зменшити ймовірність цього, додавши до даних, які ми збираємося хешувати, деякі випадкові дані, які називаються факторами засліплення.
Якщо ми введемо «Binance — моя улюблена біржа, я люблю її більше, ніж будь-яку іншу біржу 2#43Wr», опоненту стає набагато важче вгадати (а за 0,01 BTC це, звичайно, навряд чи хтось спробує).
Зобов’язання Педерсена дозволяють нам додати внески за зобов’язаннями. Як Максвелл ілюструє:
C(BF1 + D1) + C(BF2 + D2) = C(BF1 + BF2, D1 + D2)Де BF – коефіцієнт засліплення, а D – дані.
Звідси є ще кілька кроків, які включають криптографію еліптичної кривої та тестування діапазону, але основна ідея полягає в тому, що користувач має сильну прихильність своїй адресі. Під час надсилання коштів створюється два додаткових зобов’язання (одне для зміни адреси, яку потрібно повернути користувачеві, і одне для адреси призначення).
Ніхто не знає, скільки було надіслано, але вони можуть перевірити, що зобов’язання щодо обміну та призначення (ліва частина рівняння Максвелла) додають адресу джерела (права частина рівняння). Якщо це оцінюється правильно, транзакція користувача є дійсною, оскільки можна показати, що вхідні дані дорівнюють виходам.
На що здатні конфіденційні транзакції?
Якби конфіденційні транзакції були реалізовані в Bitcoin, ми насолоджувалися б набагато більш приватною системою. Як входи, так і виходи будуть замасковані від ширшої мережі, а записи в реєстрі будуть обфусковані, але вузли все одно зможуть перевірити їх автентичність. З таким значним підвищенням конфіденційності біткойни можуть стати фактично взаємозамінними, оскільки аналіз у ланцюжку більше не розкриває історію певної одиниці.
Щодо того, чи будуть конфіденційні транзакції інтегровані в протокол, наразі це малоймовірно. З цією додатковою функціональністю транзакції набагато більші, ніж стандартні: враховуючи обмежений простір блоків, це лише збільшить попит. Це також вимагатиме, щоб більшість учасників погодилася змінити код, завдання, яке традиційно виявляється складним.
На закінчення
Конфіденційні транзакції зазнали деяких ітерацій в інших криптовалютах і сайдчейнах біткойнів. Наприклад, Monero використовує їх у поєднанні з конструкціями, які називаються кільцевими підписами, щоб досягти анонімності та взаємозамінності. Liquid sidechain реалізує їх для більшої конфіденційності, а MimbleWimble розширює їх до тих самих кінцевих точок.
З огляду на переваги, які вони приносять, конфіденційні транзакції мають компроміс із більшим слідом. Криптовалюти часто мають проблеми з масштабованістю та продуктивністю на базовому рівні, а більші розміри транзакцій привабливі не для всіх. Тим не менш, прихильники конфіденційності вважають, що важливо приховати суми транзакцій, а учасникам дійсно дозволити криптовалюту служити взаємозамінними грошима.
