Sunny Aggarwal, presents Cosmos: An Internet of Blockchains at a Blockchain at Berkeley workshop on February 19th, 2019. View event details: https://cosmos.network/events/bab-one
15. Generation 1 Generation 2
✓ Sovereignty
✓ Efficient state machines
✓ Customizability
✓ Interoperability of Dapps
✓ Easier to develop
✓ “1 click” deploy
16. Generation 1
✓ Sovereignty
✓ Efficient state machines
✓ Customizability
✓ Interoperability of Dapps
✓ Easier to develop
✓ “1 click” deploy
Generation 2
Generation 3
17. ✓ Ability to connect multiple
separate networks of servers
into a single network of networks.
✓ Ability to scale in terms of
throughput and geography
✓ Ability to tolerate and recover
from failures
ARPANET
ABRIL 1971
Goals for the Internet
18. ✓ Ability to connect multiple
separate networks of servers
blockchains into a single network
of networks blockchains.
✓ Ability to scale in terms of
throughput and geography
✓ Ability to tolerate and recover
from failures
Goals for the Internet of blockchains
35. Formal specification with proofs of safety and liveness:
https://arxiv.org/abs/1807.04938
Tendermint Diagram:
http://bit.ly/2Nfl9Vb
Casper vs Tendermint:
https://bit.ly/2Iu4Uno
Tendermint BFT Learn
More!
36. Tendermint
Core
● First production grade BFT
consensus engine
● Written in Go
● Handles all p2p and
consensus logic
● Can handles 100s of
validators at sub-5 second
block times
39. Scalability
● Vertical scalability: How
much tps can a single
blockchain archive. Has a cap
● Horizontal scalability:
Several separate and
specialized chains that
interact efficiently through a
network
Vertical Horizonta
l
45. Sovereignty
● Maintain sovereignty of each
zone according to their values
and interests
● Each zone has its own
validator set
● Higher security than pure
economic incentives alone
● There is a continuum between
private and public
Sovereignty
50. Proof of Stake Basics
● Use bonded tokens as resource
limiter for determining voting power
● Eliminates wasteful energy
consumption of Proof of Work
● Public permissionless system
● Solve nothing at stake problem
through slashing and unbonding
periods
51. Delegation
● Allow any token holder to be a
staker by delegating to a validator
● Skin in the game
● Automatic reward distribution
● Solve stickiness issues through
features such as instant
redelegation and validator
commitments
52. Multi Token Model
● Specialized staking token for
security
● Similar to ASIC security
● Allow fees to be paid in any
token to massively improve
user experience
53. ✓ Sovereignty
Efficient state machine
Customizability
Interoperability
Easier to develop
“1 click” deploy
Scalability
Fault Tolerance
✓ Sustainable
Proof of Stake
54. Cosmos Proof of Stake Deep Dive:
https://youtu.be/XxZ04w2x4nk
Multi Token Model Paper:
http://bit.ly/2V6YZXI
Efficient Token Distribution Paper:
http://bit.ly/2SReAhO
Proof of Stake Learn More!
59. Sovereignty
● Smart contracting systems
should be used for
contacting, not Dapps
● Most production Dapps don’t
need a turing complete VM
Application Specific
Blockchains
60. Sovereignty
● Reduces attack surface
● Efficiency gains due to lower
computational overhead
● Fine tune to optimize for your
application
Application Specific
Blockchains
74. Sovereignty
● Improvement to Protobuf standard
● Naturally support interfaces instead of OneOf
● Deterministic
● Generate proto files from Go code
Amino
75. Sovereignty
● Self-balancing AVL tree
● All values are stored at leaves
● Immutable with snapshots and
caching
● All operations log(N)
● No hashing keys required
IAVL+
76. Sovereignty
● Cryptography library with built-
in Amino support
● Abstracted multisignature
pubkeys
● BGLS Aggregate Signature
implementations
● BGLS verifier in EVM
Crypto
92. ● EVM client built using the Cosmos
SDK
● Will be fully Web3 compatible
● Can deploy existing Ethereum
dapps / smart contracts
● Can add your own precompiles
● Working with TurboGeth team to
build and optimize
Ethermint 2.0
101. Sovereignty
● Equivalent to Application Layer in Internet
stack
● Different types of packet structures/handling
protocols
● Token Transfers
● Non Fungible Assets
● Data
● Agoric ERTP
Packet Types
106. Practical use cases in (a fully formed) Cosmos
Network. You can take your $BTC from the
#Bitcoin blockchain and move it to a casino
zone to play some poker. ✨Wow!✨ You won
some money! 🤑 Since you don't want your
friends to witness your gambling habits🤑 you
move your BTC...
107. ...to a zero knowledge zone with similar
semantics as #Zcash, sending your "hard"
earned BTC back to yourself over a zero-
knowledge tx. 🍬Sweet! Now you have some
extra 💰 to take your friend up on a bet. You
bet your friend that your #cryptokitty won't
give birth to...
108. ...an orange kitten 🐈 within 6 months. Since
this is a long time scale and $BTC is still
volatile, you decide against using it as the
payout vehicle. You instead choose to use a
stablecoin like $DAI to do the job. So you
send your BTC out of the ZK zone to a
@0xProject zone...
109. ...where you use the DEX to trade your 💱BTC
for DAI. 📨"You've got DAI." Time to place
the bet 🎲 You want it to be trustlessly
arbitrated 🔐 meaning no middleman
allowed! 🙅 For your one-time bet, you opt
for opening up a #smartcontract because it
doesn't make sense...
110. ...to spin up a #blockchain (i.e. zone) for one
bet. So you send your DAI over to an
@ethermint zone from the 0x zone to put
the bet in the smart contract that your friend
already wrote. The smart contract locks 🔒
up both your $DAI, set to expire in 6 months
if!!!
111. your kitty doesn't birth an orange
cryptokitten, in which case, your friend gets
the $DAI. If your kitty does indeed conceive
an orange 🐈 within that timeframe, you
send your 🐈 from the cryptokitty zone to the
smart contract and receive your payout💰
GAME ON ♠️♥️♣️♦️
116. Sovereignty
● Hubs can be thought of as
ISPs in the Internet of
Blockchains
● Minimizes the number of IBC
connections to N rather than
N2
● Act as a secure medium to
prevent chains from double
spending each other
Hubs
Instead of building the Application Layer, it the SDK creates modules to add functionality on top of a BaseCoin, which is a basic blockchain skeleton with Token, governance, staking and other interesting features.
A handler takes a context and a transaction and returns a result. All information necessary for processing a transaction should be available in the context.
Instead of building the Application Layer, it the SDK creates modules to add functionality on top of a BaseCoin, which is a basic blockchain skeleton with Token, governance, staking and other interesting features.
A handler takes a context and a transaction and returns a result. All information necessary for processing a transaction should be available in the context.
In the early beginnings of the internet there were 3 main goals:
connect multiple separate networks of servers
Scale in terms of computational power and geography
tolerate and recover from failures in case several servers from the network failed
If we start thinking what would be the objectives necessary to create an internet of blockchains...
Connect to multiple independent blockchains
Scale in terms of tps and massive adoption
Tolerate failures and malicious actors without halting the network of blockchains
Instead of building the Application Layer, it the SDK creates modules to add functionality on top of a BaseCoin, which is a basic blockchain skeleton with Token, governance, staking and other interesting features.
A handler takes a context and a transaction and returns a result. All information necessary for processing a transaction should be available in the context.
Connect to multiple independent blockchains
Scale in terms of tps and massive adoption
Tolerate failures and malicious actors without halting the network of blockchains
Instead of building the Application Layer, it the SDK creates modules to add functionality on top of a BaseCoin, which is a basic blockchain skeleton with Token, governance, staking and other interesting features.
A handler takes a context and a transaction and returns a result. All information necessary for processing a transaction should be available in the context.
Instead of building the Application Layer, it the SDK creates modules to add functionality on top of a BaseCoin, which is a basic blockchain skeleton with Token, governance, staking and other interesting features.
A handler takes a context and a transaction and returns a result. All information necessary for processing a transaction should be available in the context.
Instead of building the Application Layer, it the SDK creates modules to add functionality on top of a BaseCoin, which is a basic blockchain skeleton with Token, governance, staking and other interesting features.
A handler takes a context and a transaction and returns a result. All information necessary for processing a transaction should be available in the context.
Tendermint is software for securely and consistently replicating an application on many machines. Tendermint Core is an application-agnostic “consensus engine” that can turn any deterministic blackbox application into a distributedly replicated blockchain. Tendermint Core connects to blockchain applications via the Application Blockchain Interface (ABCI)
ABCI: Application BlockChain Interface
ABCI: Application BlockChain Interface
Instead of building the Application Layer, it the SDK creates modules to add functionality on top of a BaseCoin, which is a basic blockchain skeleton with Token, governance, staking and other interesting features.
A handler takes a context and a transaction and returns a result. All information necessary for processing a transaction should be available in the context.
Instead of building the Application Layer, it the SDK creates modules to add functionality on top of a BaseCoin, which is a basic blockchain skeleton with Token, governance, staking and other interesting features.
A handler takes a context and a transaction and returns a result. All information necessary for processing a transaction should be available in the context.
ABCI: Application BlockChain Interface
Este es el rendimiento de la Escalabilidad Vertical de Tendermint y Ethermint
ABCI: Application BlockChain Interface
EVM on Tendermint Core
Chainmint is based on the tendermint consensus inherited from Chain's UTXO and CVM.
EVM on Tendermint Core
Chainmint is based on the tendermint consensus inherited from Chain's UTXO and CVM.
EVM on Tendermint Core
Chainmint is based on the tendermint consensus inherited from Chain's UTXO and CVM.
Ethereum vs ethereum classic
Instead of building the Application Layer, it the SDK creates modules to add functionality on top of a BaseCoin, which is a basic blockchain skeleton with Token, governance, staking and other interesting features.
A handler takes a context and a transaction and returns a result. All information necessary for processing a transaction should be available in the context.
Instead of building the Application Layer, it the SDK creates modules to add functionality on top of a BaseCoin, which is a basic blockchain skeleton with Token, governance, staking and other interesting features.
A handler takes a context and a transaction and returns a result. All information necessary for processing a transaction should be available in the context.
Tendermint is software for securely and consistently replicating an application on many machines. Tendermint Core is an application-agnostic “consensus engine” that can turn any deterministic blackbox application into a distributedly replicated blockchain. Tendermint Core connects to blockchain applications via the Application Blockchain Interface (ABCI)
Neither Bitcoin nor Ethereum have finality guarantees; rather, they have probabilistic finality. high level of confidence that the block is “final”
A peg zone is an account-based blockchain which bridges zones within Cosmos to external chains like Bitcoin or Ethereum
translates finality for probabilistically finalized blockchains by imposing a “finality threshold” at some arbitrary number of blocks to achieve pseudo-finality. Generally, this “translator” zone design can be classified as a 2-way peg (2WP).
IBC packets cannot be efficiently decoded in Ethereum, simply because the EVM isn’t designed to be IBC-compatible.
Serialization formats. Tendermint’s encoding method to serialize objects is go-wire. Ethereum serializes objects using RLP (Recursive Length Prefix).
Signature schemes. Tendermint uses ed25519 whereas Ethereum uses secp256k1.
Data structures. Tendermint stores key-values in IAVL+ trees while Ethereum stores them in Patricia Tries.
Neither Bitcoin nor Ethereum have finality guarantees; rather, they have probabilistic finality. high level of confidence that the block is “final”
A peg zone is an account-based blockchain which bridges zones within Cosmos to external chains like Bitcoin or Ethereum
translates finality for probabilistically finalized blockchains by imposing a “finality threshold” at some arbitrary number of blocks to achieve pseudo-finality. Generally, this “translator” zone design can be classified as a 2-way peg (2WP).
IBC packets cannot be efficiently decoded in Ethereum, simply because the EVM isn’t designed to be IBC-compatible.
Serialization formats. Tendermint’s encoding method to serialize objects is go-wire. Ethereum serializes objects using RLP (Recursive Length Prefix).
Signature schemes. Tendermint uses ed25519 whereas Ethereum uses secp256k1.
Data structures. Tendermint stores key-values in IAVL+ trees while Ethereum stores them in Patricia Tries.
Neither Bitcoin nor Ethereum have finality guarantees; rather, they have probabilistic finality. high level of confidence that the block is “final”
A peg zone is an account-based blockchain which bridges zones within Cosmos to external chains like Bitcoin or Ethereum
translates finality for probabilistically finalized blockchains by imposing a “finality threshold” at some arbitrary number of blocks to achieve pseudo-finality. Generally, this “translator” zone design can be classified as a 2-way peg (2WP).
IBC packets cannot be efficiently decoded in Ethereum, simply because the EVM isn’t designed to be IBC-compatible.
Serialization formats. Tendermint’s encoding method to serialize objects is go-wire. Ethereum serializes objects using RLP (Recursive Length Prefix).
Signature schemes. Tendermint uses ed25519 whereas Ethereum uses secp256k1.
Data structures. Tendermint stores key-values in IAVL+ trees while Ethereum stores them in Patricia Tries.
Instead of building the Application Layer, it the SDK creates modules to add functionality on top of a BaseCoin, which is a basic blockchain skeleton with Token, governance, staking and other interesting features.
A handler takes a context and a transaction and returns a result. All information necessary for processing a transaction should be available in the context.
Instead of building the Application Layer, it the SDK creates modules to add functionality on top of a BaseCoin, which is a basic blockchain skeleton with Token, governance, staking and other interesting features.
A handler takes a context and a transaction and returns a result. All information necessary for processing a transaction should be available in the context.
Instead of building the Application Layer, it the SDK creates modules to add functionality on top of a BaseCoin, which is a basic blockchain skeleton with Token, governance, staking and other interesting features.
A handler takes a context and a transaction and returns a result. All information necessary for processing a transaction should be available in the context.
Ethereum vs ethereum classic
Ethereum vs ethereum classic
Instead of building the Application Layer, it the SDK creates modules to add functionality on top of a BaseCoin, which is a basic blockchain skeleton with Token, governance, staking and other interesting features.
A handler takes a context and a transaction and returns a result. All information necessary for processing a transaction should be available in the context.
Instead of building the Application Layer, it the SDK creates modules to add functionality on top of a BaseCoin, which is a basic blockchain skeleton with Token, governance, staking and other interesting features.
A handler takes a context and a transaction and returns a result. All information necessary for processing a transaction should be available in the context.
Tendermint is software for securely and consistently replicating an application on many machines. Tendermint Core is an application-agnostic “consensus engine” that can turn any deterministic blackbox application into a distributedly replicated blockchain. Tendermint Core connects to blockchain applications via the Application Blockchain Interface (ABCI)
Ethereum vs ethereum classic
Ethereum vs ethereum classic
Ethereum vs ethereum classic
Instead of building the Application Layer, it the SDK creates modules to add functionality on top of a BaseCoin, which is a basic blockchain skeleton with Token, governance, staking and other interesting features.
A handler takes a context and a transaction and returns a result. All information necessary for processing a transaction should be available in the context.
Instead of building the Application Layer, it the SDK creates modules to add functionality on top of a BaseCoin, which is a basic blockchain skeleton with Token, governance, staking and other interesting features.
A handler takes a context and a transaction and returns a result. All information necessary for processing a transaction should be available in the context.
Tendermint is software for securely and consistently replicating an application on many machines. Tendermint Core is an application-agnostic “consensus engine” that can turn any deterministic blackbox application into a distributedly replicated blockchain. Tendermint Core connects to blockchain applications via the Application Blockchain Interface (ABCI)
Instead of building the Application Layer, it the SDK creates modules to add functionality on top of a BaseCoin, which is a basic blockchain skeleton with Token, governance, staking and other interesting features.
A handler takes a context and a transaction and returns a result. All information necessary for processing a transaction should be available in the context.
Instead of building the Application Layer, it the SDK creates modules to add functionality on top of a BaseCoin, which is a basic blockchain skeleton with Token, governance, staking and other interesting features.
A handler takes a context and a transaction and returns a result. All information necessary for processing a transaction should be available in the context.
Tendermint is software for securely and consistently replicating an application on many machines. Tendermint Core is an application-agnostic “consensus engine” that can turn any deterministic blackbox application into a distributedly replicated blockchain. Tendermint Core connects to blockchain applications via the Application Blockchain Interface (ABCI)
Instead of building the Application Layer, it the SDK creates modules to add functionality on top of a BaseCoin, which is a basic blockchain skeleton with Token, governance, staking and other interesting features.
A handler takes a context and a transaction and returns a result. All information necessary for processing a transaction should be available in the context.
Instead of building the Application Layer, it the SDK creates modules to add functionality on top of a BaseCoin, which is a basic blockchain skeleton with Token, governance, staking and other interesting features.
A handler takes a context and a transaction and returns a result. All information necessary for processing a transaction should be available in the context.
Tendermint is software for securely and consistently replicating an application on many machines. Tendermint Core is an application-agnostic “consensus engine” that can turn any deterministic blackbox application into a distributedly replicated blockchain. Tendermint Core connects to blockchain applications via the Application Blockchain Interface (ABCI)
Ethereum vs ethereum classic
Ethereum vs ethereum classic
Instead of building the Application Layer, it the SDK creates modules to add functionality on top of a BaseCoin, which is a basic blockchain skeleton with Token, governance, staking and other interesting features.
A handler takes a context and a transaction and returns a result. All information necessary for processing a transaction should be available in the context.
Instead of building the Application Layer, it the SDK creates modules to add functionality on top of a BaseCoin, which is a basic blockchain skeleton with Token, governance, staking and other interesting features.
A handler takes a context and a transaction and returns a result. All information necessary for processing a transaction should be available in the context.
Instead of building the Application Layer, it the SDK creates modules to add functionality on top of a BaseCoin, which is a basic blockchain skeleton with Token, governance, staking and other interesting features.
A handler takes a context and a transaction and returns a result. All information necessary for processing a transaction should be available in the context.
Tendermint is software for securely and consistently replicating an application on many machines. Tendermint Core is an application-agnostic “consensus engine” that can turn any deterministic blackbox application into a distributedly replicated blockchain. Tendermint Core connects to blockchain applications via the Application Blockchain Interface (ABCI)
Ethereum vs ethereum classic
Ethereum vs ethereum classic
Cosmos Hub. You move Photons via IBC to the peg zone. The peg zone receives an incoming IBC packet: a message containing a transaction for sending Photons.
Signers monitoring the peg zone then sign those IBC transactions, effectively converting the signature scheme to Ethereum-understandable private keys, in secp256k1 format. Your transaction has just been signed on the peg zone.
Relayers watching the peg zone are waiting until they see that +2/3 signers have signed the transaction before batching your signed transaction into a list of all the other transactions sent through IBC. They then relay the signature-appended list to the EVM where the Ethereum smart contract lives.
The smart contract checks that the list of transactions are valid. For your Photons, the smart contract needs to generate an ERC20 version of it. The smart contract then sends the ERC20 Photons to your destination address in Ethereum.
Converting your ERC20 Photons to ETH is as simple as using an ERC20 decentralized exchange (DEX) protocol like 0x.
Instead of building the Application Layer, it the SDK creates modules to add functionality on top of a BaseCoin, which is a basic blockchain skeleton with Token, governance, staking and other interesting features.
A handler takes a context and a transaction and returns a result. All information necessary for processing a transaction should be available in the context.
Instead of building the Application Layer, it the SDK creates modules to add functionality on top of a BaseCoin, which is a basic blockchain skeleton with Token, governance, staking and other interesting features.
A handler takes a context and a transaction and returns a result. All information necessary for processing a transaction should be available in the context.
Tendermint is software for securely and consistently replicating an application on many machines. Tendermint Core is an application-agnostic “consensus engine” that can turn any deterministic blackbox application into a distributedly replicated blockchain. Tendermint Core connects to blockchain applications via the Application Blockchain Interface (ABCI)
Instead of building the Application Layer, it the SDK creates modules to add functionality on top of a BaseCoin, which is a basic blockchain skeleton with Token, governance, staking and other interesting features.
A handler takes a context and a transaction and returns a result. All information necessary for processing a transaction should be available in the context.
Instead of building the Application Layer, it the SDK creates modules to add functionality on top of a BaseCoin, which is a basic blockchain skeleton with Token, governance, staking and other interesting features.
A handler takes a context and a transaction and returns a result. All information necessary for processing a transaction should be available in the context.
Tendermint is software for securely and consistently replicating an application on many machines. Tendermint Core is an application-agnostic “consensus engine” that can turn any deterministic blackbox application into a distributedly replicated blockchain. Tendermint Core connects to blockchain applications via the Application Blockchain Interface (ABCI)
Ethereum vs ethereum classic
Tendermint is software for securely and consistently replicating an application on many machines. Tendermint Core is an application-agnostic “consensus engine” that can turn any deterministic blackbox application into a distributedly replicated blockchain. Tendermint Core connects to blockchain applications via the Application Blockchain Interface (ABCI)
Ethereum vs ethereum classic
Instead of building the Application Layer, it the SDK creates modules to add functionality on top of a BaseCoin, which is a basic blockchain skeleton with Token, governance, staking and other interesting features.
A handler takes a context and a transaction and returns a result. All information necessary for processing a transaction should be available in the context.