Logo
Поділитися цією статтею

Міф про незмінність блокчейна

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

Доктор Гідеон Грінспен є засновником і генеральним директором Coin Sciences, компанії, що стоїть за MultiChain платформа для приватних блокчейнів.

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

Продовження Нижче
Не пропустіть жодної історії.Підпишіться на розсилку Crypto for Advisors вже сьогодні. Переглянути Всі Розсилки

— Святий Августин, De natura boni, i, 405 р. н. е. (з невеликими редагуваннями)

Якщо ви запитаєте когось, хто добре обізнаний про характеристики блокчейнів, у відповіді незмінно з’явиться слово «незмінний».

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

Це позначає блокчейни як відмінні від звичайних файлів або баз даних, у яких інформацію можна редагувати та видаляти за бажанням. Або так стверджує теорія.

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

Минулий рік став свідком двох яскравих прикладів:

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

презирство також було направлено на ідею редагованого (або змінюваного) блокчейну, в якому заднім числом можна вносити зміни в історію транзакцій за певних умов. Пересмішники поставили запитання: «Яка може бути сенс блокчейну, якщо його вміст можна легко змінити?»

Для тих із нас, хто знаходиться осторонь, весело спостерігати за обливанням брудом. Не в останню чергу тому, що обидві ці критики є просто неправильними. Обидва випливають із фундаментального нерозуміння природи незмінності в блокчейнах (і в будь-якій комп’ютерній системі).

Для тих, хто не має часу, ось підсумок:

У блокчейнах не існує такого поняття, як ідеальна незмінність. Справжнє запитання: за яких умов певний блокчейн можна, а за яких не можна змінити? І чи відповідають ці умови проблемі, яку ми намагаємося вирішити?

Іншими словами, транзакції блокчейна не записані в розумі Бога (з вибаченнями перед Августином вище). Натомість поведінка ланцюга залежить від мережі тілесних комп’ютерних систем, які завжди будуть вразливими до знищення або пошкодження. Але перш ніж ми детально розберемося, давайте продовжимо, підсумувавши деякі основи самих блокчейнів.

Коротко про блокчейни

Блокчейн працює на наборі вузлів, кожен з яких може перебувати під контролем окремої компанії, особи чи організації. Ці вузли з’єднуються один з одним у щільну однорангову мережу, так що ONE вузол не діє як центральна точка контролю або збою.

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

Кожен вузол незалежно перевіряє дійсність кожної нової вхідної транзакції з точки зору: (а) її відповідності правилам блокчейну, (б) її цифрового підпису та (в) будь-яких конфліктів із раніше побаченими транзакціями. Якщо транзакція проходить ці перевірки, вона потрапляє до локального списку тимчасових непідтверджених транзакцій цього вузла («пул пам’яті») і буде перенаправлена ​​до однорангових вузлів.

Транзакції, які не пройшли, відхиляються відразу, тоді як інші, оцінка яких залежить від невидимих ​​транзакцій, поміщаються в зону тимчасового зберігання («пул сиріт»).

Через певні проміжки часу ONE із вузлів «валідатора» в мережі створює новий блок, який містить набір ще непідтверджених транзакцій. Кожен блок має унікальний 32-байтовий ідентифікатор, який називається «хеш», який повністю визначається вмістом блоку. Кожен блок також містить мітку часу та LINK на попередній блок через його хеш, створюючи буквальний «блокчейн», що повертається до самого початку.

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

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

Більшість загальнодоступних блокчейнів, як-от Bitcoin, використовують «доказ роботи», який дозволяє створювати блоки будь-кому в Інтернеті, хто може вирішити безглузду та диявольськи складну математичну головоломку. Навпаки, у приватних блокчейнах блоки, як правило, підписуються ONE або декількома дозволеними валідаторами з використанням відповідної схеми для запобігання контролю меншості. (У нашому продукті MultiChain використовується техніка під назвою «різноманітність майнінгу», яка вимагає участі мінімальної частки дозволених валідаторів, щоб створити дійсний ланцюжок.)

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

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

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

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

Мінливість у публічних ланцюгах

