Як зрозуміти, чи потрібно інтегрувати blockchain в ваш продукт?

imageBlockchain технології в даний момент є занадто роздутим. Про нього пишуть і говорять усі: від конференцій Sibos і Money20/20 до популярних матеріалів у виданнях The Economist і Euromoney – здається, що кожен прагне схопити свою частку в золотий блокчейн лихоманці.

Як визначити, що у вас реальний випадок застосування технології блокчейн? Ми в Web-payment.ru багато пишемо про технології розподіленого реєстру, і за родом діяльності нашого агентства Digital, орієнтованого на фінтех компанії, помічаємо, що порушене питання дуже актуальне для багатьох гравців ринку. Ця стаття, опублікована в блозі відкритої платформи для створення своїх блокчейнов MultiChain, покликана допомогти розібратися в цьому.


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

А що не так з тими, у кого дійсно є ідея проекту? Дуже часто проект може бути чудово реалізований за допомогою звичайної реляційної бази даних. Це такі залізні чудовиська, як Oracle та SQL Server, а для менш упереджених – MySQL і Postgres. Так що дозвольте почати, розставивши всі крапки над «i»:

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

Чому? Тому що такі продукти, як Oracle та MySQL перевірені десятиліттями розробки. Вони були встановлені на мільйонах серверів, оброблювальних трильйони запитів. Їх код був найбільш ретельно перевіряти, оптимізований і налагоджений в порівнянні з іншими на планеті Земля. Вони, не напружуючись, обробляють тисячі транзакцій в секунду.

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

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

1. База даних

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

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

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

2. Безліч авторів

Це просте правило. Блокчейн – це технологія для баз даних з безліччю авторів. Іншими словами, має бути більше однієї сутності, які генерують транзакції, модифікуючі базу даних. Ви знаєте, хто такі ці автори?

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

3. Відсутність довіри

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

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

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

4. Транзакції без посередників

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

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

Але от питання, яке ви повинні собі задати: чи ви хочете і потребуєте ви відмову від посередників? Якщо взяти ваш випадок, чи дійсно вам заважає центральна організація, яка підтримує заслуговує довіри базу даних і діє як посередник в угодах? Хороші причини відмови від довіреного посередника на користь баз даних блокчейн – це, наприклад, велика економія коштів, більш швидкі транзакції, автоматичне узгодження рахунків або неможливість знайти відповідного посередника.

5. Взаємодія транзакцій

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

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

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

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

6. Встановлення правил

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

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

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

7. Виберіть своїх валідаторів

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

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

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

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

Блокчейн – це ланцюг блоків, в якій кожен блок містить набір транзакцій, підтверджуваних як група. Але хто несе відповідальність за вибір транзакцій, які йдуть у кожному блоці? Для «приватних блокчейнов», які підходять для корпорацій, це закрита група валідаторів (майнер), залишають цифровий підпис в створюваних ними блоках. Цей білий список поєднується зі схемою розподіленого консенсусу для того, щоб запобігти отримання контролю над блокчейном меншістю валідаторів.

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

  • Цензурування транзакцій. Якщо достатня кількість валідаторів вступлять у змову, то вони можуть запобігти підтвердження конкретної транзакції в блокчейне, постійно залишаючи її в пулі непідтверджених транзакцій.
  • Упереджене врегулювання конфліктів. Якщо дві транзакції конфліктують, то наступний блок валідатор вирішує, яка транзакція в блокчейне буде прийнята, а яка в результаті цього буде відхилена. Справедливий вибір – це трансакція, яка з'явилася раніше, але валідатори можуть засновувати свій вибір на інших факторах, не виявляючи цього.
З-за цих проблем при розгортанні блокчейн-бази даних ви повинні мати чітке уявлення про те, хто ваші валідатори і чому ви довіряєте їм. У залежності від випадку, валідатори можуть бути обрані як: (а) одного або декількох вузлів, керованих за допомогою єдиної організації, (б) основної групи організацій, які підтримують ланцюг, або (з) кожного вузла мережі.

8. Забезпечуйте свої активи

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

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

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

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

Висновок

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

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


Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.