Я работаю над проектом, в котором все данные хранятся в зашифрованном виде на блокчейне. Есть несколько внесетевых вычислительных узлов, у которых есть ключ для расшифровки данных, выполнения некоторых вычислений и возврата результатов. Я хотел бы разработать схему, в которой можно проверить правильность вычислений с помощью смарт-контракта. Итак, я думаю иметь смарт-контракт, который реализует функцию проверки. Функция проверки будет иметь два аргумента: ключ для расшифровки и ожидаемый результат. Функция постоянна, поэтому закрытый ключ не должен записываться в блокчейн, следовательно, оставаться скрытым ото всех. Функция возвращает true или false и подписывает этот результат. Эта функция может быть вызвана только сущностью, которая знает ключ. Для реализации вышеописанного мне нужна функция для расшифровки и для подписи в Solidity, но я не смог найти.
Есть ли какие-нибудь советы, если в Solidity существует функция расшифровки, подписи? Любые библиотеки? Любые советы по альтернативным проектам для моей проблемы
В соответствии с вашим вопросом, да, вы можете сделать. Но, к сожалению, я не смог найти никаких библиотек шифрования в Solidity. Как правило, хорошие алгоритмы шифрования/дешифрования требуют хорошей вычислительной мощности. Это означает, что требуется больше газа. Я чувствую, что это рентабельно.
Позвольте мне подытожить код:
contract Mail{
mapping(address=>string) loginInfo;
function validate(bytes key, bytes expectedResult) public constant returns(bool){
//Check given saved data
//To do check given data and decrypted data is same or not?
return true;
}
}
Вместо этого вы можете пойти другим путем:
В приведенном выше методе ваши исходные данные не будут переданы в сеть.
Например: договор,
contract Mail{
struct MailInfo{
bytes ipfs;
bytes enc_hash;
}
mapping(address=>MailInfo) loginInfo;
function getIPFS(address userId) public constant returns(bytes,bytes){
return (loginInfo[userId].ipfs,loginInfo[userId].enc_hash);
}
}
Эдмунд Эдгар
пользователь19510
Джитендра Кумар. Балла
Метки.
Эдмунд Эдгар
Метки.
Метки.
Джитендра Кумар. Балла