Portia Burton, a full-stack developer, discusses blockchain technology, focusing on its decentralized nature and the relationship between Bitcoin and Ethereum. She explains key concepts such as smart contracts and different blockchain types, as well as how to create custom blockchains. The document also provides resources for developers looking to get involved in blockchain application development.
Presenter Portia Burton introduces herself and her interest in blockchain and JavaScript.
Overview of blockchain technology and Bitcoin as a cryptocurrency, highlighting transactions and decentralized systems.
Introduction to various cryptocurrencies, focusing on Ethereum, its properties, smart contracts, and applications.
Instructions on how to create a custom blockchain, including genesis parameters and configuration.
Summary of blockchain technology, calls to action, and references for further learning and tools.
Discussion of blockchain technology challenges, including smart contract bugs and resources for developers. Summary of blockchain technology, calls to action, and references for further learning and tools.
Who am I? Myname is Portia Burton I am a full-stack developer at the Atlantic magazine Became interested in blockchains earlier this year Not a cryptographic expert
What is aBlockchain? A blockchain is a cross between a decentralized data store and bittorrent. It is similar to a database but there isn’t a database administrator.
5.
What is Bitcoin? Typeof Cryptocurrency Creation based on paper by Satoshi Nakamoto titled “Bitcoin: Peer-to-Peer Electronic Cash System” Peer-to-peer which means transactions happen without a third party. Alice can send money directly to Bob
6.
Bitcoin vs. Blockchain Bitcoinis part of a blockchain Blockchain is a digital ledger of transactions Each transaction is cryptographically signed Blockchains are trustless The bitcoin blockchain is open to everyone
Introduction to Ethereum Ethereumis a programmable blockchain, every new blockchain spawned from Ethereum has the same properties as Ethereum Ethereum Virtual Machine is the low level machine language Is Turing complete, unlike bitcoin which does not have looping capabilities It also is aware of multiple states, unlike bitcoin which is only aware of two states (spent and unspent)
16.
Different Consensus Mechanisms Proofof Work: Uses the Etash algorithm. The Etash algorithm is based on Bitcoin’s the Dagger-Hashimoto algorithm. ⛏⛓ Proof of Stake: Proof of Stake is another way of validating. It calculates the weight of the node, being proportional to its computational resources. It’s less resource intensive than Proof of Work.
What is aSmart Contract? Stored on the blockchain and executed by code Many smart contracts are written in Solidity (syntax is similar to JavaScript) Powered by gas which can be computationally mined or purchased in an exchange People and machines can interact with it
19.
Transaction: Signed datapackage that stores a message to be sent from an externally owned account GAS: the name for the execution fee that senders of transactions need to pay for operations on Ethereum blockchain VALUE (field): The amount of wei to transfer from sender to the recipient STARTGAS (value): Representing the maximum number of computational steps the transaction execution is allowed to take GASPRICE (value): Representing the fee the sender is willing to pay for gas
20.
Applications of EthereumBlockchain of Smart Contracts Self-executing legal contracts Create “American Idol” where people can vote using generated tokens Company boards can be ran virtually Dropbox business model create and sell encrypted storage space Predicting financial futures based on an oracle
Different Blockchains Public blockchain:It is the official Ethereum chain that everyone can read and interact with Testnet blockchain: The official test chain of Ethereum. Good way to test contracts without wasting real ether Private blockchain: This is a blockchain that you can create yourself. This blockchain can be freely accessed by others, or you can add addresses by invite only
24.
How to builda custom blockchain? 1. Create a Genesis file 2. Init your blockchain locally on the command line* 3. Start your chain again, this time with parameters (not in the documentation) *Be sure to run “init” each time
25.
Genesis File Nonce: arandom or pseudo-random number that can only be used once gasLimit: is the highest amount you are willing to pay for a computation Alloc: how much money that you allocate to your blockchain { "nonce": "0x0000000000000042", "timestamp": "0x0", "parentHash": "0x0000000000000000000000000000000000000000000000000000 000000000000", "extraData": "0x0", "gasLimit": "0x8000000", "difficulty": "0x400", "mixhash": "0x0000000000000000000000000000000000000000000000000000 000000000000", "coinbase": "0x3333333333333333333333333333333333333333", "alloc": { } } CustomGenesis.json
26.
Private Blockchain Parameters Usethese parameters in the cli when creating a custom blockchain Nodiscover: Other people will not discover your blockchain RPC: JS interface for your node Networkid: Create a custom networkid inter geth --identity "Testing" --rpc --rpcport "8080" -- rpccorsdomain "*" --datadir "C:chainsTestChain1" -- port "30303" --nodiscover --rpcapi "db,eth,net,web3" --networkid 1999 console
Blockchain Technology GrowingPains Forces different parties (or contractors) to be savy about code Still very new platform and technology
30.
Solidity Contract Bugs Transaction-OrderingBug (TOD): Smart contract assumes a particular state of a contract that doesn’t exist Timestamp Dependence Bug: Asynchronous network is disconnected from a synchronized global clock. Some contracts assume that network is on global contract Unchecked Send: Most common exploit. Attacker elicits unexpected behavior from the contract by calling if from a carefully constructed call-stack
Enough About Me:How can you get started today? Solidity Tutorial: https://solidity.readthedocs.io/en/develop/ Bootstrap Meteor App: https://github.com/SilentCicero/meteor-dapp-boilerplate Example Dapps: http://ethereum.stackexchange.com/questions/2940/where-can-i-find-some-solidity-smart-contract-source-code- examples Command Line Interface of Interacting with the Ethereum Network: https://www.ethereum.org/cli Meteor: https://www.meteor.com/
33.
Different Ethereum Frameworks Theseframeworks provide developers the tools need to create, test, and deploy smart contracts using Ethereum Truffle: https://github.com/ConsenSys/truffle The Dao: https://github.com/slockit/DAO Embark: https://github.com/iurimatias/embark-framework