general blockchain fundamentals: starting notes for a new online course
This commit is contained in:
parent
fbe4cbb426
commit
614939ba56
69
berkley-decal-spring-2020/lec/1.md
Normal file
69
berkley-decal-spring-2020/lec/1.md
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
# Blockchain fundamentals
|
||||||
|
|
||||||
|
data within the chain is _immutable/tamper evident_
|
||||||
|
|
||||||
|
Block chain is also a distrubuted ledger system where everyone has a copy of a shared database.
|
||||||
|
|
||||||
|
|
||||||
|
## Bank Model v Decentralized Model
|
||||||
|
|
||||||
|
### Bank
|
||||||
|
|
||||||
|
* Identity management: Accounts basically
|
||||||
|
|
||||||
|
* Services: Transaction service
|
||||||
|
|
||||||
|
* Record Management: Transaction history
|
||||||
|
|
||||||
|
* Trust: assigned entity to trust in v a consensus protocol
|
||||||
|
|
||||||
|
|
||||||
|
## Identity
|
||||||
|
|
||||||
|
Private/Public key pairs must be gen'd to properly communicate
|
||||||
|
|
||||||
|
## Transactions
|
||||||
|
|
||||||
|
> When is a transaction valid
|
||||||
|
|
||||||
|
1. Signature
|
||||||
|
2. available funds
|
||||||
|
3. No other transactions are using the funds
|
||||||
|
|
||||||
|
Say an account has 10$ and tries sending 10$ to 2 other accounts at the same time. We need to make sure we can't send that money twice, only once or none at all.
|
||||||
|
|
||||||
|
Bank Model: transactions happen sequentially so the above scenario doesn't ever happen as long as the central agent atomizes each transaction; that way they happen sequentially.
|
||||||
|
|
||||||
|
Keeping track of unspent money: **UTXO Model**
|
||||||
|
|
||||||
|
A UTXO is basically like a piggy bank within someones account but the money can only be spent all at once.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
```
|
||||||
|
Gloria has: { 5 2 1 }
|
||||||
|
Brian has: { 2 4 }
|
||||||
|
```
|
||||||
|
If Gloria wanted to send 4 coins to Brian she would have to use the utxo of 5 and send 4 coins to Brian and 1 to herself.
|
||||||
|
In this way we spend all the money in that UTXO.
|
||||||
|
|
||||||
|
|
||||||
|
The motivation behind this method is that its very easy to code without much hassle.
|
||||||
|
|
||||||
|
Once we have a set of transactions that we've done we put them into a block(to avoid spamming transaction data onto the network).
|
||||||
|
We then just periodically put this onto the block chain.
|
||||||
|
|
||||||
|
## Persistence
|
||||||
|
|
||||||
|
Instead of one database hosted by one person we actually let _everyone_ on the network store a copy of the block chain.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## Proof of Work
|
||||||
|
|
||||||
|
* Using consensus
|
||||||
|
|
||||||
|
People propse transactions/blocks and the rest vote on whether or not they will add those transactions to their copies of the block chain.
|
||||||
|
|
||||||
|
Everyone then looks at the transactions and makes sure that they are valid.
|
||||||
|
This way we can avoid double spending.
|
||||||
|
The issue is that if they
|
Loading…
Reference in New Issue
Block a user