0

I have read about how transactions work and how they can be redeemed in bitcoin. In a very abstract way, the sender defines the output script that should redeem the transaction. But I am new to Etherum. So my question, how Etherum transactions differ than bitcoin?

To clarify my question, if I have a smart contract on the Etherum blockchain that can send some ethers from the contract owner to someone else under a specific condition (A similar contract is in this nice answer in this question, timed commitment using ethereum blockchain). I know how bitcoin can handle the previous case ( It requires passing around partially signed transactions, holding unpublished transaction, sharing hashes) , but technically how Etherum handle it? And which is more secure bitcoin or etherum?

0

In ethereum, Ethereum Virtual Machine handles the transaction. Whenever a new transaction arrives in node. The node does the following steps

  1. Validate the transaction signature
  2. Validate the transaction sender
  3. Checks the transaction nounce and it should match with the sender nounce
  4. The gas limit should be greater than the gas used by the transaction
  5. Checks the sender balance, the sender balance should be enough that transcation can be executed
  6. Check for gas limit as it should not exceed after the execution of the transaction

After checking that, transaction can be added in the block and executes the State Transition function to implement the execution of the transaction

Refernece : Blockchain Applications A Hands on Approach by Arshdeep Bahga

0

An important difference is that in ethereum accounts and data exist as ordered data in a state database. Transactions modify this states. In bitcoin though, the consumption of old UTXOs and the creation of new UTXOs leads to the change of an implicit state. One could say that all the unspent transaction outputs together reflect the current state in bitcoin.

Example: In Ethereum you can directly search for an address in the stateDB and query the balance. In Bitcoin you have to search every UTXO and look whether you can formulate the spending condition. Summing the values coupled to the UTXOs gives your balance.

Bitcoin and Ethereum share (roughly) the same security. In Ethereum you have to sign your transaction using ECDSA on curve Secp256k1 to transfer balance or invoke a smart contract which handles state changes. Every state changes begin with a signed transaction in Ethereum. In Bitcoin, you can formulate spending conditions which require no EC signature. For example, you could formulate the condition "x + 2 = 3" to protect an utxo from being spent. Anybody who has the arithmetic skills to solve that equation can take this UTXO, formulate the solution (push 1 on the stack) and create a valid transaction (and therefore implicitly transfer value).

There is a big difference in the languages used in smart contracts or in bitcoin scripts. The former languages are (usually) turing-complete, which (roughly) means that you can solve every problem a computer can solve with that language. To be exact, they are quasi-turing-complete, because there is another factor which limits what the language can solve: Gas cost (execution cost) and gas limits. Bitcoin uses a turing-incomplete language. Important operations got removed from that language and only what is really necessary was left. Further Bitcoin client rules often limit the script sizes dramatically. These circumstances limit you extremely in the creation of "smart contracts" in Bitcoin. The fact that you can formulate any program that a computer can execute in ethereum, makes the language extremely powerful and therefore dangerous. Writing smart contract requires a lot of thoughts about how you write your code that it can not be exploited. Cases occurred where people intentionally wrote code that they could abuse it later to cheat their customers. To name some examples where code bugs lead to high damage: DAO Hack, Partiy Multisig bug, integer overflow attacks

Both bitcoin addresses and ethereum address are checksummed, so human typing errors are catched. Bitcoin addresses have a stronger checksum though.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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