Повернемося до двох прикладів, наведених у вступі, в яких доктрина незмінності була використана як основа для глузування.

Ми почнемо з твердження, що процедури консенсусної перевірки, які використовуються в дозволених блокчейнах, не можуть забезпечити «справжню незмінність», обіцяну публічними мережами.

Цю критику найпростіше вирішити, вказавши на вразливість самих публічних блокчейнів. Візьмемо, наприклад, блокчейн Ethereum , який постраждав нищівний подвиг у червні 2016 року. Хтось знайшов лазівку в кодуванні в смарт-контракті під назвою The DAO, у який було інвестовано майже 250 мільйонів доларів, і почав швидко виснажувати його кошти. Хоча це явно порушувало наміри творців контракту та інвесторів, його умови покладався на мантру, що «кодекс є законом». Закон чи ні, але менше ніж через місяць програмне забезпечення Ethereum було оновлено, щоб запобігти виведенню хакером «заробленої» Криптовалюта .

Звичайно, це оновлення не можна було застосувати, оскільки кожен користувач Ethereum контролює свій власний комп’ютер. Тим не менш, її публічно підтримав Віталік Бутерін, творець ethereum, а також багато інших лідерів громади. У результаті більшість користувачів підкорилися, і блокчейн з новими правилами зберіг назву «Ethereum».

Меншість не погодилася зі зміною та продовжила блокчейн згідно з його оригінальними правилами, отримавши звання «Ethereum Classic». Більш точним вибором назв може бути «Ethereum compromised» і «Ethereum the pure». У будь-якому випадку, демократія є демократія, і (прагматичний і популярний) «Ethereum» тепер коштує понад 10 разів (ідеалістичний, але відсторонений) «Ethereum Classic».

Тепер давайте розглянемо менш доброзичливий спосіб, яким можна підірвати незмінність публічного блокчейну. Нагадаємо, що для створення блоку або «майнінгу» в Bitcoin і Ethereum використовується схема підтвердження роботи, у якій необхідно вирішити математичну задачу, щоб створити блок і отримати винагороду. Цінність цієї винагороди неминуче перетворює майнінг на гонку озброєнь, коли майнери змагаються, хто швидше вирішить проблеми. Щоб компенсувати це, мережа періодично регулює складність, щоб підтримувати постійну швидкість створення блоків, кожні 10 хвилин у Bitcoin або 15 секунд у Ethereum.

За останні п’ять років складність біткоіна зросла в 350 000 разів. Сьогодні переважна більшість майнінгу Bitcoin відбувається на дорогому спеціалізованому обладнанні в місцях, де холодна погода та дешева електроенергія.

Наприклад, за 1089 доларів ви придбаєте Antminer S9, який майнить блоки в 10 000 разів швидше, ніж будь-який настільний комп’ютер, і спалює в 10 разів більше електроенергії. Все це далеко від демократичних ідеалів, з якими створювався Bitcoin , навіть якщо це робить блокчейн надзвичайно безпечним.

Ну, начебто безпечно. Якби хтось хотів підірвати незмінність блокчейну Bitcoin , ось як вони б це зробили. По-перше, вони встановлять більше потужностей для майнінгу, ніж решта мережі разом узяті, створюючи так звану «атаку 51%». По-друге, замість того, щоб відкрито брати участь у процесі майнінгу, вони майнитимуть власну «Secret гілку», яка містить будь-які транзакції, які вони схвалять, і цензурує решту. Нарешті, коли бажаний проміжок часу минув, вони анонімно транслювали свою Secret гілку в мережу.

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

Наразі більшість прихильників Bitcoin сміятимуться, тому що я написав «встановіть більше потужностей для майнінгу, ніж решта мережі разом узяті», ніби це тривіально. І вони мають рацію, бо, звісно, ​​це нелегко, інакше багато людей уже б це зробили. Вам потрібно багато майнінгового обладнання та багато електроенергії для його живлення, і те й інше коштує TON грошей. Але ось незручний факт, про який більшість біткойнерів не згадують: для уряду будь-якої країни середнього розміру потрібні гроші – це все ще невеликі гроші.

