Blockchain
Simple definitions
-
Blockchain
[Blockchain is] a form of “trustless trust”
taken from this Eli5
-
Utility token (coin)
A digital token of cryptocurrency that is issued in order to fund development of the cryptocurrency and that can be later used to purchase a good or service offered by the issuer of the cryptocurrency
from Merriam-Webster
- Consensus
-
Consensus methods
TODO: IMPROVE!
- Proof of work: Miners earn rewards by using a lot of computational power to add new blocks to the blockchain.
- Proof of stake: Members with largest stakes vote on new blocks. Trust based on stake. No incentive to let fake blocks in.
-
Mining: What is it?
Reply: Finding a nonce which creates a new block with a hash which is smaller than a block with 17 zeros.
> The **SHA-256 hash algorithm** generates a **64-digit** hexadecimal hash value. The current Bitcoin blockchain requirement is to find a **nonce** that creates a block-hash with **17 leading zeros**. Example of a block (Block 720906): https://www.blockchain.com/btc/block/00000000000000000007512e9a3b53c984484b68e09601e659c417a70e30bae8 taken from [here](http://blog.geveo.com/Blockchain-Mining-Difficulty) - Blockchain: Why is it called a chain? - hash of previous block is inside current block.
Crypto Currencies Business Ideas
How Crypto Tokens Will Enable the Disruption of Businesses like Uber and Airbnb
The idea of this article is that
DApp (Decentralized application)
A Decentralized application (or dApp in short) is an application where its business logic runs on blockchain technology - or more generally on a distributed computing system.
User interactions are handled via so-called smart contracts which run on a blockchain. Smart contracts which define the control-flow of your app are written into the blockchain and visible to everyone. Hereby it is assured that everyone adheres to the same rules. You cannot secretly change how the functions behave.
Writing a dApp on the Ethereum blockchain
Program flow
When a user interacts with your app’s UI (e.g. presses a button), the frontend code (e.g. a React App) calls the functions defined in the smart contract which write changes into the blockchain.
The UI cannot only call actions on the smart contract, your UI can also be notified of changes happening. To this end, you can setup listeners for certain events which get triggered in the smart contract. If such an event gets triggered you can change the UI accordingly.
Necessary tools
Quite a few tools are out there which help you to make web application into a decentralized application which runs on a Ethereum smart contract.
- You can use the Truffle framework to compile and migrate the smart contract.
- web3.js Ethereum JavaScript API is a means to handle user interactions with the blockchain via the smart contract
- You write the smart contract in the programming language Solidity.
- Side note: Data is sent to Solidity using the RPC Message Protocol
- This video by Siraj Raval uses exactly the mentioned tools and is a great guide on how to build your first decentralized application.
Further Tools
- Local Ethereum client to show what’s going on: Ganache
- To add third-party integrations to solidity use so called Oracles, e.g. via oraclize. See also in-browser solidity explorer.
Some Resources
- Nice tutorial (Siraj based his video on part 1 of this tutorial)
- Online Platform to learn dApp development on Ethereum
- Github Repo to Siraj’s YouTube video
- Learn Solidity by coding a Game
Further articles
Blockchain examples
To get you inspired of how decentralized apps can be useful, let’s look at the following examples:
-
Trade user attention with this utility token. It sounds spooky but on the brave browser you can
-
The idea is a utility coin which…
- Cryptokitties
Q&A
-
Can a utility coin and security co-exist on a blockchain?
There are two possibilities:
- Token that has utility but is also security (= can be traded) -> can also be listed/traded - handled as if it was a security
- You have both separately: A utility token and a different security that are not directly correlated. The utility token can only be used on the platform.
- Mir ist noch etwas nicht ganz klar. Wir sagten vorhin, dass Bitcoin ein Security Token ist. Das heißt es wird als Anlage benutzt, weil Menschen in der Bitcoin Projekt einen (zurzeit sehr hohen) Wert sehen. Aber welchen Wert sehen sie darin? Den Wert von Bitcoin als eine Währung?
Falls ja, bin ich wieder verwirrt, weil du in deinem Vortrag meintest, ein Token ist entweder a) eine Anlage, b) ein Utility-Token oder c) eine Währung. —> Somit hast du tokens als Währung von Tokens als Anlage unterschieden..
**Reply**:
- Hallo André, Angebot und Nachfrage regulieren den Wert. Das Angebot von Bitcoin wird ausschliesslich durch geminete Blocks erhöht (über den Mining Reward). Die Nachfrage ist aber stark gestiegen, weil Bitcoin Mainstream wurde. Allerdings fast ausschliesslich als Investment, nicht als Währung. Deshalb die hohe Volatilität.
- Ein Token kann auch mehr als 1 Kategorie darstellen, tatsächlich ist das sogar meistens der Fall. Bitcoin ist eine Anlage (Security), aber auch eine Währung (zumindest begrenzt als Zahlungsmittel).
- Ethereum ist alle 3 (Security, Währung und auch Utility Token). Utility ist grundsätzlich auch der Grund, warum man bei Ethereum von einer 2. Generation von Blockchains spricht - aufgrund der turing-complete machine. Diese ermöglicht es, Applikationen on top von Ethereum zu bauen. Und die Transaktionsgebühren (und Mining Rewards) werden in Ether transferiert (= Utility Token).
- Die 1. Generation Blockchain - Bitcoin - hat zwar eine Scripting Language, aber keine turing complete functionality. Ich kann also nicht basierend auf Bitcoin eine Applikation bauen. Somit ist es gar nicht möglich, auf Basis von Bitcoin einen Utility Token aufzusetzen.Conversation with Valentin Kahn about utility coins etc.
André [12:20 PM] In einem weiteren guten Video wurde bei Businesses, die das Token Modell benutzen davon geredet, dass eine “scarce resource”, die im Netzwerk gehandelt wird, genutzt wird, um den Wert der Tokens zu erhöhen. Bei Bitcoin wurde gesagt, dass diese “scarce resource” die Computing Power ist, die die Miner zur Verfügung stellen. Das hört sich für mich wie eine Utility an. Oder ist es das nicht?
Valentin Kahn [1:45 PM] Also Mining dient dazu, dass Beglauben von Transaktionen (in Blöcken) zu randomisieren. In Bitcoin dient die Lösung des komplizierten Hash-Puzzles als Ausgangslage für die randomisierte Auswahl (in Wahrheit jedoch hat man mit höherer Rechenpower eine höhere Wahrscheinlichkeit, den Block beglaubigen zu können, was das Randomisieren etwas abschwächt). Weil dieser Prozess viel Strom kostet, dient der Mining Reward als Incentive für die Miners. Wer das Puzzle am schnellsten löst, bekommt den Mining Reward und darf Beglaubigen. Nun ist der Mining Reward die einzige Grundlage, wie neue Bitcoins ins System kommen, und somit ein Scarcity-Faktor, jedoch nicht wirklich ein handelbarer.
André [7:50 PM] ok cool! Danke!
Discuss on Twitter ● Improve this article: Edit on GitHub