Key Technical Concepts in Building on the Blockchain
A Knowledge Sharing Session at
Presenter: Chimezie Chuta, Lead Dev Blockchain Nigeria User Group
A Distributed Digital Record of Transactions, Secure, Immutable, Append-only, Decentralized, Time-stamped, Hashed and Transparent.
Demo: http://www.blockchainnigeria.group/blog/explaining-bitcoin-hash-functions-newbie
An Address, A Public Key, A Private Key (a hash of the address data.)
WHAT'S A HASH FUNCTION?
In the abstract, a hash function is a mathematical process that takes input data of any size, performs an operation on it, and returns output data of a fixed size.
Core
Demo: http://www.blockchainnigeria.group/blog/explaining-bitcoin-hash-functions-newbie
Core
Demo: http://www.blockchainnigeria.group/blog/explaining-bitcoin-hash-functions-newbie
Core
Demo: http://www.blockchainnigeria.group/blog/explaining-bitcoin-hash-functions-newbie
Core
Core
TWO-WAY
ONE-WAY
Core
Hashing is used to validate the integrity of the content by detecting all modifications and thereafter changes to a hash output. Encryption encodes data for the primary purpose of maintaining data confidentiality and security. It requires a private key to reverse encrypted text to plain text.
Core
TRANSACTIONS ARE HASHED AND STORED IN BLOCKS
Public/ Private key pairs
COMPONENTS
COMPONENTS
Data is Hashed
Data is stored in Blocks
Transactions are hashed together to make transaction root (MERKLE)
Transaction Root prove the existence of a transaction. (MERKLE ROOT)
COMPONENTS
Blocks are time-Stamped
Nonce
Previous block transactions
Merkle Root Transactions
(Merkle Tree is used to cheaply prove the existence of a piece of data without validating the entire data set)
COMPONENTS
COMPONENTS
Bitcoin TX contain:
Transaction Input
Transaction Output
Transaction Amount/ Value
"Scripts"
Ethereum TX Additionally contains Smart Contract
DATA LAYER
Arrays, Triggers, Functions, Variables, "If" statements, Constructs etc.
DATA LAYER
DATA LAYER
Also Known as Protocol Layer
A trustless Peer-to-Peer "Cash System" to prevent double spend!
Decentralized
Censorship proof
Control Resistant
Provides Security and immutability
Block chaining algorithm
Proof -of-Work
Proof-of -Stake
Others.....
Satoshi in Bitcoin, set the rules for "miners".
They need to invest some work (Processing Power) of their computers to qualify for this task.
They have to find a "hash" – a product of a cryptographic function – that connects the new block with its predecessor.
This is called the Proof-of-Work. In Bitcoin, it is based on the SHA 256 Hash algorithm.
Hash, Blocks, Blockchain, Distributed, Tokens, Coinbase Transactions
A true Blockchain has to be Decentralized & Distributed.
Public, Private, Consortium Blockchains exist.
BUILDING BLOCKCHAIN APPLICATIONS
BITCOIN NETWORK
ETHEREUM NETWORK (EVM)
RIPPLE
YOUR OWN BLOCKCHAIN PROTOCOL
BUILDING BLOCKCHAIN APPLICATIONS
BUILDING BITCOIN APPLICATIONS
Bitcoin Application Development requires that the developer should possess
some of the following coding skills:
C++, Java, Objective-C, Python,
Javascript, Java, GO and Ruby
https://github.com/jashmenn/bitcoin-reading-list
BUILDING BITCOIN APPLICATIONS
Build apps that issue and verify blockchain-based certificates for academic credentials, professional certifications, workforce development, and civic records.
BUILDING ETHEREUM APPLICATIONS
For Most Developers, learning to use a new platform, language, or framework will be a familiar task repeated dozens of times during their career. But learning to develop for a completely different paradigm is another ball game entirely.
The decentralised consensus network, the blockchain, and its most well known implementation ‘bitcoin’ are not well understood even amongst the tech community and the subtleties of how this technology is fundamentally different from what we have used before is certainly lost on most of the general public.
BUILDING ETHEREUM APPLICATIONS
The Ethereum Virtual Machine is the primary innovation of the Ethereum project. This is a virtual machine designed to be run by all participants in a peer to peer network, it can read and write to a blockchain both executable code and data, Verify digital signatures, and is able to run code in a quasi-Turing complete manner. It will only execute code when it receives a message verified by a digital signature, and the information stored on the blockchain tells it is appropriate to do so.
Ethereum Virtual Machine
BUILDING ETHEREUM APPLICATIONS
https://ethereum.org/
DAPPs, DAOs
BUILDING ETHEREUM APPLICATIONS
Option 1: Alethzero, Mist and Mix.
Testrpc is a blockchain simulator.
It is easy to install via:
npm install -g ethereumjs-testrpc
BUILDING ETHEREUM APPLICATIONS
Solidity
Serpent
BUILDING ETHEREUM APPLICATIONS
Option 2: Truffle or Embark
After contracts are written in solidity, they are then compiled into a script
(bytecode) for the blockchain.
BUILDING ETHEREUM APPLICATIONS
The Web3 Javascript Ðapp API library provides access to the blockchain
from Javascript.
Web3 Javascript Ðapp API library
BUILDING ETHEREUM APPLICATIONS
Browser Based IDEs
The Solidity real-time compiler (https://remix.ethereum.org)
Visit this site to read documentation on how to use Remix IDE.
https://remix.readthedocs.io/en/latest/
You can find a comprehensive Ethereum reading list from this link:
https://github.com/Scanate/EthList
Here is also a Blockchain/ Crypto reading list:
http://startupmanagement.org/2017/06/06/the-ultimate-reading-list-forblockchain-token-and-cryptocurrency-sources/
Questions?
Get My Book!
http://blockchainnigeria.group/pay
https://web.facebook.com/chimezie.chuta
https://twitter.com/mezie16
https://www.linkedin.com/in/chimeziechuta
https://slides.com/chuta
Coordinator: Blockchain Nigeria User Group
http://blockchainnigeria.group
Founder: StartUPBits.fund | Ayori.io | fragcom.com