COURSE OUTLINE
Day 1 Blockchain Decision Process
Module 1: Blockchain Decision Overview
The decision to use blockchain technology is multifaceted. There are discussions of Platforms, Hosting and Mining. What sort of architectural and resource capabilities and constraints should be considered in making the early decisions that will have dramatic impact on the success of the project.
- Is blockchain technology the right solution
- Who are the participants in a blockchain project?
- What type of blockchain should be used
- What is the environment that will host the blockchain?
- What additional technologies are important to success
- What programming languages are available to various solutions
- What security considerations are there
Module 2: Blockchain Platforms
There are many existing blockchain platforms. Understanding each as well as the various pros and cons allows for selecting the most advantageous platform for each implementation of a new project. This module will cover the major platforms.
Public Platforms
- Bitcoin
- Ethereum
- Multichain
- Open chain
- Quorum
- Chain
- BigChainDB
Commercial Platforms
- Hyperledger (Fabric/Iroha)
- Hydra Chain
- Chain Core
- IOTA
- Corda
- Gospel
- Tezos
- BlockOne / EOS.IO
- Symbiont / Assembly
- Tezos
Module 3: Hosting Decisions
Each blockchain platform has specific advantages and weaknesses. Understanding how each is designed allows for a strategic implementation for each project.
- Private / Public
- Permissioned / Permissionless
- Cloud
- IBM Blue Mix
- AWS
- Oracle
- Microsoft
- Gospel
- Distributed Networks
- Developing your own network of nodes
- Transaction Costs
- Interoperability
Module 4: Associated Technologies
There are a number of associated technologies and blockchain architecture that provide enhanced features and functions. This segment is a discussion of a few of them and how they impact the platform decisions.
- On-chain vs. Off-chain
- Lightning Network
- CoCo Framework
- Smart Contracts
Module 5: Development Languages
Development of blockchains is never done in a vacuum. Understanding the strengths of each development language and where it is deployed allows for alignment of existing skill sets with the internal or preferred development languages for blockchain implementations.
- C++, C : Bitcoin, Ethereum, Bitcoin Cash, Ripple, Litecoin
- JavaScript: Ethereum, Bitcoin Cash, Ripple, IOTA, Litecoin, NEM, Dash
- Java: Bitcoin Cash, IOTA, Litecoin, NEM, EOS
- Python: Bitcoin, Ethereum, Ripple, Litecoin, EOS
- Go: Hyperledger, Ethereum, IOTA,
- Solidity: Eithereum (DL)
- Kotlin: Corda (DL)
- Any server-side programming language for BUILD blockchain from Scratch (DL)
Module 6: Security and Implementation Goals
Implementation of any enterprise project is always challenging, and pitfalls seem to be everywhere. Here are a few Security and Implementation issues that should be considered with any large-scale development.
- Government Regulations
- Legal Issues
- Security Loopholes
- Defining project goals
- Metrics to determine success/failure
- Hurdles to Blockchain Adoption
- 10 secrets about blockchain
Module 7: Risk Management
A discussion on the various Risk Management aspects of technology selection.
- Enterprise Risk
- Operational Risk
- Geopolitical Risk
- Market Risk
- Reputational Risk
- Systematic Risk
- Compliance
- Third Party Risk Management
Day 2 Blockchain Architecture
Module 1: Blockchain Architecture Overview
We need to think along the following lines: First, the problem we’re solving, secondly, the people / entities / stakeholders that we’re solving the problem for, thirdly, what devices would they use for the envisioned blockchain, fourth, what blockchain architectural options do we have.
Thus, our thoughts of blockchain architecture would form the following thread: problem, stakeholders, blockchain type and platform, nodes, blocks, transactions and security.
In addition, be aware of blockchain “protocols”. Data storage such as Factom, cryptocurrency such as Bitcoin, Smart Contracts such as Ethereum.
Module 2: Business and Technical Components of Blockchain Architecture
When we talk about architecture we need to keep two things in mind, that is, business architecture as well as technical architecture. Many times, when we refer to architecture, we simply mean technical architecture. However, the success of a project depends on both of them.
Section 1 Business Components or Considerations of a Blockchain
- What Problem are we solving (problem definition) and for whom (i.e. enterprise project vs. entrepreneurial project)
- Who are key Stakeholders (Participants) and scale
- Devices for the blockchain usage
- What Type of Blockchain to build
Section 2 Technical Components of a Blockchain
- Ledger
- Smart Contracts
- Peer Network (Nodes)
- Membership
- Events
- System Management
- System Integration
Module 3: Blockchain Architectural Options
From arc hitectual point of view, we need to answer the following question: would the identified business problem that leverages the blockchain technology require multiple data sources or a single blockchain data? before we start to design a blockchain architecture.
- Singular Architecture
- Hybrid Architecture
Module 4: The Two Vital and Inseparable Parts of Blockchain
The two vital parts of a blockchain is to construct a valid blockchain and use it to fulfill business or other types of needs.
(A) Construction of a blockchain
- “Standard” Model of Block
High volume transaction blockchains and many other blockchains such as Bitcoin use this model. This model pack several or many transactions into one block with the structure of [Header] and [Body].
For a simple model, one block contains one transaction. It is much easier to build and it could be more efficient.
- Discussion: is there any other block structure differ from the above two models?
- Transaction
- Consensus
- Provenance
- Immutability
- Finality
(B) Use of a blockchain / Fulfill Business or Other Types of Needs
- Smart Contracts
- Chaincode
- Their Equivalent for Corda and Multichain
- Components for Built-from-Scratch
Day 3 The Architecture of a PoC Private (permissioned) Blockchain
Module 1: High-level Description of a PoC Private (permissioned) Blockchain
Including the following:
- Analyze key Requirements
- Translate key Requirements into functional Milestones
- Translate Stakeholders / Participants into Nodes of a blockchain network
- Define each node’s Role
- Decision on what blockchain platform to use or to build it from scratch
- Blockchain Development Resources including programming language and programmers
- Blockchain Development
- Blockchain Deployment / Hosting
- Blockchain Support
Module 2: Identity, Privacy and Security
As any other software platform, identity management, data privacy and protection and information security are of paramount importance.
- Identity Management
- Privacy Protection
- Security
Module 3: Blockchain Structure and Distributed Peer-to-Peer Network
Like the construction of buildings, for blockchain we need to have structures. For it to function as a network it needs to have nodes. Simply put, blocks make the structure, transactions are the “meat and potato” of blocks, the linked blocks make a chain (a ledger), of which each node has an identical copy, thus, ensuring data integrity and immutability.
- Transaction
- Block
- Data Privileges
Read, Write: full read or partial read? Full write or partial write?
- Node Creation and Management
Master Node
Module 4: Cryptography and Blockchain Algorithms
A key differentiator of blockchain from traditional databases is that data stored on a blockchain is tamper-resistant, that is, it’s extremely difficult to hack into a blockchain to tamper its data. And the reason is that blockchain technology uses cryptography to ensure data and relationship.
- Symmetric encryption/decryption
- Asymmetric encryption/decryption
(i.e. public key and private key pair)
- ECDSA (The Elliptic Curve Digital Signature Algorithm)
- Hash
- Merkle tree
- Their Application for Block Construction
Independent Module: Hybrid Blockchain
This section would be light. A hybrid blockchain is mostly about having the permissioned part for blockchain construction, that is, control the data input into the blockchain, however, use the open model for sharing/dissemination of data / information gathered and accumulated on the blockchain. This type of blockchain would be most fitting for government, state and local agencies.
The mechanism for its blockchain architectural implementation would be similar to other types of blockchains, however, the difference lies in its technical workflow. Since technical mechanisms for blockchain architecture have been presented in the above sections they would not be repeated for this section. What we need to be mindful about are such blockchain size and future integration with relevant information resources.