Надежность взаимодействия в Ethereum с внешней библиотекой c ++

Я работаю над продуманным умным контрактом для Ethereum.
Мне нужно запустить алгоритм криптографической проверки перед совершением транзакции. Этот алгоритм реализован на C ++.

Как я могу назвать этот код изнутри умного контракта?

Допустим, у меня есть следующий код C ++ (но на практике он намного сложнее)

int foo(int a, int b, int n){
if(pow(a,b)%n == 1)
return true;
else
return false;
}

И если этот код возврата верен, мне нужно совершить транзакцию

    msg.reciever.addr.send(amount);

Есть ли какое-либо решение, которое я могу использовать, чтобы объединить умные контакты Ethereum и сложную самореализованную криптографию, что должно быть сделано внутри блокчейна? Как сделать мост между блокчейном и внешней библиотекой.

0

Решение

Как правило, вы не можете вызвать какой-либо внешний код из контракта Ethereum. Для запуска криптографической проверки вы должны использовать ecrecover функция солидности

http://solidity.readthedocs.io/en/develop/units-and-global-variables.html#mathematical-and-cryptographic-functions

https://ethereum.stackexchange.com/questions/1777/workflow-on-signing-a-string-with-private-key-followed-by-signature-verificatio

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]