Исходные данные

EIP-2537 добавляет в Ethereum встроенные операции над кривой BLS12-381, включая операции с точками и проверку билинейного спаривания. Контракты могут использовать эти операции как часть проверки криптографических доказательств и подписей. Вызов одной операции даёт результат для переданных математических данных. Ethereum EIP-2537 ↗

Граница между математикой и правилом приложения

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

Как различаются ошибка и отрицательный результат

Спецификация задаёт кодировку входа и условия допустимости точек. Для pairing check некорректная длина и точка вне требуемой подгруппы относятся к ошибкам вызова. Корректно закодированные данные, для которых уравнение не выполняется, дают отрицательное значение. Интеграции полезно различать эти случаи в журнале. Первый сигнал помогает найти ошибку формирования входа, второй показывает, что математическое условие не выполнено.

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