summaryrefslogtreecommitdiff
path: root/day1/diving-deep-into-blockchain.txt
diff options
context:
space:
mode:
authorPhil Burton <phil@d3r.com>2019-02-25 13:37:59 +0000
committerPhil Burton <phil@d3r.com>2019-02-25 13:37:59 +0000
commit3431e667a5c6475043ebfd97b43a3fdc4b078596 (patch)
treecd9eb1249e42de8ee1c7e99fd83cb7f091637b7c /day1/diving-deep-into-blockchain.txt
parent4e8368f4d847e5c1352302fc53658dfab2c72a9b (diff)
Refactor and clean up notesHEADmaster
Diffstat (limited to 'day1/diving-deep-into-blockchain.txt')
-rw-r--r--day1/diving-deep-into-blockchain.txt100
1 files changed, 100 insertions, 0 deletions
diff --git a/day1/diving-deep-into-blockchain.txt b/day1/diving-deep-into-blockchain.txt
new file mode 100644
index 0000000..8fe9218
--- /dev/null
+++ b/day1/diving-deep-into-blockchain.txt
@@ -0,0 +1,100 @@
+Block chain
+
+Tomasz Kowalczyk
+https://joind.in/event/php-uk-conference-2019/dive-deep-into-blockchain
+
+- Block chain is a database
+- Bespoke data structure
+
+"Not crpyto"
+
+General Purpose block chain:
+
+Why?
+- Data in block is immutable
+- Don't edit or remove, you append
+- traceability (Auditing / logging)
+- Verifiability (Data must be fully valid)
+- reproducibility
+- decentralisation
+- Trust-less (Removes need for trust)
+- transparency
+
+How?
+- What type?
+ - public - will be hacked
+ - shared - shared ledger
+ - private
+- Cryptography
+ - pub/rivate keys
+ - sign information
+ - verifablity
+ - Elliptic Curves
+ - openssl ecparam -list_curves
+ - Addressing
+ - can shorten public keys massively
+ - Hash algorithm
+ - Integrity
+ - 2x sha256 (sha256(sha256($data)))
+ - 4B version, 32B hash of last Block, 32B hash of data block, 4B timestamp, 4B difficulty, 4B nonce
+ - Merkle tree - binary hash tree
+ - Merkle path - list of hashes through the tree
+ - Genesis block - First block in the chain
+ - Special as it's first
+ - Prevents exploitation by being hardcoded
+
+- consensus
+ - Confidence
+ - chain forking needs resolution
+ - bitcoin users longest chain wins
+ - proof of work / proof of stake
+ - difficulty is no of zeros that need to be at the start of the hash
+ - others (proof of burn, proof of time, proof of ....)
+
+
+- Smart contracts
+ - Programs that are included in the chain
+ - e.g. A loan paid by the chain
+
+- Lighting network (drawback off blockhain is it focuses on integrity not perf)
+ - Off chain transactions with on-chain settlement
+
+- Not all blockchains are chains
+ - IOTA Tangle
+
+- Challenges
+ - Fault tolerance
+ - You lose control of public/shared blockchains
+ - Now way to enforce software updates
+ - Conflict resolution
+ - Integration with current systems
+ - Security
+ - Cryptography is first and last line of defence
+
+- Not perfect for:
+ - scalability
+ - performance
+ - throughput
+
+- Incentives
+ - Mining in currencies
+ - Power for money
+- Privacy
+ - Protect data
+
+- Hard forks
+- 51% attacks
+
+- Right solution for the right kind of problem
+
+- Event sourcing on steroids
+
+QUESTIONS
+- Any php recommendations?
+ - No.
+- security?
+ - Store data not values somewhere else
+ - Encrypt
+- Why private blocks?
+ - Can give public list of hashes for verification
+ - keep data private