Мне нужно внедрить криптографические алгоритмы, такие как AESCCM, и алгоритмы эллиптических кривых (ECDSA, ECIES) в рамках смарт-контракта. Есть ли реализация таких алгоритмов в Solidity или Serpent?
Или есть ли способ интегрировать код Python (или другой язык) в Serpent, например (в Python много криптографических библиотек)?
Или любые другие предложения о том, как я могу реализовать эти алгоритмы?
Эта библиотека является хорошей отправной точкой: https://github.com/HarryR/solcrypto .
Как указывает Ричард, шифрование с симметричным ключом и операция с закрытым ключом редко бывают разумными в смарт-контракте, поскольку смарт-контракт не имеет конфиденциальности. Однако операции с открытым ключом, такие как проверка подписей, доказательств и хэшей, могут быть очень полезными и стали более эффективными с добавлением предварительно скомпилированных контрактов на основе эллиптических кривых в Byzantium.
Помните, что все, что делается внутри смарт-контракта, должно оплачиваться газом: вычислительные затраты приравниваются к расходам на газ. Даже если высокая стоимость газа не является сдерживающим фактором, все же существует ограничение газа на блок, которое необходимо учитывать. (Я мало что знаю о реализации криптоалгоритмов, но я проверил реализацию ECDSA на OpenSSL C , и она состоит из сотен строк...)
Кроме того, как упоминалось в предыдущих потоках , подписание чего-либо внутри смарт-контракта обязательно раскроет закрытые ключи, что, по-видимому, не то, что вам нужно. Лучшим вариантом было бы выполнить мясо крипты вне контракта и отправить ему полученные хэши.
эт
Диссу
Адитья Бхат