В понедельник группа учёных, исследующих информационные технологии ещё с 1980-х годов, объявила о создании стартапа Agoric. Цель проекта — разработать новый, универсальный и защищённый язык программирования на основе JavaScript. Стартовый капитал учёным обеспечили инвестиции «передовиков» криптоиндустрии, в том числе Polychain Capital и Zcash Company.

Команда Agoric утверждает, что новый язык сделает программирование блокчейна более интуитивным и более защищённым на выходе. При этом будет сохранена возможность внедрения формальных процедур верификации.

Дин Триббл (Dean Tribble), один из создателей Agoriс, утверждает:

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

Взяв за основу популярный язык программирования, JavaScript, учёные надеются, что эта технология вскоре заинтересует больше разработчиков.

«Теперь, имея на руках мощный катализатор в виде JavaScript, мы можем открыть этот огромный мир невероятному количеству java-разработчиков», — сказал Марк Миллер, коллега Триббла и бывший научный сотрудник Google.

Он продолжил, рассказывая, как их язык также сможет обеспечить взаимодействие смарт-контрактов на разных цепях, что в перспективе может стать основой для p2p-трейдинга различными криптовалютами.

«Сам по себе контракт и природа закреплённых им отношений могут создать разные условия. Это даже может привести к радикализации обмена активами».

Заслуги прошлого

Agoric отличает, пожалуй, не столько практичность, сколько колоссальный опыт его основателей.

Во время конференции Consensus 2018 создатель Zcash Зуко Уилкокс (Zooko Wilcox) не переставал расхваливать Миллера за его проницательность в отношении проблем, которые могут возникнуть при разработке смарт-контрактов. К примеру, уже в 1988 году Миллер стал соавтором Agoric Papers, документа, описывающего основы коммерчески-ориентированных распределённых вычислительных технологий — задолго до того, как появилось само понятие «смарт-контракт».

Заслуги остальных участников проекта также впечатляют. Билл Тулло (Bill Tulloh) и Дин Триббл работали над первой системой смарт-контрактов AMiX, а благодаря Брайану Уорнеру (Brian Warner) появился протокол для децентрализованных облачных хранилищ Tahoe-LAFS.

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

По мнению Миллера, при всей революционности Ethereum, некоторые свойства основного кода цепи на базе Solidity могут доставить программистам немало проблем.

«Один из основных уровней архитектуры Ethereum вынуждает разработчиков создавать смарт-контракты с определёнными уязвимостями», — сказал он.

И Миллер прав. Недавнее исследование установило, что, среди активных смарт-контрактов в основной сети Ethereum, 34 000 являются незащищёнными — исключительно из-за «врождённых» изъянов Solidity.

«Проблема не только в том, что Solidity — плохой язык программирования — если бы всё было так, мы могли просто написать язык получше, — проблема лежит на уровне архитектуры, на уровне базовой модели систем безопасности», — утверждает Миллер.

В частности, продолжил он, уязвимость находится на стыке систем авторизации и идентификации личности. Agoric, напротив, подразумевает их независимость друг от друга — как, например, паспорт и ключи от автомобиля.

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

Примером такой системы является Agoric, объяснил Миллер:

«Вот что мы делаем: мы полностью сохраняем контроль доступа на базе авторизации на всех уровнях абстрагирования, так, что все вторичные права, закреплённые в смарт-контрактах, могут так же свободно обмениваться, как и токены».

Упрощённый аудит

Agoric, как утверждают его создатели, может быть полезен программистам ввиду своей объектно-ориентированной природы.

Это означает, что разработчики могут сосредоточиться на защите небольших дискретных элементов, которые затем образуют всё более сложные системы, при этом не повреждая фундаментальные алгоритмы.

«Предчувствия насчёт взаимодействующих объектов, уже назревшие в сфере объектно-ориентированного программирования — это то, что мы стараемся усилить, чтобы помочь им тщательно обдумать проблемы безопасности», — сказал Миллер.

С этим согласен и Триббл; по его словам, программисты чаще всего задают достаточно простые вопросы: «Вот мой код, защищён ли мой банковский счёт? Вот мой код для контракта, в сохранности ли деньги? На более высоком уровне, людям более понятны именно подробности».

Ещё одним достоинством такого языка является сравнительно простой аудит систем безопасности.

В настоящее время проведение аудита занимает много времени и дорого стоит, поскольку людей, свободно разбирающихся в языках программирования смарт-контрактов типа Solidity, не так много. Но, как считает Триббл, такой порядок нецелесообразен.

Создатели Agoric работают с множеством других академиков, чтобы оптимизировать процедуры проверки; однако Триббл подчеркнул, что созданные ими методы ещё далеки от окончательных версий:

«Нам много нужно сделать. Мы много времени отвели на теоретические нюансы, и мы ещё только в начале пути».

Сейчас Agoric посвятит себя разработке нового языка программирования, однако, забегая вперёд, учёные рассказали, что займутся созданием открытого инструментария для создания различных сред. Данный инструментарий отчасти продолжит изначальный проект, обновляя видение смарт-контрактов и фактически превращая их в способ упрощения взаимодействие человека и машины в сети Интернет.

В завершение, Триббл сказал:

«Мы ведём несколько проектов, но сейчас наше основное внимание сконцентрировано на решении этих проблем и ускорении развития рынка».