2017-08-08 4 views
0

私は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

感謝を使用する必要がありますが、私の場合、堅牢ですべてのコードを書き換えすることは合理的ではないので、私は他のを見つける必要があります溶液。 – Maria

+0

oracleを使用しなければならない場合があります - https://docs.oraclize.it/#data-sources-computationを参照してください。 – gaiazov

関連する問題