Конфіденційні транзакції
Одна з головних відмінних рис будь-якої мережі блокчейн - прозорість. А це означає, що кожен вузол може зберігати у себе копію всіх транзакцій в мережі. А інші користувачі можуть, при необхідності, звірятися з цим списком і перевіряти його на достовірність - це називається «оглядач блоків». Обидва ці процеси відповідають за високу стійкість всієї мережі до помилок і навмисного внесення різних неузгоджених змін.
Однак з точки зору конфіденційності інформації - це великий мінус. Справа в тому, що в більшості мереж блокчейн можна простежити історію переміщення кожного окремо взятого токена. Тобто монети є незамінними. І якщо якась із них потрапила в так званий «чорний список» - список нелегальних транзакцій - мережа може відмовитися від її використання. Простіше кажучи, якщо з вами розрахувалися монетами, які колись опинилися в цьому списку, з величезною часткою ймовірності ви не зможете використовувати їх в майбутньому.
І це не єдина слабка сторона системи забезпечення конфіденційності блокчейна. Так, наприклад, можна відстежити не тільки окремі монети, але і користувачів. А все тому, що система псевдонімів (публічних адрес) далека від ідеалу. Є способи, що дозволяють отримувати кластери таких псевдонімів, які набагато простіше прив'язати до конкретного мережевого об'єкту.
Однак є спосіб зробити перекази дійсно приватними - конфіденційні транзакції.
Що це таке?
Вперше про цей новий принцип здійснення переказів зайшла мова в 2013 році, коли Адам Бек - генеральний директор Blockstream, вперше висловився про необхідність якось поліпшити поточний рівень конфіденційності мережі блокчейн. Його ідею підхопив біткоін-розробник Грегорі Максвел. Основною метою було вирішити проблеми, пов'язані з взаємозамінністю і псевдоанонімністю. Рішенням став алгоритм, що приховує суми переказів від всіх учасників мережі, крім тих, хто безпосередньо здійснює дану транзакцію.
При цьому, однак, збереглася можливість перевіряти достовірність здійснених переказів. Правда, в дещо спрощеному вигляді - отримана сума не повинна була перевищувати відправлену.
Конкретний приклад. Якщо користувачу мережі Біткоін Семену необхідно, наприклад, відправити своєму товаришу Миколі 0,3 біткоіни, то він робить це в такий спосіб. Бере свій 1 BTC, переводить його на певний проміжний гаманець, а потім - розбиває на 2 частини. Одна - 0,3 біткоіни для Миколи, друга - 0,69 повертається на власний рахунок (враховується ще й ціна транзакції). Сторонні користувачі можуть побачити, що сума внесених коштів дорівнює сумі виведених коштів, але це все, що їм доступно.
Використовувані методи шифрування
Головна проблема більшості сучасних методів шифрування - неможливість безпосередньо працювати із зашифрованою інформацією. Немов би її помістили в сейф, а дверцята - закрили. Сейф можна переміщати, передавати. Але міняти або використовувати - неможливо. Тому завдання програмістів полягало в тому, щоб створити «цифровий сейф», вміст якого залишався б прихованим, але доступним для перевірки різними методами.
Рішенням стало використання гомоморфного шифрування, що зветься «Зобов'язання Педерсена». Розглянемо його роботу на конкретному прикладі.
Припустимо, ви вирішили провести конкурс серед своїх передплатників - хто вгадає вашу улюблену криптовалютну біржу - отримає 0,1 BTC. Однак що заважає вам вислухати запропоновані варіанти, а потім - озвучити той, який не був запропонований? Технічно - нічого. Тому щоб розвіяти сумніви учасників вікторини в своїй чесності, ви можете опублікувати відповідь, пропущену через хеш-функцію. Наприклад - SHA-256. Вийде наступна комбінація:
fce23bf9070ab03bf8f8297d2c151db8373bebe4345c3b55bd1fce2059adfd11
Розшифрувати назад отриманий хеш вони не зможуть, але перевірити, чи збігається відповідь вікторини, пропущена через ту ж хеш-функцію з озвученою - без проблем.
Однак ніхто не заважає сильно зацікавленим особам скласти список більшості бірж що використовуються і пропустити їх через алгоритм хешування. Так методом простого перебору можна отримати правильну відповідь - EXBASE.IO.
Але якщо вводити більш складний текст, типу «моя улюблена криптобіржа - EXBASE.IO», то зламати підбором хеш вже не вийде.
Власне, зобов'язання Педерсена і полягає в додаванні перед конкретною адресою користувача додаткової інформації. А при здійсненні транзакції, створюється два додаткових зобов'язання - для адреси одержувача і для адреси повернення.
А автоматичні алгоритми можуть визначити, чи співпадають дані на вході з даними на виході, без розуміння суті закодованої інформації.
Потенційна користь
Використовуючи конфіденційні транзакції, можна домогтися одночасно і високої прозорості, і високої приватності. Будь-хто може перевірити правдивість даних, але з їх змістом може ознайомитися тільки той, у кого є можливість дешифрування.
Проблема в тому, що це додаткове кодування серйозно збільшує величину файлу. А оскільки Біткоін і так не справляється з проблемою масштабування, впровадження протоколу конфіденційних транзакцій ще сильніше навантажить систему. Так що цей сценарій вкрай малоймовірний.
Що не заважає іншим блокчейнам, більш пристосованим для передачі великих обсягів інформації, активно впроваджувати конфіденційні транзакції. Наприклад, блокчейн Monero використовує для досягнення високої анонімності і взаємозамінності саме їх, а також - так звані «кільцеві сигнатури». Приблизно те ж саме роблять і сайдчейни (блокчейн-надбудова на велику мережу) Liquid і MimbleWimble.
Висновок
Конфіденційні транзакції - не єдиний спосіб підвищення безпеки та анонімності мереж блокчейн. Але один з найбільш простих і ефективних на справі. Так що ті мережі, які успішно вирішили або вирішують для себе проблеми масштабованості, або активно його використовують, або планують це здійснити. Тому як саме висока конфіденційність інформації - основна перевага криптовалюти в порівнянні з традиційними фінансами.