Давайте оцінимо вартість атаки 51%, яка скасовує рік транзакцій Bitcoin . При поточній ціні Bitcoin в 1500 доларів і винагороді в 15 біткойнів (включаючи комісію за транзакції) за 10-хвилинний блок майнери заробляють близько 1,2 мільярда доларів на рік (1500 доларів × 15 × 6 × 24 × 365). Якщо припустити (розумно), що вони не втрачають грошей загалом або, принаймні, не втрачають багато, це означає, що загальні витрати майнерів також повинні бути в тому ж діапазоні. (Я спрощую тут, амортизуючи одноразові витрати на придбання обладнання для майнінгу, але за 400 мільйонів доларів ви купите достатньо Antminer 9, щоб відповідати поточній потужності майнінгової мережі Bitcoin , тож ми на правильному місці.)

Тепер подумайте про звіти що Bitcoin використовується громадянами Китаю, щоб обійти контроль над капіталом у своїй країні. Крім того, врахуйте, що податкові надходження китайського уряду становлять приблизно 3 трильйони доларів на рік. Чи витратив би уряд недемократичної країни 0,04% свого бюджету, щоб закрити популярний метод незаконного виведення грошей з цієї країни?

Я б T стверджував, що відповідь обов’язково буде так. Але якщо ви думаєте, що відповідь однозначно ні, ви більше ніж наївні. Особливо враховуючи, що Китай, як повідомляється, працевлаштовує 2 мільйони людей контролювати інтернет-контент, що становить 10 мільярдів доларів на рік, якщо припустити низьку зарплату в 5000 доларів. Це ставить у перспективу вартість 1,2 мільярда доларів, пов’язану з скасуванням транзакцій Bitcoin за рік.

Навіть цей аналіз применшує проблему, тому що китайський уряд міг би підірвати мережу Bitcoin набагато легше та дешевше. Схоже, що більшість майнінгу Bitcoin відбувається в Китаї, через дешеву гідроелектроенергію та інші фактори. Маючи кілька танків і взводів, армія Китаю могла б фізично захопити ці операції з видобутку Bitcoin і перепрофілювати їх для цензури або зворотних транзакцій. Незважаючи на те, що ширший світ Bitcoin , безсумнівно, помітить, він нічого не зможе зробити, не змінивши докорінно структуру управління (і, отже, природу) самого Bitcoin . Що це було з цензурними вільними грошима?

Нічого з цього не слід тлумачити як критику дизайну біткойна чи передбачення того, що мережева катастрофа справді трапиться. Блокчейн Bitcoin — це чудова інженерна розробка, можливо, навіть ідеальна для мети, яку мали на увазі його творці. І якби мені довелося вкласти в це гроші, я б поспорив, що Китай та інші уряди, ймовірно, не T атакувати Bitcoin таким чином, тому що це не в їхніх інтересах. Швидше за все, вони зосередять свій гнів на його більш невідстежуваних родичах, таких як DASH, Zcash і Monero.

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

Можливо, це не ідеально, але це найкраще, що вони можуть зробити.

Перезаписувані приватні ланцюжки

Тепер перейдемо до приватних блокчейнів, розроблених для потреб урядів і великих компаній.

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

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

Звичайно, незмінність все ще легко підірвати, якщо всі учасники ланцюга вирішать зробити це разом. Давайте уявімо приватний блокчейн, який використовують шість лікарень для агрегування даних про інфекції. Програма в ONE лікарні записує в ланцюжок великий і помилковий набір даних, що створює незручності для інших учасників. Через кілька телефонних дзвінків ІТ-відділи всіх лікарень погоджуються «перемотати» свої вузли на ONE годину назад, видалити проблемні дані, а потім дозволити ланцюжку продовжувати роботу, ніби нічого не сталося.

Якщо всі лікарні погодяться це зробити, хто їм завадить? Дійсно, окрім задіяного персоналу, хто взагалі знатиме, що це сталося? (Слід зазначити, що деякі консенсусні алгоритми, такі як PBFT, T надають офіційного механізму для відкатів, але це T допомагає в управлінні, оскільки вузли все ще можуть вільно обходити правила.)

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

