Доставка проти оплати в блокчейні PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Доставка проти оплати на блокчейні

Як блокчейн може вирішити найдавнішу проблему в книзі

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

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

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

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

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

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

В результаті цих "ризики врегулювання”, Більшість фінансових операцій розраховуються за допомогою доставка проти оплати (DvP). Це лише вигадливий термін для процесу поштового зв’язку, описаного вище. DvP гарантує, що, якщо одна сторона транзакції не виконає обіцяного, інша сторона може залишити запропонований ними актив в обмін.

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

Доставка проти оплати за допомогою блокчейна

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

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

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

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

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

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

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

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

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

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

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

Сила часткових транзакцій

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

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

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

Можливо, одна сторона прийде разом з 15 доларами і виконає прямий обмін на 10 фунтів Аліси. Але, можливо, Боб і Керол хочуть обміняти лише $ 7.50 кожен. У цьому випадку вони додадуть два вхідні дані до транзакції разом з двома вихідними, що збирають по 5 фунтів стерлінгів кожен. Або, можливо, Керол насправді хоче обміняти 15 доларів на 950 рублів, тоді як Саша в Москві має 950 рублів і шукає 10 фунтів стерлінгів. У цьому випадку може відбутися тристоронній обмін, в якому кожна сторона все ще дбає лише про свій фрагмент головоломки. Транзакцію, яку розпочала Аліса, можна завершити нескінченною кількістю різних способів. Але з точки зору Аліси, всі вони досягають однієї мети - дати їй 3 доларів в обмін на 15 фунтів стерлінгів, і всі вони роблять її однаково щасливою.

Сценарії обміну

Як блокчейн сприяє цьому? Через часткові транзакції та часткові підписи. Аліса починає транзакцію з одним входом (її £ 10) і єдиним виходом ($ 15 їй). Вона блокує ці частини транзакції за допомогою цифрового підпису, в якому зазначено, що можна додати будь -яку кількість інших входів або виходів. Вона передає цю часткову транзакцію Бобу і каже «подивіться, що ви можете зробити». Можливо, вона передає це також Керол та будь-якій кількості інших потенційних контрагентів чи організаторів синдикатів. Кожен з них може додати власні пари входів і виходів, або для збалансування обміну, або для створення більшої часткової транзакції, яку можна передати знову. Незалежно від того, що хтось робить, транзакція може бути виконана (тобто врегульована шляхом підтвердження в блокчейні) після збалансування вхідних та вихідних активів.

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

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

Від DvP до смарт -контрактів

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

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

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

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

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

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

Ти можеш слідкуйте за мною у Twitter тут. Дивись також: Завершення дискусії про біткойн проти блокчейна.

Технічний додаток

Для створення часткових транзакцій DvP використовуйте a тип підпису of SINGLE|ANYONECANPAY. Якщо ви використовуєте MultiChain, preparelockunspent, createrawexchange та appendrawexchange Виклики API подбайте про деталі за вас. Див Приступаючи до роботи сторінки для простого прикладу того, як їх можна використовувати.

Будь ласка, залишайте будь-які коментарі на LinkedIn.

Джерело: https://www.multichain.com/blog/2015/09/delivery-versus-payment-blockchain/

Часова мітка:

Більше від Багатоканальний