Новий стрес-тест? Мережа bitcoin другу добу працює в критичному режимі

В останні кілька днів на мережу Bitcoin з різних сторін звалилося одночасно кілька напастей. Окремо подібні події траплялися і раніше, але тепер відразу все чинники поєдналися разом. Створюється враження, що якась таємнича, але могутня сила піддає біткойнов важким і витонченим випробувань для того, щоб перевірити - чи годиться він на роль світової платіжної системи?

Навіть якщо ніякої невидимої руки не існує, такий стрес-тест буде корисний і для розробників Bitcoin, і для всієї спільноти. Адже саме такі ситуації показують реальний запас міцності і виявляють недоліки. Давайте подивимося, як розвивалися події.

1. Ще в кінці червня, в зв'язку з назріваючу кризою в Греції, "банківськими канікулами" і навіть блокуванням PayPal для греків, активність в мережі Bitcoin зросла. Безліч людей зацікавилися криптовалюта, як незалежним від державного контролю засобом збереження своїх заощаджень під час фінансової нестабільності. Самі по собі ці події швидше корисні для біткойнов, але тепер створили додаткове навантаження.

2. Дискусії про недостатнє обмеження розміру блоку в 1 Мб йшли давно, зі змінним успіхом і навіть конфліктами, але два тижні тому, нарешті, було досягнуто згоди про збільшення ліміту до 8 Мб на початку 2016 року.

3. 23 червня біржа Coinwallet. eu вирішила довести всім, що зміна розміру блоку дійсно необхідно.Це їй вдалося, але гранично практичний метод докази влаштував в співтоваристві неабиякий переполох. Причому, компанія попередила, що проведе другий етап "тестування".

4. 4 липня виникло критичне роздвоєння потужностей основних майнінгових пулів, викликане переходом на обов'язкове дотримання BIP66 - зміни протоколу Bitcoin до блоків версії 3 (v3). У результаті мережа на деякий час розділилася на дві фактично рівних гілки і сталося відділення і втрата (для Майнер) двох ланцюжків в 6 і 3 блоки відповідно. На сьогоднішній день майже всі пули перейшли на блоки третьої версії, крім двох найбільших - F2Pool (колишній Discus Fish) і Antpool. Тому, "тривожний" статус в мережі до сих пір не відмінено і роздвоєння блокчейна все ще можливі.

5. Але найцікавіше почалося увечері 7 липня - хтось запустив атаку на мережу "спамом транзакцій" - тобто генерацією величезної кількості дрібних транзакцій, які повністю забивали все нові блоки. На даний момент не відомо, хто і з якою метою проводить цю атаку. Незважаючи на загальнодоступність блокчейна, анонімність Bitcoin не дає точно встановити походження цих транзакцій. Зараз виявлено близько 400 пов'язаних адрес, які безперервно передають один одному по 1000 Сатоши (0. 00001 BTC), виплачуючи при цьому комісії, отже, атака обходиться її ініціатору недешево. Ось один з цих адрес, а слідуючи по ланцюжку, можна знайти і інші.

Що відбувається?

Постараємося описати ситуацію на поточний момент. Ще вчора стала швидко зростати чергу непідтверджених транзакцій. Раніше вона вкрай рідко перевищувала 10 000, тепер же за даними Blockchain. info постійно тримається вище 20 000:

Загальний розмір усіх непідтверджених транзакцій складає майже 22 мегабайта, тобто для їх відправки потрібно в середньому 22 повних блоку, але транзакції продовжують постійно прибувати.Тому, розмір черги майже не змінюється. Ситуація ускладнюється тим, що в мережі виникає досить багато "порожніх" блоків, що містять тільки 1-2 транзакції. Кожен блок включає мінімум одну транзакцію - в ній Майнер отримують здобуті монети. Чи відбувається це через технічні причини або від бажання власників пулів швидше отримати блок - невідомо. Кожен порожній блок відсуває чергу ще на 10 хвилин.

Наслідки атаки добре видно на деяких графіках на Blockchain. info:

Ви можете бачити, що в останні два дні різко зросли як кількість транзакцій в блоці, так і середній розмір блоку, вже небезпечно наближається до максимального значення в 1 Мб. Таким чином, цей другий стрес-тест ще раз переконливо доводить необхідність збільшення ліміту.

Крім великих неприємностей, відбулися і більш дрібні. Зокрема, близько 21: 00 за київським часом на деякий час "завис" один з основних інформаційних ресурсів про Bitcoin - Blockchain. info.

Сталося це внаслідок двох блоків, які не зміг прочитати block explorer - 364422 і 364423 від F2Pool, які, тим не менш, пройшли в основний блокчейн. Сервіс тепер працює, але як і раніше не показує транзакції з цих двох блоків.

Що буде далі?

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

Коли закінчиться атака - зараз сказати ми не можемо. Але будемо сподіватися, що таємничий "тестер" заявить про себе і роз'яснить мотиви своїх вчинків.Можливо, це викличе прискорення випуску патча, що збільшує максимальний розмір блоку - проблема тепер очевидна для всіх.

Що стосується несумісності версій блоків і можливого роздвоєння ланцюжка - вона стоїть не так гостро, але може виявитися більш серйозною. Більшість пулів після попередження розробників оновили свої гаманці, але два найбільших китайських пулу, разом мають до 40% всієї потужності, до сих пір не оновилися і невідомо, коли вони це зроблять. Така поведінка може викликати не тільки технічні проблеми, з якими мережу порівняно легко справляється, а й завдасть удар по репутації Bitcoin. Очевидно, що механізми саморегуляції мережі не надто ефективні проти великих Майнер. Можна тільки не звертати на них уваги - за рахунок зниження безпеки або збільшення кількості підтверджень.

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

Однак, не тільки вільні децентралізовані системи страждають від технічних недоліків. За іронією долі, саме сьогодні через технічний збій на кілька годин припинила роботу одна з найбільших торгових майданчиків світу - Нью-Йоркська фондова біржа (NYSE). За повідомленнями ЗМІ, причиною стало невдале оновлення деяких систем. Ніхто в світі не застрахований від подібних неприємностей.


08. 07. 2015
Tomcat_MkII