Як і доброчесним прихильникам Ethereum Classic, їхнє місце на небесах цілком може бути забезпечене. Але тут, на землі, вони будуть виключені з процесу консенсусу, для якого було розгорнуто ланцюжок, і можуть повністю відмовитися. Єдиним практичним застосуванням угод поза консенсусом є те, що вони служать доказом у суді.

Маючи це на увазі, давайте поговоримо про другий випадок, коли доктрина незмінності блокчейна була використана для висміювання ідей.

Тут ми маємо на увазі ідею Accenture щодо використання a хамелеон хеш для того, щоб блок, глибоко закопаний у ланцюг, можна було легко замінити. Первинна мотивація, як описаний Девідом Трітом, дозволяє швидко й ефективно видалити стару проблемну транзакцію. Згідно зі схемою, якщо заміна блоку все ж відбувається, за ним залишається «шрам», який бачать усі учасники. (Слід зазначити, що будь-які пізніші транзакції, які залежать від ONE, також потрібно буде видалити.)

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

І все ж, за відповідних умов, ідея дозволу заднім числом модифікувати блокчейни за допомогою хешів-хамелеонів може мати сенс. Щоб зрозуміти чому, ми почнемо з простого запитання: у цьому типі блокчейну, хто насправді матиме силу замінити старі блоки? Зрозуміло, що це T може бути будь-який неідентифікований учасник мережі, оскільки це зробить ланцюг некерованим.

Відповідь полягає в тому, що хеш-хамелеон може використовуватися лише тими, хто володіє його Secret ключем. Ключ потрібен для того, щоб нова версія блоку з іншими транзакціями отримувала той самий хеш-хамелеон, що й раніше. Звичайно, ми, мабуть, T хочемо централізованого контролю в блокчейні, тому ми можемо зробити схему сильнішою, маючи кілька хешів-хамелеонів на блок, ключ кожного з яких належить іншій стороні. Або ми можемо використовувати обмін Secret методи розподілу одного хеш-ключа хамелеона між кількома сторонами. У будь-якому випадку ланцюжок можна налаштувати таким чином, що ретроактивна заміна блоку може відбутися лише за умови схвалення більшості власників ключів. Це починає звучати знайомо?

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

Якщо так, то навіщо ними турбуватися? Відповідь: оптимізація продуктивності, оскільки хеші-хамелеони дозволяють замінювати старі блоки в ланцюжку набагато ефективніше, ніж раніше. Уявіть, що нам потрібно видалити транзакцію з початку блокчейну, який працює протягом п’яти років. Можливо, це пов'язано з Європейським Союзом право бути забутим законодавство, яке дозволяє окремим особам видаляти свої персональні дані з облікових записів компаній. Вузли T можуть просто стерти транзакцію, що порушує правила, зі своїх дисків, тому що це змінить хеш відповідного блоку та розірве LINK в ланцюжку.

Наступного разу, коли блокчейн буде скановано або поширено, все розвалиться.

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

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

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

Незмінність має нюанси

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

Цитувати Саймон Тейлор цитує Яна Грігга, питання завжди повинно бути: «Хто ти і чого хочеш досягти?»

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

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

Нарешті, для більшості дозволених випадків використання блокчейну ми, мабуть, T хочемо, щоб вузли валідатора могли легко та дешево замінювати старі блоки в ланцюжку. Як Дейв Берч сказав у той час, "Спосіб виправити неправильний дебет - правильний кредит", а не вдавати, що дебету ніколи не було.

Тим не менш, у тих випадках, коли нам потрібна додаткова гнучкість, хеші-хамелеони допомагають зробити блокчейни практичним вибором.

Ця стаття була спочатку опублікований у блозі MultiChain і було опубліковано тут із дозволу автора. Внесено незначні правки.

Міфологія зображення через Shutterstock

Примітка: Погляди, висловлені в цьому стовпці, належать автору і не обов'язково відображають погляди CoinDesk, Inc. або її власників та афіліатів.

Picture of CoinDesk author Gideon Greenspan