Follow Us
Facebooktwitteryoutube
YouTube
Promo
banner
Promo
banner

Представляем Scribble от ConsenSys Diligence

блог 1НовостиДля разработчиковПредприятиеБлокчейн РазъяснениеМероприятия и конференцииПрессаИнформационные бюллетени

Подписывайтесь на нашу новостную рассылку.

Адрес электронной почты

Мы уважаем вашу конфиденциальность

ГлавнаяБлогНовости

Представляем Scribble от ConsenSys Diligence

by ConsenSys8 декабря, 2020Опубликовано 8 декабря, 2020

Каракули

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

Вот почему мы разработали Scribble: язык проверки и инструмент проверки во время выполнения. Первоначально созданный для автоматического тестирования собственности во время аудитов, мы решили поделиться этим проектом с сообществом.!

Что такое Scribble?

Когда мы говорим о Scribble, мы говорим о двух вещах..

Во-первых, Scribble – это язык спецификации для написания свойств..

Во-вторых, Scribble – это инструмент проверки времени выполнения, использующий язык спецификации Scribble..

ПРИМЕЧАНИЕ. Scribble не выполняет никаких проверок самостоятельно. Это делает включить другие инструменты для тестирования и проверки свойств.


Scribble – это язык

Scribble определяет предметно-ориентированный язык для написания свойств смарт-контрактов. Мы создали язык на основе надежного синтаксиса, чтобы упростить его изучение. Этот язык спецификаций позволяет аннотировать твердый смарт-контракт с помощью свойств..

ПРИМЕЧАНИЕ. Свойство – это логическое утверждение, которое, как вы ожидаете, будет истинным, например «Все машины красные». В случае солидности вы часто будете иметь такие свойства, как: «Только владелец может изменить X». Или «Функция sendToken () не должна изменять эфирный баланс этого контракта».

Вы можете использовать несколько типов аннотаций для разных типов свойств. Например, инварианты или постусловия.

Это пример аннотации Scribble:

Снимок экрана 2020 12 08 в 12 06 15 PM

Как видите, аннотации имеют форму встроенного комментария, размещенного над определением функции. Мы добавили так называемое предложение if_succeeds, которое проверяет, выполняется ли условие после выполнения функции. В этом случае мы проверяем, что результат функции всегда отличен от нуля..

Читать документацию Scribble

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

Scribble – это инструмент

Scribble может взять контракт, помеченный свойствами, и скомпилировать его в новый контракт. В этом новом контракте Scribble добавит код Solidity, который генерирует утверждение всякий раз, когда нарушается свойство. Мы называем этот процесс инструментарием.

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

Поскольку вы можете использовать существующие методы автоматического тестирования (например, наш фаззер Харви), вы сможете начать тестирование, написав всего лишь одно свойство. Мы считаем, что это существенное преимущество; Вы сразу получаете выгоду от автоматического тестирования, вместо того, чтобы тратить много времени заранее, чтобы набрать критическую массу аннотаций. То, что обычно необходимо при традиционных подходах к проверке.

Вы можете быстро приступить к тестированию и анализу контракта и даже решить позже приложить дополнительные усилия для полной проверки смарт-контракта.!

Цели

Аудит

Мы используем Scribble во время аудитов для формулирования свойств. Используя методы автоматического анализа, такие как фаззинг и символьное выполнение, мы автоматически проверяем и обнаруживаем нарушения для этих свойств..

Свяжитесь с нами, чтобы узнать больше о фаззинге и тестировании на основе свойств во время аудитов.

Стандарт

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

Принятие

С помощью Scribble мы надеемся снизить барьер для автоматического тестирования и формальной проверки. Мы также хотим сократить временные затраты, необходимые для разработки правильных и безопасных смарт-контрактов, что приведет к созданию более безопасной экосистемы..

Где его взять?

У нас полностью открытый исходный код Scribble, и теперь он доступен по адресу github.com/consensys/scribble.

ПРИМЕЧАНИЕ: это бета-версия, некоторые аспекты языка будут изменены, и вы можете столкнуться с некоторыми ошибками..

Вы можете легко установить Scribble с помощью npm:

Снимок экрана 2020 12 08 в 12 06 35 PM Установить Scribble

Подпишитесь на нашу рассылку, чтобы получать последние новости Ethereum, корпоративные решения, ресурсы для разработчиков и многое другое.Отчет DeFi по Ethereum за 3 квартал 2020 г.Отчет

Отчет DeFi по Ethereum за 3 квартал 2020 г.

Отчет DeFi по Ethereum за 2 квартал 2020 г.Отчет

Отчет DeFi по Ethereum за 2 квартал 2020 г.

Отчет об экосистеме стекинга Ethereum 2 0Отчет

Отчет об экосистеме стекинга Ethereum 2.0

Полное руководство по бизнес-сетям с блокчейномГид

Полное руководство по бизнес-сетям с блокчейном

Как создать успешный блокчейн-продуктВебинар

Как создать успешный блокчейн-продукт

Центральные банки и будущее денегБелая бумага

Центральные банки и будущее денег

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me
Adblock
detector