0

I'm trying to construct my business architecture using ethereum.

I'll operate public ethereum node and private business server on the AWS.

I'll trigger transaction from the private business server using web3.js to public ethereum node.

Q1 : On this case, Do I have to sign the transaction using private key on the private business server. right?

Q2 : The transaction will go through internet because ethereum node and business server node are physically separated. On this case, Is the transaction(signed data) which triggered by web3 safe through the internet? I'm worry that the signed data packets are captured on the internet and translated by hackers.

0

On this case, Do I have to sign the transaction using private key on the private business server. right?

That would be the ideal scenario. You could technically restrict your public node's RPC to be only accessible by your business server, and then use the personal APIs to unlock and send transactions from a keystore held on the node server. However, it is easier to secure a setup where a presigned tx is broadcast, as you can avoid unlocking any keys on the server.

The transaction will go through internet because ethereum node and business server node are physically separated. On this case, Is the transaction(signed data) which triggered by web3 safe through the internet? I'm worry that the signed data packets are captured on the internet and translated by hackers.

What do you mean by translated? Anyone intercepting the data in flight could also just as easily read it from the blockchain, or form any node's txpool.

You are protected against tampering, since even if someone were to intercept it and alter the transaction, it would invalidate your signature, making it an invalid transaction.

  • Thanks @Raghav Sood. I don't understand 'where a presigned tx is broadcast, as you can avoid unlocking any keys on the server.' meaning. Can you explain more detail using physicall node construction ? – Yoonsung Lee Aug 2 '18 at 2:13
  • If your node holds the keys, you must unlock them before you can sign and send a transaction. If your business server holds the keys, it can sign the transaction locally and broadcast a complete, signed transaction. – Raghav Sood Aug 2 '18 at 2:24
  • Ok, I understand it. Is the broadcast you mean different with the json RPC call to one node ? I first think that business server send the signed transaction using json RPC call to my public ethereum node. And then, the node will automatically broadcast the transaction on the blockchain network. Is it correct? – Yoonsung Lee Aug 2 '18 at 2:44
  • Correct, that should work. – Raghav Sood Aug 2 '18 at 3:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.