The Blocks are linked together using cryptography.
It's described as a data storage:
- trustless
- fully decentralized
- peer-to-peer
- immutable
It's spread over a network of participants (nodes)
· Blocks
They contain:
- a cryptographic hash of the previous one.
- a timestamp + transaction data.
The timestamp proves that the transaction data existed when the block was published in order to get into its hash.
The blocks form a chain (hence the name).
· Resistance to modification
The recorded data in a block cannot be altered without altering all subsequent blocks
They are ban be managed by a p2p network for use as a publicly distributed ledger
Nodes adhere to a protocol to communicate/validate new blocks.
· Secure by design
Although blockchain records are not unalterable as forks are possible, blockchains may be considered secure by design.
They exemplify a distributed computing system with high Byzantine fault tolerance.
· Structure
A blockchain is a digital ledger:
- decentralized
- distributed
- often public
It consists of records (blocks)
it's used to record transactions across many computers
Any block cannot be altered retroactively, without the alteration of all subsequent blocks.
· Verification
The participants can verify/audit transactions independently and inexpensively.
A blockchain DB is managed autonomously using:
- p2p network
- distributed timestamping server
It's authenticated by mass collaboration powered by collective self-interests.
· Robust workflow
The uncertainty of the participants regarding data security is marginal.
The use of a blockchain removes the characteristic of infinite reproducibility from a digital asset, confirming that each unit of value was transferred once.
· Value Exchange protocol
A Blockchain can be seen as a value-exchange protocol.
A blockchain can maintain title rights.
When properly set up to detail the exchange agreement, it provides a record that compels both offer and acceptance.
· Layers
A blockchain can be seen as several layers:
- infrastructure.
- networking (node discovery, information propagation, verification).
- consensus (proof of work/stake).
- data (blocks, transactions).
- application (smart contracts/decentralized applications).
100-Days-of-Web3 GitHub Repository
I am posting one Web3-related content every day for 100 days.
Here is the Github repository with all the posts, day by day (it currently has 321 stars.).
It's the standard way to interact with contracts in the Ethereum ecosystem:
- from outside the blockchain
- for contract-to-contract interaction
Data is encoded according to its type.
The encoding requires a schema to decode
Assumptions
Assumptions for contracts:
- interface functions are strongly typed, known at compilation time, static
- they'll have interface definitions of contracts they call available at compile-time
This is not for contracts with:
- dynamic interface
- only known at run-time