Цей посібник пояснює, що таке приватна монета, що звичайний блокчейн розкриває про ваші платежі і яку криптографію використовують приватні монети, щоб приховати відправника, одержувача й суму. Наприкінці розглянуто приклад Blocknet і те, як заробити свої перші приватні монети майнінгом.
Що таке приватна монета?
Приватна монета — це криптовалюта, побудована так, щоб платежі не виставляли на загальний огляд відправника, одержувача чи суму. Вона використовує криптографію, як-от кільцеві підписи, одноразові стелс-адреси й приховані суми, тож кожна нода й далі може перевірити кожен платіж, а той, хто читає блокчейн, дізнається про нього дуже мало.
Кожна криптовалюта веде спільний реєстр — блокчейн, — який копіюють і перевіряють багато незалежних комп’ютерів. Саме ця відкритість дає змогу незнайомим людям домовитися, хто чим володіє, без банку посередині. Питання, на яке відповідає приватна монета, — скільки з кожного платежу цей реєстр має показувати.
Bitcoin показує більшу частину. Його whitepaper описує модель приватності одним рядком: «Публіка може бачити, що хтось надсилає суму комусь іншому, але без інформації, яка пов’язує транзакцію з кимось». Імен там немає, але адреси й суми публічні. Приватна монета йде далі й не виносить подробиць кожного платежу в публічний запис, водночас доводячи, що платіж відповідає правилам.
Що публічний блокчейн розкриває про вас?
У прозорому ланцюзі, як-от Bitcoin, будь-хто, хто знає одну з ваших адрес, може знайти її в блокчейн-оглядачі й побачити:
- Її баланс до останньої одиниці.
- Кожен вхідний і вихідний платіж із сумами й датами.
- Куди гроші пішли далі, бо кожен платіж вказує адресу, з якої він надійшов, і адресу, на яку він іде.
Вашого імені там не написано, але адреси рідко довго залишаються непов’язаними з вами. Оплата в магазині, виведення з біржі чи публікація адреси для пожертв пов’язує її з вами, і з цього моменту всю історію можна прочитати. Це трохи схоже на те, щоб надрукувати свою банківську виписку на публічній дошці оголошень, де замість вашого імені стоїть номер рахунку. Кожен, кому ви платите, може бачити, що у вас є, а кожен, хто платить вам, може стежити, що ви робите з грошима.
Приватну монету побудовано так, щоб дошка оголошень показувала лише те, що відбулися дійсні платежі.
Як приватні монети приховують відправника, одержувача й суму?
Багато приватних монет поєднують три технології. Кільцеві підписи приховують відправника, змішуючи справжню монету з підставними, одноразові стелс-адреси приховують одержувача, даючи кожному платежу нову адресу, а зобов’язання з доказами діапазону приховують суму, водночас доводячи, що вона коректна. Багато з них також захищають мережевий рівень, тож походження транзакції залишається прихованим.
Кожна технологія охоплює одну частину платежу. Ось як вони працюють простими словами.
Кільцеві підписи приховують, хто заплатив
Кільцевий підпис дає змогу підписати від імені групи, не розкриваючи, який учасник підписав. Рон Рівест, Аді Шамір і Яель Тауман описали цю ідею у 2001 році, а схема CryptoNote 2013 року принесла її в криптовалюти. Коли ви витрачаєте кошти, гаманець вибирає інші виходи з ланцюга як підставні й підписує за всю групу. Будь-хто може перевірити, що один із них витрачено, а підпис не каже, який саме.
Приватні монети використовують зв’язувані кільцеві підписи, які додають образ ключа: позначку, унікальну для справжньої монети, що витрачається, яка нічого не розкриває про те, котрий це учасник кільця. Якщо той самий образ ключа з’являється двічі, мережа відхиляє друге витрачання, тож приватні монети все одно не можна витратити двічі. Monero і Blocknet використовують компактну версію під назвою CLSAG.
Стелс-адреси приховують, хто отримав оплату
У схемі зі стелс-адресами адреса, якою ви ділитеся, ніколи не з’являється в ланцюзі. Ваша адреса містить два публічні ключі: ключ перегляду й ключ витрачання. Для кожного платежу гаманець відправника змішує ці ключі з новим випадковим значенням і виводить адресу, яку використовують один раз і більше ніколи. На вашому боці приватний ключ перегляду дає гаманцю змогу сканувати ланцюг і помічати виходи, адресовані вам, а приватний ключ витрачання дає змогу їх витрачати.
Якщо десять людей заплатять на адресу з вашого вебсайту, ланцюг покаже десять окремих одноразових адрес без видимого зв’язку між ними, тож ніхто не зможе підсумувати, скільки ви отримали.
Зобов’язання й докази діапазону приховують суму
Суми зберігаються як зобов’язання Педерсена, які фіксують число, не показуючи його. Зобов’язання можна додавати, тож кожна нода може підтвердити, що те, що входить у транзакцію, відповідає тому, що з неї виходить, включно з комісією, не бачачи жодної з цифр. Потім доказ діапазону показує, що жодна прихована сума не є від’ємною, тож ніхто не може створити монети з нічого. Bulletproofs, опубліковані Бюнцем і колегами у 2018 році, зробили ці докази значно меншими.
Мережева приватність приховує, звідки почався платіж
Навіть ідеально приватну транзакцію можна було б простежити до комп’ютера, який її розіслав, стежачи за тим, яка нода оголосила її першою. Dandelion++, опублікований у 2018 році, протидіє цьому: спершу нова транзакція непомітно передається від одного піра до наступного вздовж «стебла», а потім поширюється на всю мережу з випадкової точки далі по ланцюжку.
Деякі приватні монети йдуть іншим шляхом. Zcash, запущений у 2016 році, використовує докази з нульовим розголошенням під назвою zk-SNARKs: його екрановані адреси приховують відправника, одержувача й суму, а доказ показує, що транзакція дійсна, не розкриваючи жодного з них.
Чому важлива приватність за замовчуванням?
Коли приватність — це функція, яку треба ввімкнути, транзакції, що її використовують, утворюють меншу групу, а меншу групу легше вивчати. Коли кожну транзакцію побудовано однаково, приватний платіж виглядає як будь-який інший платіж у ланцюзі, і нікому не треба пам’ятати, що його потрібно захистити.
Приватність за замовчуванням також зберігає взаємозамінність усіх монет — властивість, яку називають фунгібельністю. У прозорому ланцюзі монета несе всю свою історію, і дві монети однакової вартості можуть сприймати по-різному через те, де вони побували. Коли жодна монета не має видимого минулого, одна монета так само хороша, як будь-яка інша, а саме цього люди й очікують від грошей.
Повсякденні причини прості. Бізнес не хоче, щоб конкуренти читали його платежі постачальникам. Працівник не хоче, щоб його зарплату бачив кожен, у кого він купує каву. Людина, яка жертвує на якусь справу, може воліти тримати це при собі. Готівка й звичайні банківські рахунки вже дають людям таку приватність, а приватна монета приносить її в цифрові платежі.
Blocknet як приклад приватної монети
Blocknet — приватна монета, яка застосовує кільцеві підписи, стелс-адреси, приховані суми й мережеву приватність до кожного платежу. Його формат транзакцій не має прозорого режиму:
- Відправник: кожен вхід підписується кільцем CLSAG рівно з 16 виходів — справжнього й 15 підставних, — і консенсус відхиляє будь-який інший розмір.
- Одержувач: кожен платіж надходить на одноразову стелс-адресу.
- Сума: суми — це зобов’язання Педерсена з 64-бітними доказами діапазону Bulletproofs.
- Мережа: транзакції поширюються через Dandelion++, а маршрути стебел змінюються кожні 10 хвилин.
- Мемо: кожен вихід має місце для зашифрованої нотатки до 124 байтів, яку можуть прочитати лише відправник і одержувач і яку доповнено до фіксованих 128 байтів, тож платіж із нотаткою виглядає так само, як без неї.
Blocknet також дає змогу платити людині за іменем. Коротке ім’я Blocknet ID, як-от @alice, замінює адресу з понад 90 символів, а платежі на це ім’я все одно надходять на нові стелс-адреси, тож публічне ім’я нічого не розкриває про доходи його власника. Щоб докладно розібратися з кожним шаром, прочитайте, як Blocknet зберігає платежі приватними, а для ширшої картини — що таке Blocknet?
Заплановане оновлення Blocknet під назвою Faraday розширить групу, серед якої ховається кожне витрачання. Словами blocknetcrypto.com: «Сьогодні витрачання ховається серед 16 виходів. Після Faraday воно ховатиметься серед усіх виходів у ланцюзі».
Як отримати приватну монету?
Її можна заробити майнінгом. Доказу роботи Blocknet, Argon2id, для кожного хешу потрібно близько 2 GB пам’яті, тож майнять звичайні CPU й ОЗП настільних ПК, ноутбуків і серверів. Виплати з пулу надходять вам як будь-який інший платіж Blocknet — на одноразові стелс-адреси з прихованими сумами.
- Отримайте гаманець. Посібник із гаманця Blocknet для майнінгу показує, як його створити, зробити резервну копію сіду й скопіювати адресу.
- Завантажте seine. Це безкоштовний майнер Blocknet з відкритим кодом для Windows, macOS і Linux, доступний у розділі завантаження. Він майнить на вашому CPU, а у Windows і Linux одночасно й на будь-якій відеокарті NVIDIA, і сам налаштовується під час роботи.
- Почніть майнити на bntpool.com. Вставте свою адресу або
@name, прийміть пул за замовчуванням, і виплати приватно надходитимуть на ваш гаманець. Як майнити Blocknet проводить через кожен крок.
Поширені запитання
Чим приватна монета відрізняється від Bitcoin?
Bitcoin записує кожну адресу й суму у відкритому вигляді, тож будь-хто може простежити монети від однієї адреси до наступної й прочитати кожен баланс. Приватна монета використовує криптографію, як-от кільцеві підписи, одноразові адреси й приховані суми, тож ланцюг і далі доводить, що кожен платіж дійсний, але показує стороннім дуже мало про те, хто кому заплатив і скільки.
Чи всі приватні монети роблять приватність обов'язковою?
Ні, схеми різняться. Деякі монети, як-от Monero і Blocknet, застосовують приватність до кожної транзакції, тож публічного режиму немає взагалі. Zcash пропонує екрановані адреси, які приховують відправника, одержувача й суму за допомогою доказів із нульовим розголошенням, а поряд із ними прозорі адреси, що працюють приблизно як адреси Bitcoin. Користувачі можуть переказувати кошти між ними.
Як мережа може перевіряти платежі, яких не бачить?
Криптографія дає нодам змогу перевірити платіж, не читаючи його подробиць. Кільцевий підпис доводить, що витрачено один із кількох виходів, образ ключа блокує повторне витрачання тих самих монет, а зобов'язання щодо сум додаються, тож ноди можуть підтвердити, що входи дорівнюють виходам плюс комісія. Докази діапазону показують, що жодна прихована сума не є від'ємною.
Чи можна майнити приватну монету на звичайному комп'ютері?
Так, якщо монета використовує доказ роботи, вимогливий до пам'яті. Blocknet використовує Argon2id, якому для кожного хешу потрібно близько 2 GB пам'яті, тож майнять звичайні настільні ПК, ноутбуки й сервери. Завантажте seine, дайте йому свою адресу Blocknet або @name, і він майнитиме в пулі bntpool.com на вашому CPU і будь-якій відеокарті NVIDIA.