Multi-node architecture
Flow’s design is unique, allowing the network to scale to serve billions of users without sharding or reducing decentralization of consensus. Flow achieves this by applying pipelining to blockchains by separating the jobs of a validator node into four different roles: Collection, Consensus, Execution, and Verification. This separation of labor between nodes is vertical (across the different validation stages for each transaction) rather than horizontal (across different transactions, as with sharding).
Developer Friendly
Flow uses Cadence, the first ergonomic, resource-oriented smart contract programming language. This language has a comfortable, ergonomic syntax making it very easy to read. It uses a strong, static type system to minimize runtime errors, and allows all methods, interfaces, and transactions to include pre- and post-conditions to enforce expected behaviour. This has resulted in a language that is easier to learn and significantly easier to audit.
Consumer Friendly Onboarding
A key feature of Flow is being consumer friendly, aimed at mainstream adoption. Human readable security is a core component here, as the Flow transaction format makes very strong guarantees about what kinds of changes a transaction can and can not make. This makes it easy for the wallet to ensure users are making informed decisions about what they are approving. Also included is added security through optional multiple signature support, with the ability to cycle out old keys regularly to avoid security leaks.
Secure Validator Nodes
All of our nodes — from our public validator node to dedicated deployments — follow best practices to be responsible members of the Flow network, keeping our nodes running and participating in network consensus. Validators on Flow can get started as Consensus or Verification Nodes.