1

Question 1: Can one account holder send Ether to another one without using a smart contract?

Question 2: Is there any need that two accounts send messages/transaction directly to each other?


  • a transaction: signed message: sent by externally owned account.
  • message is sent by contract to another contract.

But a contract can call other contract functions and change the state of 2nd contract. So, the question is:

Question 3: Why does a contract not need to sign a message it sends?

1
  • 1. Yeah, you can directly use sendTransaction 2. I don't exactly understand this, but 2 accounts can send transaction without a contract. 3. Because contracts are governed by EoA's. So EOA's regulate how a contract works, Sep 28, 2017 at 11:55

1 Answer 1

2

An external account sends ether to either another external account or a smart contract identically--by initiating an signing the transaction. The smart contract will only receive the ether if the called function is marked payable.

In the case of an external account sending to another external account, the ether simply transfers (as long as the sender has the money), no problem.

A smart contract can send ether, but that send must have been initiated from an external account to begin with (in other words, smart contracts cannot initiate transactions). In the past, people called this type of send an internal transaction, but these days its called a message call, message, call, etc.

Be careful with the word "message," though. I can initiate an external transaction to another external account and insert a message by stuffing text into the input field. My friend can then read that "message."

The other type of message you will hear about is a message coming from a smart contract.

As far as "why does a contract not need to sign...", think of it this way: The smart contract is autonomous. There's no-one there to sign anything. Plus the smart contract cannot initiate transactions. Furthermore, if a smart contract could initiate transactions and sign them, its private key would necessarily have to be stored on the blockchain. Everyone could see it, anyone could steal it, and it would be easy to impersonate the smart contract, so it wouldn't work in any case.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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