Skip to content

An explorable explanation walking through the vulnerabilities of centralized systems and what properties we want our decentralized systems to have

License

Notifications You must be signed in to change notification settings

gqln/why_decentralize

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

75 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sandbox 0: Hub with two spokes: Paypal node connected to node Bob. Drag a line from Reader to Paypal to connect it Reader has 50 💵. When the line is drawn to paypal it turns into $50 Above both Reader and Bob are their balances as represented in Paypal’s ledger In the sidebar, we have Paypal’s ledger with Reader: $50, Bob: $0 One button for Reader sending $5 to Bob If Reader runs out of money, Bob will send a transaction of $50 to Reader When Reader sends money to Bob, it’s represented as a message that travels along a link to Paypal. The Paypal node flashes green, and updates it’s ledger (as well as the balance numbers above Reader and Bob)

Text 0: In the real world there are more than 2 users. Paypal looks a bit more like this:

Sandbox 1:

  • Hub and Spoke: Paypal Node connected to 5 - 15 user nodes. Our reader watches as the nodes send messages to the Paypal node trying to spend money. The Paypal node updates it’s ledger (Subtracting money from sender, adding money to the receiver).
    Timing: one random node sends money to another random node every 0.5s User still has a button to send $5 to a random user

Text 1 This is how centralized payment systems work. They’re super efficient and simple. (Our implementation of this Paypal operator is under 200 lines of code!) Having a single powerful server means that you can handle millions of transactions per second. This system is very fast and makes having many users easy. BUT, not everyone can use these systems.

Sandbox 2 - Try to draw a line connecting a User from another country to Paypal, Paypal rejects them.

Text 2: Even users already connected could be censored. What if Paypal decides they don't want like people with hats anymore.

Sandbox 3 - Reader’s transactions gets censored by Paypal

Text 3: Also, since Paypal is the only entity with control of everyone's balances, they can

Sandbox 4 - Have a button “Mint $1,000” that will increase Paypal’s balance in their ledger

Text 4 What if we could create an open financial system that doesn’t exclude or censor people, or allow the minting of arbitrary amounts of money?

  • Anyone should be able to join the network.
  • The network should be censorship-resistant.
  • We should have more than just one entity in charge of the ledger of everyone’s balance to prevent minting

Here is a basic solution: what if everyone stores the entire ledger of everyone’s money and every time they receive or want to send a transaction, they notify everybody nearby?

Sandbox 5: P2P Paypal visualization

Text 5: Let’s see if it passes the tests: Anyone should be able to join the network:

Sandbox 6: Have a paypal node in a network of nodes in country A. draw a line to paypal, censored. Draw a line to another node, you’re connected!

Text 7: 2. It should be censorship resistant

Sandbox 7: Reader controls a node connected to 3 node, 1 of which is Paypal. Node sends transaction, paypal censors it, but the other nodes accept it.

Text 8: 3. We should have more than just one entity in charge of the ledger of everyone’s balance to prevent minting

Sandbox 8: Button for paypal to mint themselves money, only updates their own ledger. Everyone else’s ledge has Paypal: $0 Paypal spends $1,000, all other nodes reject the transaction.

Check out Cryptoeconomics.study to learn more!

About

An explorable explanation walking through the vulnerabilities of centralized systems and what properties we want our decentralized systems to have

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 95.9%
  • CSS 2.2%
  • HTML 1.9%