вступ
Прозорість системи є запорукою нормальної роботи блокчейну. Так звана прозорість означає, що кожен вузол у мережі може зберігати копію та має право перевіряти наявність порушень. У багатьох розподілених книгах будь-хто може завантажити провідник блоків і переглядати блоки, транзакції та адреси в мережі.
З точки зору конфіденційності цей підхід не ідеальний. У таких системах, як Bitcoin, кожна транзакція може бути пов’язана з попередніми транзакціями. Технічно токени не є взаємозамінними, тобто кожен токен прив’язаний до певної транзакції. Ніхто не може заборонити вам надсилати біткойни, але якщо ці монети коли-небудь пройдуть через адресу з чорного списку, інша сторона має право відхилити транзакцію.
У найгіршому випадку відсутність гомогенізації може мати глибокий вплив на основу системи. Чисті токени отримують премію, тоді як ранні токени знецінюються через історичні проблеми.
Конфіденційність біткоїна часто перебільшена. Насправді токени та користувачі в системі мають сліди. Люди звикли діяти анонімно (показуючи публічні адреси, а не імена), але цей підхід має певні недоліки. З підвищенням точності передові аналітичні технології збиратимуть об'єкти в мережі для реалізації деанонімізації.
Конфіденційні транзакції є засобом, що сприяє справжній приватності транзакцій.
Що таке конфіденційні транзакції?
Концепція конфіденційних транзакцій (CT) була впроваджена в 2013 році, вперше запропонована генеральним директором Blockstream Адамом Беком, а потім розширена розробником біткоїна Грегорі Максвеллом. Максвелл у першій частині підкреслив проблеми, згадані як «гомогенізація» та «слабка анонімність», і запропонував відповідні рішення. Він вказав, що суми транзакцій можуть бути приховані в більш широкій мережі, тільки учасники транзакцій можуть знати конкретні значення.

У нормальних умовах (коли транзакції можна переглядати публічно) вузли можуть легко перевірити, чи перевищують отримані токени суму відправлених коштів. Наприклад, Аліса хоче надіслати Бобу 0.3 BTC, вона використовує непотрачене вихідне значення (ми називаємо його «1 BTC») і розділяє його на дві частини: 0.3 BTC відправляє Бобу, 0.69 BTC повертає на особистий гаманець (залишок використовується як плата за майнінг).
Для інших вузлів це просто алгебраїчна задача: 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 позначає дані.
Наступні кілька кроків включають криптографію еліптичних кривих та свідчення про обсяг, але основна ідея полягає в обробці адреси за допомогою зобов'язання Педерсона. При відправці коштів система додатково генерує два «зобов'язання» (для адреси повернення коштів та цільової адреси).
Ніхто не знає суму відправлення, але можна перевірити, чи дорівнює зобов'язання повернення та цільове зобов'язання (ліва сторона рівняння Максвелла) оригінальній адресі (права сторона рівняння). Якщо обчислення правильні, це достатньо для доведення того, що вхідні та вихідні дані рівні, що свідчить про дійсність транзакції користувача.
Цілі, які можуть бути досягнуті за допомогою конфіденційних транзакцій.
Якщо в біткоїні застосувати конфіденційні транзакції, можна створити систему з підвищеним рівнем конфіденційності. Входи та виходи в системі будуть приховані, а об'єкти в бухгалтерії також будуть розмиті, але вузли все ще зможуть перевірити їх достовірність. Зі значним підвищенням конфіденційності, аналіз блокчейну не зможе розкрити історію даної одиниці, тому біткоїн може бути ефективно обмінюваним.
Щодо можливості інтеграції «конфіденційних транзакцій» в протокол, наразі це, здається, малоймовірно. Після додавання цієї функції обсяг транзакцій стане більшим, ніж у звичайних транзакціях, і враховуючи обмежений простір блоку, це природно викликатиме більший попит на ринку. Крім того, більшість учасників мережі повинні погодитися на зміну коду, що в минулому також було великою проблемою.
Підсумок
Деякі криптовалюти пройшли певну ітерацію конфіденційних транзакцій у бічних ланцюгах біткоїна. Наприклад, Monero ідеально поєднує конфіденційні транзакції зі структурою «кільцевого підпису», досягаючи анонімності та гомогенізації. Приватність бічного ланцюга Liquid і MimbleWimble також значно покращено.
Конфіденційні транзакції дійсно мають багато переваг, але також стикаються з проблемою збільшення обсягу обробки. Криптовалюти протягом тривалого часу стикаються з викликами в масштабованості та пропускній спроможності на базовому рівні, великі транзакції також можуть відлякувати багатьох. Однак прихильники конфіденційності вважають за необхідне приховати суми транзакцій та учасників, щоб просунути криптовалюти до справжніх гомогенізованих валют.
