Завершення тесту ZeroLink - найкращий набір анонімності Успішно досягнуто: 26, Загальна оцінка: Невдале, Причина: Проблеми масштабування в мережі

Перш за все: велике спасибі всім, хто брав участь! Треба визнати, я не міг стримати сліз, бачачи величезну підтримку та активність цієї громади. У тестуванні взяли участь понад 100 людей, і багато хто дав безцінні відгуки. З цієї причини мені страшно і я повинен вибачитися за невдалий результат тестування.
Треба сказати, що CoinJoins траплялися, вони навіть зараз трапляються, коли я пишу ці рядки, але не в масштабі, на який я сподівався, загалом різні проблеми мереж заважали програмному забезпеченню правильно координувати сотні однолітків одночасно.

Претензія на винагороду за участь у розмірі 10 доларів

Надішліть мені електронний лист на адресу adam.ficsor73@gmail.com. Цей електронний лист повинен містити вашу адресу Bitcoin та шістнадцяткову транзакцію.
Отримайте цю шестигранну транзакцію з HiddenWallet, побудувавши транзакцію зі змішаною монетою та натиснувши кнопку «Копіювати шестигранну транзакцію». Однак не транслюйте його в мережу, а скасуйте. Якби ви транслювали це, то будь-хто міг би вимагати у мене ваші гроші.

Я зачекаю пару днів, щоб усі заявили про свою участь, тоді я оплачую її партією (одна транзакція - багато виходів).

Що пішло не так?

Я, тестуючи власний код

Менша проблема полягала в тому, що запуск деяких віртуальних машин для змішування або запуску деяких сценаріїв не є тим самим, як дозволити 100 користувачам екзотичних дистрибутивів Linux стрес-тестом програмного забезпечення.

Але головна проблема виникла з характеру інтеграційного тестування: тести повинні дати швидкі результати. Якщо тест займає кілька днів, це, мабуть, не є хорошим тестом. У мене є такі тести у HiddenWallet, повірте, вони не веселі. Але що відбувається, коли справжні користувачі зареєстровані в суміш цілими днями? Виходить нічого хорошого, і я до цього не був готовий.
Багато тихенько втратили зв’язок з веб-розетками, бідні хлопці, деякі з них все ще можуть вважати, що вони змішуються.
Багато хто отримав повідомлення про помилку: «координатор перейшов в офлайн», що не означало, що координатор перейшов в офлайн, це насправді означало, що клієнт перейшов в офлайн, це просто, якщо ви втратите Інтернет на мить, то перестанете міксувати, без координатора знаючи про це. Повністю вводить в оману.
Були ще деякі проблеми, але це склало 80% до 90% проблем.

Позитивні

TX з 26 набором анонімності

Найкраща транзакція, створена та транслювана в мережу, досягла 26 наборів анонімності: https://testnet.smartbit.com.au/tx/3ec6c5b983ccb53bc680cdec73af0a4a046cab5b29f6d7fe7f78af79b8b3111d

TX з 7 наборами анонімності

Була також якась суміш, яка набула 7 наборів анонімності.

Немає питань щодо продуктивності

Ще одна позитивна річ: я хвилювався, що координатор робить занадто багато речей на місцях, і це займає занадто багато часу. Однак виявилося, що мої турботи не виправдалися. Був час, коли 38 користувачів успішно підключились до суміші протягом декількох секунд, що дуже вражає, адже коли запит на реєстрацію входу надходить до координатора, він робить досить багато: він підписує, перевіряє, перевіряє utxos і робить купу інші речі на користувача. Плюс я реалізував це з блокуваннями, я запобіг асинхронному виконанню, тож я можу мати більш чистий та стабільний код за рахунок продуктивності.
Власне, це була основна причина, чому я хотів зробити тестування тест-мережі зі 100 людьми. Я боявся, що все займе багато часу, і змішання перестануть перериватися, але швидкість очікуваного вузького місця була переконливою, я радий цьому.

Жодної монети втрачено

Плюс монети не були втрачені. Не так, як це було б можливо в будь-який момент, але, можливо, варто згадати.

Люди отримують Bech32

Bech32 - це новий тип біткойн-адреси для власного відокремленого сценарію свідківPubKeys. Незважаючи на те, що його прийняття досить слабке, на диво, ніхто не мав жодних проблем.

Подія за подією

1. Експеримент: подання на / r / DarkNetMarkets

Я почав з невеликого експерименту. Не можна сказати, що «мейнстрім біткоінерів» відключено і поняття не має, що відбувається в темній мережі, хоча вони регулярно це коментують. Надіюсь, ви навіть не можете відповісти на основні запитання. Вони все ще в основному використовують Bitcoin або вони перебувають у Monero та ZCash? Вони в Bitcoin Cash чи Litecoin? Чи високі збори за біткойн руйнують їхню бізнес-модель? Мені було цікаво, наскільки вони знають і корисні, і взагалі, що таке настрої, тому я вперше надіслав у своєму блозі про тестування на / r / DarkNetMarkets. Це подання призвело до участі в сумі 3 людини.

Не можу сказати, що я став набагато розумнішим, але я можу додати кілька цікавих речей як sidenote.f

I. Божевільні імена користувачів

Святе лайно, ти буквально боїшся відповідати комусь із таким іменем.

II. Монеро шилінг

У перші пару годин я отримував підсумки та деякі прихильні коментарі, потім цей хлопець прокоментував, і суботи почали надходити. Швидко.

2. Щебетати

