2019-05-30
What is ... ? Ethereum Frequent Terms and Concepts explained!
What is the meaning of ABI Array?
ABI stands for Application Binary Interface. That's an array which tells a software - usually a JavaScript library like Web3.js or EtherJS - how to interact with a Smart Contract.
If a Smart Contract is compiled then all you see is the hex encoded function signature. And just by looking at the source it's hard to determine how to interact with a Smart Contract. All the plain-text information is gone. So instead of function myFunction(uint _arg1) public {...}
you just see something like 0x123abcdef, where it's the first 4 bytes of the keccack256 hash of myFunction(uint256). But that's way too deep - something we're discussing extensively in The ultimate Blockchain Mastery video bundle
The ABI Array is the missing link between interacting from outside with an already deployed smart contract.
What is the Account Nonce in Ethereum
That's an easy one: It's a number that increases every time a transaction is sent from this account. It's necessary to prevent replay attacks.
Every time a transaction is sent, it needs to be signed with the private key from this account. If there was no nonce, then in the simplest form only this information is signed:
{
from: 0x1bc...,
to: 0x5fcd...,
value: 10000000
}
Let's say it gives a signature A
. All data on the network is public, so everyone can see the Signature and can recover the public key and therefore the "from" address. But even more, everyone can just re-send the same transaction again. And if there is no nonce that counts up then there is no way to see if the transaction was already sent or not.
That's why there is a nonce.
What is the difference between an Archive Node, Full Node and a Light Node?
Let's start with the Full Node, as this is a very common way of running an Ethereum Node.
- A Full Node is a node that stores all blockchain data on disk and also serves for other nodes who request blockchain data. It verifies blocks and transactions. But it stores only the recent state - although any state can be derived from the block data.
- An Archive Node does essentially the same as a Full Node, but also stores all historical states.
- A Light Node only stores the block headers and request the rest on-demand.
What is the difference between Contract Accounts and Externally Owned Accounts?
On Ethereum there are two types of Accounts, but why?
Actually, as a spoiler, they might even disappear in the future when so called Account Abstraction is finalized. But until then we are stuck with Contract Accounts and EoA.
I saw a great video about this a while ago:
I could not say it any better, but I'll try anways:
- Externally owned accounts need a private key and are controlled by a private key. These can initiate a transaction and deploy smart contracts.
- Contract Accounts are Smart Contracts. They cannot initiate a transaction, but can deploy new smart contracts through a transactions to them.
What is EIP and ERC on Ethereum?
EIP stands for Ethereum Improvement Proposal and is mostly for protocol level improvements. The community can give hints and and comments for Ethereum Network improvemnts, like gas price adjustments, consensus algorithm changes or other things like that.
ERC stands for Ethereum Request for Comment and is a platform for user-contributions to the ecosystem with questions to fellow developers. This is for example smart contracts for specific use cases. The famous ERC-20 token contract came out of the ERCs. It was the issue #20 on the github issue page for the ERCs.
What is the difference between Ether and Ethereum?
One thing that is particularly confusing is the naming between the currency and the platform (or blockchain). On the Bitcoin network, the protocol, cryptocurrency and platform is always called "Bitcoin".
On the Ethereum Blockchain the cryptocurrency is called Ether, the rest (protocol, Blockchain, platform) is called Ethereum.
What is the meaning of EVM and EVM Bytecode?
EVM stands for Ethereum Virtual Machine and is like a sandbox to execute Smart Contracts. Imagine it like the browser which can execute JavaScript, but the actual JavaScript can't escape.
Now, on Ethereum (or the EVM), the code is not interpreted, it's actually compiled code. It has a similar instruction set like assembly, and this bytecode is residing on the blockchain. This gets executed through the EVM.
How is Gas connected with the Gas Limit and the Gas Price?
One thing that is confusing for newcomers is the difference between Gas, Gas Limit and Gas Price.
Gas is economically detached from Ether. Much like Water is economically detached from the price for a gallon (or liter) of water. The amount of water stays the same, but what you pay for varies.
Same for gas price. If a Smart Contract is executed it always consumes a certain amount of gas. That is determined by the instructions the EVM executes. What you pay for depends how fast you need your transaction to be mined.
The Gas Limit has a special function. Normally the gas amount is known in advance, but it's not always possible to accurately calculate it. It sometimes depends on which transaction gets mined first so a new storage block must be allocated, etc... So, you can set a Gas Limit to limit the maximum amount of gas the transaction can use up. If it needs less, the rest will be refunded back to you.
A few months back I did an explainer video about Gas, which might comes in handy here:
Don't forget: All of this is something we're discussing extensively in The ultimate Blockchain Mastery video bundle. Join it here for $19 only!
Any questions? Let me know in the comments!