Создание на блокчейнах всегда было сложным. Вам нужно научиться мыслить с причудами Solidity, справляться с лимитами газа и странными ошибками или тратить много времени на изучение доказательств с нулевым раскрытием. Midnight Network хотела сделать так, чтобы разработчикам было легче создавать продуктивные приложения. Вот почему они создали Compact, язык, который выглядит и ощущается как TypeScript.

Compact — это язык смарт-контрактов для блокчейна Midnight. Его название происходит от значения "компактный" как обязательное соглашение. Смарт-контракт предполагает наличие обязательных правил, которым все могут доверять. Compact встречает вас там, где вы уже находитесь, с синтаксисом, который кажется комфортным, если вы писали на TypeScript или современном JavaScript.

  • Переменные имеют строгую типизацию

  • Компилятор ловит ошибки до того, как вы развернете что-либо

  • Сообщения об ошибках имеют смысл

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

Компактный контракт состоит из четырех частей:

  • Декларации типов. Ваши собственные формы данных

  • Декларации бухгалтерских книг. Состояние, которое может видеть каждый

  • Декларации свидетелей. Вспомогательные функции

  • Определения цепей. Реальная логика, которая превращается в доказательства с нулевыми знаниями

Общая часть поддерживает практические типы коллекций, такие как счетчики, множества, карты и списки. Midnight предоставляет вам сокращение для увеличения счетчика, например `counter += 1`.

Цепи — это то, где происходит магия. Когда вы пишете экспортируемую цепь, компилятор Compact превращает её в цепь с нулевыми знаниями. Любой может проверить, что правила были соблюдены, не видя входные данные.

Midnight имеет библиотеку, которая охватывает общие вещи, такие как типы Maybe и Either, адреса пользователей и подписи эллиптической кривой. Когда вы компилируете контракт Compact, вы получаете:

  • Цепи с нулевыми знаниями для каждой экспортируемой функции

  • Реализация JavaScript для симуляции и модульных тестов

  • Файлы деклараций TypeScript (.d.ts) для типизированного кода

Классический пример контракта счетчика — хорошая отправная точка. Вы объявляете счетчик, пишете цепь для его увеличения, компилируете. У вас есть частный способ увеличить число на блокчейне.

Что выделяет Compact, так это то, сколько умственных усилий он добавляет. Вы сосредоточены на бизнес-правилах, пользовательском опыте и логике приложения. Сильная типизация ловит ошибки на ранней стадии. Знакомый синтаксис делает его простым в использовании.

Midnight создала Compact, потому что они верят, что частные смарт-контракты не должны быть сложными. Они должны ощущаться как написание кода. Чисто, безопасно и предсказуемо. При этом открывая мощные функции. Compact — это прямой способ написания кода, который естественно читается, компилируется и позволяет блокчейну обрабатывать доверие и конфиденциальность.

#night $NIGHT @MidnightNetwork