Я сповістив shinobymonkey з подкастів Block Digest про суміш, він згадав про нього в прямому ефірі, також твітнув, потім він твітнув, невдовзі після того, як я твіт твітнув, він почав трендувати як вогонь, хтось надіслав його в / r / Bitcoin, деякі інформаційні бюлетені писали про це, і незабаром протягом трьох днів суміш досягла цілі 100 людей. Але давайте ще не так далеко вперед

3. Ранні випуски

Тут не так вже й пішло помилки, окрім очікуваних проблем з платформою. Вони неминучі, їх потрібно повільно налагоджувати та виправляти. Однак були проблеми, пов'язані з корупцією в балансі, які хвилюють, і їх потрібно розглянути детальніше.

4. Я зрозумів, що перший тур провалиться

Це нормальна поведінка, але це не було ідеально для цієї сесії тестування, тому я шукав шляхи її вирішення. Ми вирішили встановити максимальний набір анонімності наступного раунду до 90, щоб запланувати 10 користувачів випадок, і встановив час очікування реєстрації на наступний раунд на 12 годин, про всяк випадок.

5. Досягнуто набір анонімності

Тож я вистрілив 100-го однолітка і почав тест. Як і очікувалося, випробування вичерпано у фазі підтвердження підключення.

6. 38 Користувач залишається та автоматично підключається

Це було несподівано, більше половини випало, не помітивши координатора, чому? Як було пояснено раніше, це було так, адже люди мовчки втрачали підключення до веб-сокетів або Інтернет-зв’язку десь у минулі дні.

7. Перейдіть на план B

Добре, тест не вдався, спробуємо зробити трохи спільної роботи. Тому я знизив мінімальну анонімність наступного раунду до 7 із 21, а час очікування реєстрації - 3 хвилини.

Через 12 годин була здійснена спроба чергового раунду, як очікували, люди випали, потім 26 підключились і успішно виконали мікс.

Звідси на 7 анонімних наборах почали працювати суміші. Це тривало деякий час, якщо чесно, ця частина тесту була досить успішною, коли людям нарешті не довелося чекати годин, щоб почати суміш, але 7 не є 100.

Рухатися вперед

Іншого тестування testnet не збирається. Ми визначили основні проблеми і вирішимо їх.

Хороша новина в тому, що я більше нічого не можу додати, окрім блискавки та конфіденційних транзакцій, але не скоро. З цього моменту цілі працюють над стабілізацією та зручністю для користувачів. 2018 рік стане роком, коли анонімність зрештою відправляється на біткойн.

Проблеми, пов'язані з крос-платформою

Нудна, механічна робота з їх налагодження. Але принаймні легкий. Вони будуть виправлені за випуском.

Проблеми з підключенням

Частина підключення до мережі повинна бути переписана з нуля. Ми зробили тут багато компромісів, які врешті-решт призвели до падіння цього тесту. Краще, якщо ми зробимо крок назад і уважно розглянемо, який найкращий спосіб просунутися вперед.

Проблеми з корупцією / ефективністю балансу

HiddenWallet - це повний блок, який завантажує гаманець SPV. Це означає, що ми завантажуємо повні блоки зі створення гаманця. Щоб зробити цю роботу, мені довелося написати майже все з нуля, чого розробникам гаманців ніколи не доводилося. Це призводить до складного коду та деяких проблем з продуктивністю. Зараз минув майже рік, оскільки я це зробив і багато чому навчився. Я міг би зробити це набагато краще сьогодні.
Як правило, є два напрямки, на які я можу піти, щоб вдосконалити його. Я можу або замінити частини заднього кінця на Bitcoin Core, їх продуктивність та стабільність неможливо конкурувати. У цьому випадку я навіть можу почати робити внесок у Core та спробувати підштовхнути повний блок SPV реалізації Jonas Schnelli вперед до Core. Якщо це потрапило б у мене, у мене справді не було б причин користуватися поточним спеціальним кодом у HiddenWallet.
Інший напрям - це втілити щось нове. Існує декілька архітектури конфіденційності гаманця, оскільки я почав працювати над HiddenWallet. Принаймні на рівні ідеї.
(1) Я міг би зробити кілька розумних речей. Наприклад, при мінімальній кількості взаємодії з користувачем користувачеві не доведеться завантажувати стільки блоків, але розумно ми могли розібратися, у яких блоках він має транзакцію.
(2) Я також міг би реалізувати централізовану модель, де сервер є також програмним забезпеченням для блокчейн-аналізу, і його єдине призначення - спробувати відфільтрувати, які транзакції не можуть зацікавити клієнтів на 100%.
(3) Або подивіться на Neutrino, який може дуже добре закінчити архітектуру гаманця LN за замовчуванням. Хоча для введення Bitcoin Core у нього потрібен код серверного сервера, це цілком робота, і я все ще не впевнений у своїх властивостях конфіденційності.

Поліпшення специфікації ZeroLink

У ZeroLink немає вад конфіденційності, але у неї є деякі проблеми із користувацьким досвідом. Я багато чого навчився за останні кілька місяців, що мені вдалося б додати багато незначних удосконалень, можливо, і деякі основні, теж, можливо, я навіть прийшов до новаторської реалізації чи чогось іншого. Можливо, варто спробувати переглянути і ознайомитись з деякими новими дослідженнями, які з тих пір потрапили до мого столу, але я не мав часу їх оцінювати.

Заключні слова

Знову. ГОЛОВНЕ ДЯКУЄМО всім, хто брав участь, і мені дуже шкода невдалого тесту. Особлива подяка Метью Хейвуду за його роботу над HiddenWallet. Будьте в курсі, я продовжуватиму працювати з відкритим кодом та над конфіденційністю Bitcoin і запускати ZeroLink у 2018 році! З Різдвом та новим роком!