- Повернутися до менюЦіни
- Повернутися до менюдослідження
- Повернутися до менюКонсенсус
- Повернутися до менюСпонсорський матеріал
- Повернутися до меню
- Повернутися до меню
- Повернутися до меню
- Повернутися до менюВебінари та Заходи
Так, вам може знадобитися блокчейн
Хоча проблем із масштабуванням чимало, очевидно, що загальнодоступні блокчейни пропонують щось зовсім інше, ніж традиційні бази даних, каже Баладжі С. Срінівасан.
Баладжі С. Срінівасан є колишнім технічним директором Coinbase, партнером ради Andreessen Horowitz і членом консультативної ради CoinDesk.
Наступна стаття спочатку з’явилася в Consensus Magazine, розповсюдженому ексклюзивно для відвідувачів заходу CoinDesk Consensus 2019.
Є певний тип розробників, які стверджують, що блокчейни – це просто жахливий бази даних. Як ідеться в розповіді, чому б просто не використати PostgreSQL для своєї програми? Це зрілий, надійний і високопродуктивний. Порівняно з реляційними базами даних, скептик стверджує, що блокчейни — це просто повільні, незграбні та дорогі бази даних, які T масштабуються.
Хоча деякі критики цієї критики вже є (1, 2), я б запропонував просте спростування ONE реченням: загальнодоступні блокчейни корисні для зберігання спільного стану, особливо коли цей спільний стан представляє цінні дані, які користувачі хочуть експортувати/імпортувати без помилок — наприклад, свої гроші.
Проблема експорту/імпорту даних
Подивіться на діаграми хмар для Веб-сервіси Amazon, Microsoft Azure, або Google Cloud. Є значки для балансувальників навантаження, транскодерів, черг і лямбда-функцій.
Існують значки для VPC і всіх типів баз даних під WED, включно з новими керований блокчейн послуги (які відрізняються від загальнодоступних блокчейнів, хоча й потенційно корисні за деяких обставин).
Для чого T ICON , так це для спільного стану між обліковими записами. Тобто всі ці хмарні діаграми неявно припускають, що одна сутність і її співробітники (а саме сутність з доступом до хмарний кореневий обліковий запис) є єдиним , хто розміщує діаграму архітектури та читає або записує програму, яка лежить в її основі. Точніше кажучи, ці діаграми зазвичай припускають наявність одного економічного суб’єкта, а саме організації, яка оплачує рахунки за хмару.*
Але якщо ми візуалізуємо хмарні діаграми не лише для ONE , а для ONE корпоративних економічних суб’єктів одночасно, одразу виникають деякі запитання. Чи можуть ці актори взаємодіяти? Чи можуть їхні користувачі отримати свої дані та перенести їх в інші програми? І враховуючи, що користувачі самі є суб’єктами господарювання, якщо ці дані представляють щось грошове, чи можуть користувачі бути впевнені, що їхні дані T були змінені під час усього цього експорту та імпорту?
Це типи запитань, які виникають, коли ми розглядаємо експорт і імпорт даних із програми кожної сутності як першокласну вимогу. І (за винятками, які ми розглянемо), загалом відповідь на ці запитання сьогодні, як правило, ні.
Ні — різні програми зазвичай T мають сумісного програмного забезпечення або не дозволяють своїм користувачам легко експортувати/імпортувати свої дані в стандартній формі, або дають користувачам упевненість, що їхні дані T були навмисно підроблені або ненавмисно пошкоджені під час усього експорту та імпорту.
Причина зводиться до стимулів. Для більшості основних інтернет-сервісів просто немає фінансового стимулу, щоб дозволити користувачам експортувати свої дані, не кажучи вже про те, щоб дозволити конкурентам швидко імпортувати дані. Хоча деякі називають це переносимість даних проблему, назвемо її проблемою експорту/імпорту даних, щоб зосередити увагу на конкретних механізмах експорту та імпорту.
Сучасні підходи до проблеми експорту/імпорту даних
Незважаючи на те, що ще T фінансових стимулів для загального вирішення проблеми експорту/імпорту даних, були створені механізми для багатьох важливих особливих випадків. Ці механізми включають API, експорт JSON/PDF/CSV, файли MBOX і (у банківському контексті) SFTP.
Давайте по черзі переглянемо їх, щоб зрозуміти поточний стан справ.
- API. ONE із найпопулярніших способів експорту/імпорту даних є інтерфейси прикладного програмування, більш відомі як API. Деякі компанії дозволяють отримувати частину даних або дають можливість записувати дані в обліковий запис. Але є вартість. По-перше, їхній внутрішній формат даних зазвичай є приватним, а не галузевим стандартом. По-друге, інколи API не займають центрального місця в їхньому CORE бізнесі, а можуть бути вимкнено. По-третє, іноді API займають центральне місце в їхньому CORE бізнесі, і ціна може бути такою різко піднятий. Загалом, якщо ви читаєте або записуєте в розміщений API, ви віддані на милість постачальника API. Ми називаємо цю платформу ризиком, а безцеремонне виведення з платформи так і є завдано шкоди багато a запуск.
- JSON. Ще одне пов’язане рішення — дозволити користувачам або сценаріям завантажувати файли JSON або читати/записувати їх у вищезгадані API. Наскільки це нормально, але JSON є дуже вільною формою і може описати практично все. Наприклад, Facebook Graph API і LinkedIn REST API працювати зі схожими речами, але повертати дуже різні результати JSON.
- PDF. Ще одне часткове рішення — дозволити користувачам експортувати PDF-файл. Це працює для документів, оскільки PDF є відкритий стандарт які можуть бути прочитані іншими програмами, такими як Preview, Adobe Acrobat, Google Drive, Dropbox тощо. Але PDF-файл призначений як кінцевий продукт, який має читати Human. Він не призначений для входу в жодну програму, окрім програми перегляду PDF.
- CSV. Скромний файл зі значеннями, розділеними комами, наближається до того, що ми хочемо для загального вирішення проблеми імпорту/експорту даних. На відміну від серверної частини власного API, CSV є a стандартний формат описаний RFC 4180. На відміну від JSON, який може представляти майже все, CSV зазвичай представляє лише таблицю. І на відміну від PDF-файлу, CSV зазвичай може редагуватися користувачем локально за допомогою електронної таблиці або використовуватися як машиночитаний вхідний файл для локальної чи хмарної програми. Оскільки більшість типів даних можна представити в реляційній базі даних, і тому що реляційні бази даних зазвичай можуть бути представлені експортований як набір, можливо, гігантських файлів CSV, він також є досить загальним. Однак CSV мають кілька недоліків. По-перше, на відміну від власного API, вони T розміщуються. Тобто немає єдиного канонічного місця для читання або запису CSV, який представляє (скажімо) запис транзакцій або таблицю метаданих карти. По-друге, файли CSV T захищені від втручання. Якщо користувач експортує запис транзакцій зі служби A, змінює його та повторно завантажує до служби B, другий сервіс не буде розумнішим. По-третє, файли CSV T мають вбудованих перевірок цілісності для захисту від ненавмисних помилок. Наприклад, стовпці файлу CSV T містять явної інформації про тип, а це означає, що тип стовпця, який містить місяці року від 1 до 12, може автоматично перетворитися під час імпорту на просте ціле число, спричиняючи спантеличеність.
- MBOX. Хоча менш відомий, ніж CSV, Формат MBOX для представлення колекцій повідомлень електронної пошти є найближчим до стандартизованої структури даних, створеної для імпорту та експорту між основними платформами та незалежними програмами. Дійсно, були документи пропонуючи використовувати MBOX у контекстах поза електронною поштою. У той час як CSV представляє табличні дані, MBOX представляє тип лог-структурованих даних. По суті, це один величезний простий текстовий файл електронних повідомлень у хронологічному порядку, але також може представляти зображення/вкладені файли через MIME. Як і CSV, файли MBOX є відкритий стандартїх можна експортувати, редагувати локально та повторно імпортувати. Як і CSV, MBOX має недоліки, пов’язані з відсутністю канонічного хосту або внутрішньої перевірки цілісності даних.
- SFTP. Перш ніж ми підемо далі, є ще ONE механізм експорту/імпорту даних, який заслуговує на згадку: безпечний протокол передачі файлів або SFTP. Незважаючи на те, що це поважний спосіб, люди надсилають платежі ACH туди й FORTH один одному. По суті, фінансові установи використовують сервери SFTP для прийому даних електронних транзакцій спеціально відформатовані файли і щодня передавати його до Федеральної резервної системи для синхронізації дебетів і кредитів ACH один з одним (див. тут, тут, тут, і тут).
Кожен із цих механізмів широко використовується. Але їх недостатньо для забезпечення загального випадку захищеного від втручання імпорту та експорту цінних даних між довільними економічними суб’єктами — будь то корпоративні організації, окремі користувачі чи безголові сценарії. Для цього нам потрібні публічні блокчейни.
Публічні блокчейни забезпечують спільний стан, стимулюючи взаємодію. Публічні блокчейни перетворюють багато типів проблем імпорту/експорту даних у загальний клас проблем загального стану. І вони роблять це частково завдяки використанню багатьох найкращих функцій механізмів, описаних вище.
- Публічні блокчейни надають канонічні методи доступу для читання/запису, як корпоративний API, але без того самого ризику для платформи. Жоден суб'єкт господарювання не може закрити або відмовити клієнтам у обслуговуванні децентралізованого публічного блокчейну, такого як Bitcoin чи Ethereum.
- Вони також дозволяють окремим користувачам експортувати критично важливі дані на свій локальний комп’ютер або в нову програму, як-от JSON/CSV/ MBOX (або надсилаючи кошти, або експортуючи закриті ключі), забезпечуючи при цьому криптографічні гарантії цілісності даних.
- Вони забезпечують безперебійну взаємодію довільних суб’єктів господарювання (корпорацій, окремих користувачів чи програм) для безперебійної взаємодії. Кожен економічний суб’єкт, який читає з загальнодоступного блокчейну, бачить той самий результат, і будь-який економічний суб’єкт з достатньою кількістю коштів може писати в загальнодоступний блокчейн таким же чином. Не потрібно налаштовувати обліковий запис, і жодному актору не можна заблокувати доступ для читання/запису.
- І, можливо, найголовніше, публічні блокчейни дають фінансові стимули для сумісності та цілісності даних.
Останній пункт заслуговує на доопрацювання. Загальнодоступний блокчейн, як-от Bitcoin або Ethereum, зазвичай записує передачу речей грошової вартості. Це може бути власна Криптовалюта ланцюжка, токен, випущений на вершині ланцюжка, або інший вид цифрового активу.
Оскільки дані, пов’язані з загальнодоступним блокчейном, мають грошову цінність, це, нарешті, створює фінансовий стимул для взаємодії. Зрештою, будь-який веб-або мобільний додаток, який хоче отримувати (скажімо) BTC , повинен дотримуватися умов блокчейну Bitcoin . Дійсно, у розробників додатків не буде вибору через те, що Bitcoin за своєю конструкцією має єдиний канонічний найдовший ланцюжок підтвердження роботи з криптографічною перевіркою кожного блоку в цьому ланцюжку.
Отже, це фінансовий стимул для імпорту.
Що стосується стимулів для експорту, коли мова йде, зокрема, про гроші, користувачі вимагають можливості експортувати з повною вірністю та дуже швидко. Це не їхні старі фотографії котів, які вони можуть втратити через незручності чи технічні проблеми. Це їхні гроші, їхні Bitcoin, їхня Криптовалюта. Будь-яка програма, яка його зберігає, повинна зробити його доступним для експорту, коли вони хочуть його вилучити, незалежно від того, чи це означає підтримку функції надсилання, пропонування резервного копіювання приватного ключа або те й інше. Якщо ні, програма навряд чи коли-небудь отримає депозити.
Отже, це фінансовий стимул для експорту. Таким чином, загальнодоступний блокчейн економічно стимулює кожного суб’єкта господарювання, який з ним взаємодіє, використовувати той самий формат імпорту/експорту, що й будь-який інший суб’єкт, незалежно від того, чи то корпорація, користувач чи програма. Іншими словами, публічні блокчейни є наступним кроком після відкритого коду, оскільки вони надають відкриті дані. Будь-хто може закодувати свій власний дослідник блоків, читаючи з загальнодоступного блокчейну, і будь-хто може створити власний гаманець, здатний писати в загальнодоступний блокчейн.
Це справжній прорив. Тепер у нас є надійний спосіб стимулювати використання спільного стану, щоб одночасно дозволити мільйонам осіб і компаній доступ до читання (і тисячам для запису) з одного сховища даних, дотримуючись загального стандарту та зберігаючи високу впевненість у цілісності даних.
Це дуже відрізняється від статус-кво. Зазвичай ви T розголошуєте пароль root для своєї бази даних в Інтернеті, оскільки база даних, яка дозволяє будь-кому читати/записувати її, зазвичай пошкоджується. Публічні блокчейни вирішують цю проблему за допомогою криптографії, а не дозволів, значно збільшуючи кількість одночасних користувачів.
Це правда, що сьогодні загальнодоступні блокчейни, як правило, орієнтовані на монетарні та фінансові програми, де базовий набір даних представляє історію транзакцій лише для додавання з незмінними записами. Це обмежує їхню загальність з точки зору вирішення всіх різних версій проблеми імпорту/експорту даних. Але триває розробка публічних версій блокчейну таких речей, як OpenStreetMaps, Wikipedia та Twitter, а також таких систем, як Filecoin/IPFS. Вони T просто представлятимуть записи про фінансові транзакції, де необхідна незмінність, а й інші типи даних (наприклад, карти чи записи в енциклопедії), які регулярно оновлюватимуться.
Зроблені правильно, ці новіші типи загальнодоступних систем на основі блокчейну можуть дозволити будь-якому суб’єкту господарювання з достатніми коштами та/або криптографічними обліковими даними не лише читати та писати, але й редагувати власні записи, зберігаючи цілісність даних. Враховуючи цю можливість, немає причин, щоб не ONE T розмістити рівень SQL поверх загальнодоступного блокчейну для роботи зі спільним станом, який він надає, як і старомодна реляційна база даних. Результатом цього є новий тип бази даних без привілейованого власника, де всі сім мільярдів людей на планеті (і їхні сценарії!) є авторизованими користувачами, і до якої може писати будь-яка організація, яка має достатні кошти.
Цього дня ще T . Залишається побачити, наскільки далеко ми зможемо просунути варіанти використання публічних мереж. І проблем із масштабуванням чимало. Але, сподіваюся, зрозуміло, що хоча публічні блокчейни дійсно є новим типом бази даних, вони пропонують щось зовсім інше, ніж традиційна база даних.
* ONE винятком є так звана функція «Запитувач платить», яку пропонують Amazon та інші хмарні служби. Це чудова функція, яка дозволяє комусь платити за запис у ваше відро S3. Але це дозволено – воно все одно вимагає від кожного потенційного автора відкрити обліковий запис AWS, а власник сегмента має бути готовий дозволити їм усім писати у своє відро, тому все ще є єдиний видатний власник.
Зображення бази даних через Shutterstock