Встречайте R3 Corda — распределённый Ledger для финансовых организаций
Invite pending
Перевод статьи Ричарда Брауна Introducing R3 Corda: A Distributed Ledger Designed for Financial Services.
Я очень рад сообщить, что мы, консорциум R3, работаем над созданием распределенной Ledger-платформы для финансовых организаций: Corda™. В течение последних 6 месяцев моя команда вместе с другими участниками R3 разрабатывала прототип специальной платформы для управления финансовыми обязательствами между различными финансовыми институтами.
Нашу команду возглавляют главный инженер Джеймс Кэрлайл (James Carlyle), а также ведущий инженер Майк Хирн (Mike Hearn). Я очень доволен нашими успехами, поэтому хочу ими с вами поделиться.
Corda-это распределенный Ledger для хранения, управления и синхронизации финансовых обязательств между различными финансовыми организациями. Из-за некоторых архитектурных проблем блокчейна, его довольно сложно использовать для решения реальных проблем в банковской сфере. Мы постарались применить в своей системе все преимущества блокчейн систем, сведя к минимуму их недостатки.
Corda является результатом тщательного анализа и прототипирования. Мы выложим её в Open Source немного позже.
Далее я бы хотел поделиться с вами нашими мыслями. Для чего мы создали Corda? Почему мы выбрали именно такую архитектуру? Когда код будет доступен всем желающим? Как Corda связана с другими платформами и проектами?
Я перешел из IBM в R3 в сентябре 2015 года. Истерия вокруг Блокчейна к тому времени разрослась до огромных масштабов. Например, я встречался с техническим директором проекта, который намеревался использовать блокчейн для финансовых организаций. Именно тогда я решил сделать небольшой перерыв и спокойно подумать…
Как не поддаться на рекламную шумиху вокруг блокчейна?
Тогда я представил, что я нахожусь напротив управляющего одного из наших банков через несколько лет. Я представил также, что мы запустили множество своих продуктов поверх «блокчейна для финансов». Блокчейн мы выбрали, потому что я поверил маркетологам и отнесся к выбору технологии недостаточно критически.
В этом воображаемом сценарии я сидел напротив разъярённого управляющего, который ждал ответа на вопрос, почему построенная мною система не работает. Почему, блин, ты построил её именно так, а не иначе?
Я понял, что ответ «потому что блокчейн был модным в 2015 году» его совершенно не устроит. Абсолютно не устроит.
Подход «сначала мы выберем технологию, а затем попытаемся найти для неё применение» редко заканчивается хорошо. Все успешные проекты, над которыми я работал, начинались с другой стороны. Со стороны требований, а не со стороны какой-то крутой технологии, которую срочно нужно куда-то встроить.
Именно это я и хотел донести до участников R3 в первую очередь.
Но была и вторая причина. Технологические и финансовые компании «решили» в 2015 году, что блокчейн это «будущее финансовых услуг».
Честно говоря, я — самый большой сторонник такого утверждения!
Но основная причина, почему блокчейн так важен сегодня — очень тонкий момент, который многие упускают.
Чтобы лучше понять, о чем я, давайте отвлечемся на короткое время и посмотрим на Биткойн.
Его архитектура — тот редкий идеальный случай, когда можно с уверенностью сказать, что она разработана гением. Но мы забываем, что самая интересная часть Биткойна не в его архитектуре. А в том, что он решает очень важную бизнес-потребность: «мне нужна система, в которой никто не сможет запретить мне потратить мои деньги».
Я не могу знать, какие мысли витали в голове Сатоши, когда он писал свои первые тексты, но и он определённо не думал о такой постановке вопроса.
Если выписать эту потребность на бумагу и немного подумать, то архитектура начнет появляться (практически) сама! Если никто не должен запретить мне потратить мои деньги, то значит, что у такой системы не должно быть единого управляющего центра. Потому что его может, например, выключить правительство.
Более того, в такой системе удостоверяющими органами не могут являться какие-то конкретные лица или объекты, так как их тоже можно «захватить». Очень быстро приходит понимание, что нам нужна дублированная и распределенная (massively replicated) система нахождения консенсуса. Чтобы наделить обычных пользователей возможностью «голосовать», нужно придумать что-то вроде “Доказательства проделанной работы” (Proof of Work). Постепенно появляется и вся архитектура: блокчейн, майнинг, блоки, транзакции и т.д.
Конечно же, такая система имеет и свои особенности/недостатки, например, если ваш закрытый ключ будет украден, то откатить воровство денег уже не получится. Но давайте не будем отвлекаться.
Такой подход «от потребности к решению» показывает, что блокчейн биткойна может быть рассмотрен как удачный ответ на реальные бизнес-задачи.
Я уверен, что Сатоши не просыпался с мыслью «примени блокчейн!». Блокчейн не более чем средство решения реальной задачи.
Зачем пытаться решить все банковские задачи с помощью блокчейна?
Разве блокчейн имеет отношение ко всем банковским потребностям и проблемам?
Весь октябрь я провёл, сидя в темной комнатушке (правда! это был наш первый лондонский коворкинг, маленькое помещение на четверых), задаваясь вопросами об основах технологии блокчейн. Что именно привлекает к блокчейну банки?
Большинство уже мысленно смирилось с тем, что «стандартный набор биткойна» невозможно встроить в банки без изменений. Например, PoW совсем не обязательно нужен в частных блокчейнах.
Я провёл в IBM несколько лет в должности «технического консультанта». Если вы когда-либо покупали технологию у крупной компании, вы наверняка видели таких, как я. Я встречался с клиентами и был для них техническим экспертом. Я подсказывал, как работают наши продукты, и как можно применить их для решения проблем клиента.
Урок, который я вынес достаточно скоро из своей работы: не важно, со сколькими клиентами ты встретишься, или как настырно ты им будешь предлагать свои продукты. Если ты не можешь решить для клиента его реальную проблему — скорее всего ты ничего не продашь. А если и продашь, то очень скоро об этом пожалеешь.
Перенесёмся обратно на 10 лет вперед, в октябрь 2015 года. Всё, что я сейчас вижу — агрессивные компании, которые пытаются использовать блокчейн «как он есть» и не решают никаких реальных проблем. Может быть, я чего-то не понимаю?
Но если они правы, и такой подход является спасением для финансовой индустрии, то хотя бы давайте поймем — почему. Мы стали отбрасывать различные составляющие из «полного набора биткойна» и постепенно пришли к тому, что блокчейн (то, что является основой биткойна или Ethereum) на самом деле имеет следующие 5 связанных между собой составляющих. Можно изменять и комбинировать их для решения реальных бизнес-задач.
КОНСЕНСУС
Первая и главная составляющая блокчейнов. Консенсус позволяет создать систему, в которой различные участники разделяют факты, которые принимаются всеми участниками в едином неизменном состоянии. До блокчейна мы не могли в таких масштабах сообщить, например, следующее:
"Я вижу то же, что и ты… и я знаю, что ты видишь то же самое, что и я"
"Я знаю, что ты знаешь, что я знаю"
"Я знаю, что ты знаешь, что я знаю, что ты знаешь"
И так далее…
Мы можем распространять такие факты через интернет между не доверяющими друг другу узлами. Это определенно шаг вперед. Конечно же, консенсус и реплицирование состояния существовали и раньше. Но они не могли работать на таких масштабах, да и применялись только между доверяющими друг другу участниками.
В биткойне мы сообщаем что-то вроде «У меня есть непотраченные биткойны», и этот факт принимают все пользователи системы в неизменном виде. В Ethereum разделяемыми фактами являются состояния виртуального компьютера.
Обратите внимание: нет единого закона, который бы заставлял группу людей прислушиваться к таким сообщениям или поддерживать консенсус. Биткойн просто работает так, чтобы решить конкретную бизнес-потребность. Если ваша бизнес-потребность другая, то будьте очень внимательны с людьми, которые пытаются вам продать решение, которое очень походит на биткойн.
ДОПУСТИМОСТЬ (Validity)
Второй, очень тесно связанной с консенсусом составляющей является достоверность. Эта особенность позволяет нам убедиться, что предложенное изменение состояния системы является допустимым.
ЕДИНСТВЕННОСТЬ/ОДНОЗНАЧНОСТЬ (Uniqueness)
Я могу создать два абсолютно допустимых обновления системы, которые будут конфликтовать между собой. Нам нужен механизм для коллективного выбора только тех обновлений, с которыми все будут согласны. Возможность запретить «повторную трату» (double-spend) одних и тех же средств — мощнейшая особенность блокчейна.
НЕИЗМЕННОСТЬ
Четвертая особенность блокчейна немного неверно названа «неизменностью» — однажды записанные данные не могут быть более изменены. Это неверно: если у меня есть данные, конечно же я могу их локально изменить. На самом деле «неизменность» означает следующее — если я изменю данные локально, то другие узлы системы мне больше не поверят. И никогда не признают мою транзакцию верной.
Блокчейн добивается этого с помощью связывания блоков между собой. Каждый следующий блок может быть правильным, только если все предыдущие блоки верны и неизменны.
АУТЕНТИФИКАЦИЯ
Последняя составляющая любого блокчейна — аутентификация. Практически все действия в системе осуществляются с помощью закрытого секретного ключа. Не существует специального доступа для администраторов, как и root-прав. Это очень сильно отличает блокчейн от крупных корпоративных систем, где обычно существуют учетные записи супер-пользователей.
Почему я заставил вас пройти через все эти размышления? Потому что они привели нас к пониманию того, что же такое блокчейн. Это абсолютно новый подход, который позволяет находить консенсус и разделять факты среди не доверяющих друг другу узлов.
Если это всё, то давайте подумаем над тем, что же такое «факты» для финансистов. Какой должна быть бизнес потребность, чтобы мы могли применить блокчейн? Этот момент озарения — то, что движет проектом Corda…
Вот пример фактов из финансовой сферы:
1) Банк А и Банк Б согласны, что Банк А занял 1 миллион долларов Банку Б. Это так называемый вклад до востребования.
2) Банк А и Банк Б согласны, что они оба входят в дефолтный своп с такими-то условиями… Это так называемый производный контракт.
3) Банк А и Банк Б согласны, что Банк А обязан передать 1000 акций компании BitGo Банку Б в течение трех дней в обмен на 150 тысяч долларов. Это так называемая доставка-после-платежа.
И так далее…
Основа финансовой индустрии в договоренности между различными её участниками. Существует и проблема: такая договорённость обычно фиксируется в разных системах. Стоимость такой регистрации достаточно высока, потому что включает в себя риск решения споров и конфликтов. Миллиарды долларов тратятся каждый год на это.
Обычно такие системы работают с помощью обмена сообщениями. Я посылаю обновление данных и надеюсь, что вы будете с ним согласны. Мы тратим такие огромные средства именно чтобы быть уверенными в нашей общей порядочности.
Теперь представьте себе систему, которая позволит фиксировать соглашения мгновенно и надежно. Эти договорённости сможет проверить надлежащий регулятор. Система, которая построена с помощью доступных каждому технологий с упором на совместимость и инкрементальное обновление. Система, в которой информация не будет утекать третьим лицам. Система, в которой одна компания сможет, просмотрев договорённости, сказать:
"Я вижу то же, что и ты. И я знаю, что ты видишь то же самое, что и я. И мы знаем, что это именно то, что видит и наш регулятор".
Встречайте Corda!
Проблема сформулирована, а значит теперь можно сделать выбор составляющих блокчейна. Итак:
КОНСЕНСУС
Corda в первую очередь строилась для того, чтобы иметь возможность фиксировать факты вроде «Я вижу то же, что и ты… и я знаю, что ты видишь то же самое о факте, что и я». Но это вовсе не означает, что другие лица должны иметь доступ к этой информации. Мы добиваемся консенсуса только между нужными участниками, а не между всеми.
ДОПУСТИМОСТЬ (Validity)
Если две стороны сделки согласны и добились консенсуса, то почему их должно интересовать, что какая-то третья сторона думает об этой сделке? Зачем вообще посылать им уведомление об этой сделке? Соответственно, Corda позволяет указать, кто должен (и кто не должен) участвовать в сделке с помощью проверенных временем средств разработки.
ЕДИНСТВЕННОСТЬ/ОДНОЗНАЧНОСТЬ (Uniqueness)
Как и в любом другом Ledger'е, мы должны избегать конфликтующих транзакций. Но различные сценарии накладывают совершенно разные ограничения. Именно поэтому в Corda существует возможность менять «сервис однозначности», который по умолчанию работает как в «обычном блокчейне». Также существует возможность выбора различных моделей согласно CAP-теореме. Некоторым финансовым организациям нужна консистентность данных, тогда как для других более важна работоспособность системы в случаях потери связи.
НЕИЗМЕННОСТЬ и АУТЕНТИФИКАЦИЯ
Здесь архитектура Corda лишь незначительно отличается от существующих систем: наши структуры данных неизменяемые, а транзакции записываются в блоки, как и везде.
Corda не сильно отличается от «традиционного блокчейна» в трех аспектах — в аутентификации, неизменности и однозначности. Но такие составляющие, как консенсус и допустимость (только для заинтересованных участников), отличаются весьма заметно.
Погодите. Разве все остальные компании, связанные с блокчейном, не говорят о том же самом? Не совсем.
Обратите внимание, что мы не создаём очередной блокчейн. В отличие от других проектов в этой сфере, мы начинали с индивидуальных соглашений между компаниями («объекты состояния» под управлением «кода контракта», а также связанные с ними «тексты соглашений»). Мы не посылаем данные транзакций всем, даже не смотря на то, что они зашифрованы.
Во-вторых, мы были сфокусированы на соглашениях с самого первого дня — я говорю об упомянутых выше «текстах соглашений» (“legal prose” в оригинале). Мы понимали, что всегда будут какие-то споры, поэтому постарались их заранее пресечь.
В-третьих, мы понимаем необходимость управления финансовыми соглашениями. Нам нужно что-то большее, чем просто система нахождения консенсуса. Нужно иметь возможность описания и интеграции бизнес-логики с существующим кодом. Нам нужна совместимость. Нам нужна возможность создания хореографии между различными участниками.
Но… Вы должны понимать, что Corda не является единым решением всех проблем. Эта технология может решить лишь определенный класс задач.
Именно поэтому мы активно общаемся с нашими партнерами, которые создают дополняющие нас сервисы. Мы не всеведущие. Более того, нам ещё предстоит решить множество архитектурных и исследовательских задач.
Я очень доволен тем, что мы разработали! Вы услышите от нас и о других проектах, не связанных с Corda. Наш подход заключается в том, что для каждой задачи мы ищем своё решение. Те, кто посещал наши встречи, уже слышали это от меня. Задача Corda не в конкуренции с другими компаниями. Наоборот, мы вынуждены были создать эту технологию, так как не нашли готового решения наших проблем. Это то, что делает сферу нашей деятельности такой интересной!
В ближайшее время вы узнаете другие факты о Corda, про наши исходные задачи и про нашу архитектуру. Мы стараемся поскорее выпустить платформу и открыть её исходный код. Следите за нами!
Я очень рад сообщить, что мы, консорциум R3, работаем над созданием распределенной Ledger-платформы для финансовых организаций: Corda™. В течение последних 6 месяцев моя команда вместе с другими участниками R3 разрабатывала прототип специальной платформы для управления финансовыми обязательствами между различными финансовыми институтами.
Нашу команду возглавляют главный инженер Джеймс Кэрлайл (James Carlyle), а также ведущий инженер Майк Хирн (Mike Hearn). Я очень доволен нашими успехами, поэтому хочу ими с вами поделиться.
Corda: распределенный Ledger для хранения и управления финансовыми обязательствами
Corda-это распределенный Ledger для хранения, управления и синхронизации финансовых обязательств между различными финансовыми организациями. Из-за некоторых архитектурных проблем блокчейна, его довольно сложно использовать для решения реальных проблем в банковской сфере. Мы постарались применить в своей системе все преимущества блокчейн систем, сведя к минимуму их недостатки.
- В Corda не обязательно открывать информацию для всех участников системы.
- Corda управляет потоками информации между участниками без центрального контроллера.
- Corda позволяет находить консенсус для отдельных договоров/соглашений, а не только на уровне всей системы.
- Corda позволяет создавать регулирующие и разрешающие узлы-наблюдатели.
- Транзакция в Corda подтверждается лишь теми участниками, которые имеют отношение к ней.
- Corda поддерживает различные алгоритмы нахождения консенсуса.
- Corda позволяет создать прямую связь между «бумажным» документом (подтверждающим какое-либо право) и смарт-контрактом.
- Corda построена с помощью стандартных средств и технологий разработки.
- Corda не имеет внутренней валюты.
Corda является результатом тщательного анализа и прототипирования. Мы выложим её в Open Source немного позже.
Далее я бы хотел поделиться с вами нашими мыслями. Для чего мы создали Corda? Почему мы выбрали именно такую архитектуру? Когда код будет доступен всем желающим? Как Corda связана с другими платформами и проектами?
Мысленный эксперимент
Я перешел из IBM в R3 в сентябре 2015 года. Истерия вокруг Блокчейна к тому времени разрослась до огромных масштабов. Например, я встречался с техническим директором проекта, который намеревался использовать блокчейн для финансовых организаций. Именно тогда я решил сделать небольшой перерыв и спокойно подумать…
Как не поддаться на рекламную шумиху вокруг блокчейна?
Тогда я представил, что я нахожусь напротив управляющего одного из наших банков через несколько лет. Я представил также, что мы запустили множество своих продуктов поверх «блокчейна для финансов». Блокчейн мы выбрали, потому что я поверил маркетологам и отнесся к выбору технологии недостаточно критически.
В этом воображаемом сценарии я сидел напротив разъярённого управляющего, который ждал ответа на вопрос, почему построенная мною система не работает. Почему, блин, ты построил её именно так, а не иначе?
Я понял, что ответ «потому что блокчейн был модным в 2015 году» его совершенно не устроит. Абсолютно не устроит.
Подход «сначала мы выберем технологию, а затем попытаемся найти для неё применение» редко заканчивается хорошо. Все успешные проекты, над которыми я работал, начинались с другой стороны. Со стороны требований, а не со стороны какой-то крутой технологии, которую срочно нужно куда-то встроить.
Именно это я и хотел донести до участников R3 в первую очередь.
Разбудите меня, если система, призванная уничтожить банки, одновременно является их же спасением
Но была и вторая причина. Технологические и финансовые компании «решили» в 2015 году, что блокчейн это «будущее финансовых услуг».
Честно говоря, я — самый большой сторонник такого утверждения!
Но основная причина, почему блокчейн так важен сегодня — очень тонкий момент, который многие упускают.
Чтобы лучше понять, о чем я, давайте отвлечемся на короткое время и посмотрим на Биткойн.
Его архитектура — тот редкий идеальный случай, когда можно с уверенностью сказать, что она разработана гением. Но мы забываем, что самая интересная часть Биткойна не в его архитектуре. А в том, что он решает очень важную бизнес-потребность: «мне нужна система, в которой никто не сможет запретить мне потратить мои деньги».
Я не могу знать, какие мысли витали в голове Сатоши, когда он писал свои первые тексты, но и он определённо не думал о такой постановке вопроса.
Если выписать эту потребность на бумагу и немного подумать, то архитектура начнет появляться (практически) сама! Если никто не должен запретить мне потратить мои деньги, то значит, что у такой системы не должно быть единого управляющего центра. Потому что его может, например, выключить правительство.
Более того, в такой системе удостоверяющими органами не могут являться какие-то конкретные лица или объекты, так как их тоже можно «захватить». Очень быстро приходит понимание, что нам нужна дублированная и распределенная (massively replicated) система нахождения консенсуса. Чтобы наделить обычных пользователей возможностью «голосовать», нужно придумать что-то вроде “Доказательства проделанной работы” (Proof of Work). Постепенно появляется и вся архитектура: блокчейн, майнинг, блоки, транзакции и т.д.
Конечно же, такая система имеет и свои особенности/недостатки, например, если ваш закрытый ключ будет украден, то откатить воровство денег уже не получится. Но давайте не будем отвлекаться.
Такой подход «от потребности к решению» показывает, что блокчейн биткойна может быть рассмотрен как удачный ответ на реальные бизнес-задачи.
Я уверен, что Сатоши не просыпался с мыслью «примени блокчейн!». Блокчейн не более чем средство решения реальной задачи.
Зачем пытаться решить все банковские задачи с помощью блокчейна?
Разве блокчейн имеет отношение ко всем банковским потребностям и проблемам?
Какие характеристики являются основными для Блокчейн систем?
Весь октябрь я провёл, сидя в темной комнатушке (правда! это был наш первый лондонский коворкинг, маленькое помещение на четверых), задаваясь вопросами об основах технологии блокчейн. Что именно привлекает к блокчейну банки?
Большинство уже мысленно смирилось с тем, что «стандартный набор биткойна» невозможно встроить в банки без изменений. Например, PoW совсем не обязательно нужен в частных блокчейнах.
Я провёл в IBM несколько лет в должности «технического консультанта». Если вы когда-либо покупали технологию у крупной компании, вы наверняка видели таких, как я. Я встречался с клиентами и был для них техническим экспертом. Я подсказывал, как работают наши продукты, и как можно применить их для решения проблем клиента.
Урок, который я вынес достаточно скоро из своей работы: не важно, со сколькими клиентами ты встретишься, или как настырно ты им будешь предлагать свои продукты. Если ты не можешь решить для клиента его реальную проблему — скорее всего ты ничего не продашь. А если и продашь, то очень скоро об этом пожалеешь.
Перенесёмся обратно на 10 лет вперед, в октябрь 2015 года. Всё, что я сейчас вижу — агрессивные компании, которые пытаются использовать блокчейн «как он есть» и не решают никаких реальных проблем. Может быть, я чего-то не понимаю?
Но если они правы, и такой подход является спасением для финансовой индустрии, то хотя бы давайте поймем — почему. Мы стали отбрасывать различные составляющие из «полного набора биткойна» и постепенно пришли к тому, что блокчейн (то, что является основой биткойна или Ethereum) на самом деле имеет следующие 5 связанных между собой составляющих. Можно изменять и комбинировать их для решения реальных бизнес-задач.
КОНСЕНСУС
Первая и главная составляющая блокчейнов. Консенсус позволяет создать систему, в которой различные участники разделяют факты, которые принимаются всеми участниками в едином неизменном состоянии. До блокчейна мы не могли в таких масштабах сообщить, например, следующее:
"Я вижу то же, что и ты… и я знаю, что ты видишь то же самое, что и я"
"Я знаю, что ты знаешь, что я знаю"
"Я знаю, что ты знаешь, что я знаю, что ты знаешь"
И так далее…
Мы можем распространять такие факты через интернет между не доверяющими друг другу узлами. Это определенно шаг вперед. Конечно же, консенсус и реплицирование состояния существовали и раньше. Но они не могли работать на таких масштабах, да и применялись только между доверяющими друг другу участниками.
В биткойне мы сообщаем что-то вроде «У меня есть непотраченные биткойны», и этот факт принимают все пользователи системы в неизменном виде. В Ethereum разделяемыми фактами являются состояния виртуального компьютера.
Обратите внимание: нет единого закона, который бы заставлял группу людей прислушиваться к таким сообщениям или поддерживать консенсус. Биткойн просто работает так, чтобы решить конкретную бизнес-потребность. Если ваша бизнес-потребность другая, то будьте очень внимательны с людьми, которые пытаются вам продать решение, которое очень походит на биткойн.
ДОПУСТИМОСТЬ (Validity)
Второй, очень тесно связанной с консенсусом составляющей является достоверность. Эта особенность позволяет нам убедиться, что предложенное изменение состояния системы является допустимым.
ЕДИНСТВЕННОСТЬ/ОДНОЗНАЧНОСТЬ (Uniqueness)
Я могу создать два абсолютно допустимых обновления системы, которые будут конфликтовать между собой. Нам нужен механизм для коллективного выбора только тех обновлений, с которыми все будут согласны. Возможность запретить «повторную трату» (double-spend) одних и тех же средств — мощнейшая особенность блокчейна.
НЕИЗМЕННОСТЬ
Четвертая особенность блокчейна немного неверно названа «неизменностью» — однажды записанные данные не могут быть более изменены. Это неверно: если у меня есть данные, конечно же я могу их локально изменить. На самом деле «неизменность» означает следующее — если я изменю данные локально, то другие узлы системы мне больше не поверят. И никогда не признают мою транзакцию верной.
Блокчейн добивается этого с помощью связывания блоков между собой. Каждый следующий блок может быть правильным, только если все предыдущие блоки верны и неизменны.
АУТЕНТИФИКАЦИЯ
Последняя составляющая любого блокчейна — аутентификация. Практически все действия в системе осуществляются с помощью закрытого секретного ключа. Не существует специального доступа для администраторов, как и root-прав. Это очень сильно отличает блокчейн от крупных корпоративных систем, где обычно существуют учетные записи супер-пользователей.
Так в чем же состоит потребность финансовых организаций?
Почему я заставил вас пройти через все эти размышления? Потому что они привели нас к пониманию того, что же такое блокчейн. Это абсолютно новый подход, который позволяет находить консенсус и разделять факты среди не доверяющих друг другу узлов.
Если это всё, то давайте подумаем над тем, что же такое «факты» для финансистов. Какой должна быть бизнес потребность, чтобы мы могли применить блокчейн? Этот момент озарения — то, что движет проектом Corda…
Вот пример фактов из финансовой сферы:
1) Банк А и Банк Б согласны, что Банк А занял 1 миллион долларов Банку Б. Это так называемый вклад до востребования.
2) Банк А и Банк Б согласны, что они оба входят в дефолтный своп с такими-то условиями… Это так называемый производный контракт.
3) Банк А и Банк Б согласны, что Банк А обязан передать 1000 акций компании BitGo Банку Б в течение трех дней в обмен на 150 тысяч долларов. Это так называемая доставка-после-платежа.
И так далее…
Основа финансовой индустрии в договоренности между различными её участниками. Существует и проблема: такая договорённость обычно фиксируется в разных системах. Стоимость такой регистрации достаточно высока, потому что включает в себя риск решения споров и конфликтов. Миллиарды долларов тратятся каждый год на это.
Обычно такие системы работают с помощью обмена сообщениями. Я посылаю обновление данных и надеюсь, что вы будете с ним согласны. Мы тратим такие огромные средства именно чтобы быть уверенными в нашей общей порядочности.
Теперь представьте себе систему, которая позволит фиксировать соглашения мгновенно и надежно. Эти договорённости сможет проверить надлежащий регулятор. Система, которая построена с помощью доступных каждому технологий с упором на совместимость и инкрементальное обновление. Система, в которой информация не будет утекать третьим лицам. Система, в которой одна компания сможет, просмотрев договорённости, сказать:
"Я вижу то же, что и ты. И я знаю, что ты видишь то же самое, что и я. И мы знаем, что это именно то, что видит и наш регулятор".
Встречайте Corda!
Что же мы взяли из стандартного набора Блокчейна?
Проблема сформулирована, а значит теперь можно сделать выбор составляющих блокчейна. Итак:
КОНСЕНСУС
Corda в первую очередь строилась для того, чтобы иметь возможность фиксировать факты вроде «Я вижу то же, что и ты… и я знаю, что ты видишь то же самое о факте, что и я». Но это вовсе не означает, что другие лица должны иметь доступ к этой информации. Мы добиваемся консенсуса только между нужными участниками, а не между всеми.
ДОПУСТИМОСТЬ (Validity)
Если две стороны сделки согласны и добились консенсуса, то почему их должно интересовать, что какая-то третья сторона думает об этой сделке? Зачем вообще посылать им уведомление об этой сделке? Соответственно, Corda позволяет указать, кто должен (и кто не должен) участвовать в сделке с помощью проверенных временем средств разработки.
ЕДИНСТВЕННОСТЬ/ОДНОЗНАЧНОСТЬ (Uniqueness)
Как и в любом другом Ledger'е, мы должны избегать конфликтующих транзакций. Но различные сценарии накладывают совершенно разные ограничения. Именно поэтому в Corda существует возможность менять «сервис однозначности», который по умолчанию работает как в «обычном блокчейне». Также существует возможность выбора различных моделей согласно CAP-теореме. Некоторым финансовым организациям нужна консистентность данных, тогда как для других более важна работоспособность системы в случаях потери связи.
НЕИЗМЕННОСТЬ и АУТЕНТИФИКАЦИЯ
Здесь архитектура Corda лишь незначительно отличается от существующих систем: наши структуры данных неизменяемые, а транзакции записываются в блоки, как и везде.
Corda не сильно отличается от «традиционного блокчейна» в трех аспектах — в аутентификации, неизменности и однозначности. Но такие составляющие, как консенсус и допустимость (только для заинтересованных участников), отличаются весьма заметно.
В чем отличие Corda?
Погодите. Разве все остальные компании, связанные с блокчейном, не говорят о том же самом? Не совсем.
Обратите внимание, что мы не создаём очередной блокчейн. В отличие от других проектов в этой сфере, мы начинали с индивидуальных соглашений между компаниями («объекты состояния» под управлением «кода контракта», а также связанные с ними «тексты соглашений»). Мы не посылаем данные транзакций всем, даже не смотря на то, что они зашифрованы.
Во-вторых, мы были сфокусированы на соглашениях с самого первого дня — я говорю об упомянутых выше «текстах соглашений» (“legal prose” в оригинале). Мы понимали, что всегда будут какие-то споры, поэтому постарались их заранее пресечь.
В-третьих, мы понимаем необходимость управления финансовыми соглашениями. Нам нужно что-то большее, чем просто система нахождения консенсуса. Нужно иметь возможность описания и интеграции бизнес-логики с существующим кодом. Нам нужна совместимость. Нам нужна возможность создания хореографии между различными участниками.
Разные решения разных проблем
Но… Вы должны понимать, что Corda не является единым решением всех проблем. Эта технология может решить лишь определенный класс задач.
Именно поэтому мы активно общаемся с нашими партнерами, которые создают дополняющие нас сервисы. Мы не всеведущие. Более того, нам ещё предстоит решить множество архитектурных и исследовательских задач.
Я очень доволен тем, что мы разработали! Вы услышите от нас и о других проектах, не связанных с Corda. Наш подход заключается в том, что для каждой задачи мы ищем своё решение. Те, кто посещал наши встречи, уже слышали это от меня. Задача Corda не в конкуренции с другими компаниями. Наоборот, мы вынуждены были создать эту технологию, так как не нашли готового решения наших проблем. Это то, что делает сферу нашей деятельности такой интересной!
Что дальше?
В ближайшее время вы узнаете другие факты о Corda, про наши исходные задачи и про нашу архитектуру. Мы стараемся поскорее выпустить платформу и открыть её исходный код. Следите за нами!