Bevor Geld zu dem wurde was es heute ist wurde es durch viele kreative Ideen geformt bzw. weiterentwickelt. Im Laufe der Evolution wurde Geld in unterschiedlichen Kulturen vor allem aufgrund seiner Tauschmittelfunktion, Wertaufbewahrungsfunktion und Wertmaßstabfunktion genutzt.
Im Laufe der Geschichte finden sich viele Beispiele dafür, wie Machthaber ihre Machtposition auf ethisch fragwürdige Weise nutzten, um gesellschaftlich anerkannte Scams (z.B. die Aufhebung des Goldstandards im August 1971) zu gestalten. Wer die Währung lenkt, lenkt meist auch das Volk.
Digitale Währungen unterscheiden sich z.B. im Hinblick auf die ihnen zugrundeliegenden Technologien und durch das Maß an eingebauter Demokratie / das Maß an Verteiltheit voneinander.
In dieser Kategorie sind nach allgemeiner Kenntnislage z.B. Bitcoin und Ether (die Hauptwährung der Ethereum Blockchain) zu nennen. Diese beiden Währungen sind sowohl im Hinblick auf die Ihnen zugrundeliegenden Infrastrukturen als auch im Hinblick auf die Menge der Coins weitgehend verteilt.
In dieser Kategorie finden wir hauptsächlich Scams. Diese Kategorie umfasst solche digitale Währungen, die keinen "Fair Launch" und keine "Built in Democracy" beweisen sondern den "Issuer" oder den Issuer beeinflussende Personengruppen auf meist unfaire Weise bevorteilen - z.B. XRP, Central Bank Digital Currencies (CBDCs), USDT etc.
Im Rahmen dieser Vorlesungsreihe konzentrieren wir uns weitgehend auf Bitcoin und Ether und erkunden anhand von diesen beiden die Blockchaintechnologie und einige weitere Anwendungsmöglichkeiten dieser Technologie.
Cryptowährungen als Teilmenge digitaler Währungen...
DeFi Pulse for Ethereum...
DeFi Station for BSC...
Compare this with classic business models of banks... Explore differences regarding capital efficiencies...
Compare this with business models of investment banks...
Explore differences regarding capital efficiencies...
Long Term (Hoddle) vs. Short Term (Trade) Investments...
Explore Volatility Farming comparing the Hummingbot with VoFarm...
Immutability... e.g. wertvoll für Versicherungspolicen...
Vergleiche deno.land und nest.land
Apps, die keinen zentralen web-server benötigen, sondern welche als Backend ein verteiltes System wie beispielsweise die Ethereum Blockchain oder das Interplanetary File System (IPFS), sowie verteilte Domain Name Services (DNS) wie z.B. ens.domains nutzen.
Manche Leute nenn ihre App schon DApp sobald sie metamask integriert haben und darüber die Interaktion mit Smart Contracts für Ihre Nutzer bereitstellen.
Please remember with great power comes great responsibility --> achtet & pflegt ethischen Kompass von Zeit zu Zeit. Governance Tokens ... Incentive Systeme
ERC721 Tokens... && ERC1155 Tokens
Crypto Kitties... Kunst und das Web3verse (formerly Metaverse)
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.2;
import "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import "@openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol";
contract MyToken is ERC721, ERC721URIStorage {
constructor() ERC721("MyToken", "MTK") {}
// The following functions are overrides required by Solidity.
function _burn(uint256 tokenId) internal override(ERC721, ERC721URIStorage) {
super._burn(tokenId);
}
function tokenURI(uint256 tokenId)
public
view
override(ERC721, ERC721URIStorage)
returns (string memory)
{
return super.tokenURI(tokenId);
}
}
Challenge: Which wallet to use for interaction
https://ropsten.etherscan.io/address/0xdcfba45751726c7dfaf9950e96eef7026d5afb73
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.2;
import "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";
import "@openzeppelin/contracts/access/Ownable.sol";
import "@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Supply.sol";
contract OurFancyERC1155Token is ERC1155, Ownable, ERC1155Supply {
constructor() ERC1155("") {}
function setURI(string memory newuri) public onlyOwner {
_setURI(newuri);
}
// The following functions are overrides required by Solidity.
function _beforeTokenTransfer(address operator, address from, address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data)
internal
override(ERC1155, ERC1155Supply)
{
super._beforeTokenTransfer(operator, from, to, ids, amounts, data);
}
}
Von zentralen zu dezentralen Ledgers...
Challenge: Distributed Consensus...
Konsensalgorithmen Proof of Work, Proof of Stake, etc.
Das Bitcoin Whitepaper...
Die Einwegfunktion SHA256 spielt im Bitcoin System an mehreren Stellen eine wesentliche Rolle. So wird diese genutzt um die durch den Proof of Work Konsensalgorithmus definierte Aufgabe zu lösen und um Bitcoin Wallets zu generieren.
Refresher: Im Gegensatz zu symmetrischen Verschlüsselungsverfahren entfällt bei asymmetrischen Verschlüsselungsverfahren (z.B. RSA, ECDSA, ...) die Herausforderung des Schlüsselaustausches, da Sender und Empfänger bei der asymmetrischen Verschlüsselung unterschiedliche Schlüssel nutzen.
Alice verschlüsselt die Nachricht welche sie an Bob senden möchte mit Bob's public key --> Nur Bob wird in der Lage sein diese Nachricht zu entschlüsseln.
Der Sender verschlüsselt seine Nachricht mit seinem private key und hat diese dadurch digital signiert. Im Bereich Cryptowährungen nutzen wir dieses Prinzip, um sicherzustellen, dass der Auftraggeber einer Transaktion auch tatsächlich der Eigentümer / Besitzer des private keys ist.
Merkle Trees... siehe auch Bitcoin Whitepaper
Bloomfilters... siehe auch Ethereum Yellow Paper chapter 4.3
Tries...
Merkle-PATRICIA-Tries
Ethereum Yellow Paper...
Vitalik Buterin...
Als Smart Contracts bezeichnen wir Programme, welche auf einer verteilten Blockchain deployed und ausgeführt werden. Diese Verträge / Vereinbarungen bezeichnen wir als "smart", da sie ihre Erfüllung selbst algorithmisch sicherstellen - ganz ohne Anwälte oder Gerichte wie viele von uns das aus der off-chain Welt kennen.
Ein Beispiel aus der off-chain Welt, welches das Prinzip eines Smart Contracts recht gut wiederspiegelt ist ein Getränkeautomat am Bahnhof. Mit diesem Getränkeautomat haben dessen Nutzer typischerweise eine Smarte Vereinbarung, die technisch - ohne Anwälte etc. - eingefordert / erfüllt wird. Diese lautet z.B.
"Wirf Du mir 2 Euro rein, dafür werfe ich Dir eine Wasserflasche raus."
Solidity ist die Programmiersprache, welche wir für die Implementierung unserer Smart Contracts für die Ethereum Blockchain nutzen.
remix.ethereum.org nutzen wir als online IDE für die Implementierung und das Deployment unserer Smart Contracts.
The Deno module named web3...
Chainlink basierte "oracles" erlauben es Off-Chain Daten zu On-Chain Smart Contracts zu bringen. Aus Sicht eines On-Chain Smart Contracts können wir uns eine solche Datenquelle, welche Informationen aus einer "anderen" Welt bereitstellt, wie ein Orakel vorstellen...
Als Browserwallet nutzen wir Metamask.io...
DAI as an example...
USDT and other potential frauds...
Money which is only backed by political power - typically issued by governments - is also called fiat money. Examples: EUR, USD seit der Aufhebung des Goldstandards im August 1971
Governance Tokens...
Typische Challenge: Fair Launch / Initial Distribution ...
Um Gas Fees ... zu sparen arbeiten wir mit der Layer 2 Scaling Solution Arbitrum...
zk proofs / rollups ...
Network Name: Arbitrum
New RPC URL: https://arb1.arbitrum.io/rpc
Chain ID: 0xa4b1
Symbol: ETH
Block Explorer URL: https://arbiscan.io/
Im Rahmen dieser Vorlesungsreihe arbeiten wir mit uniswap.org als dezentrale Börse
Considering Aave Liquidation Bots as examples...
Im Folgenden definieren wir eine digitale Währung als ERC20 Token durch einen smart contract (per remix online IDE entwickelt), den wir auf der Ethereum Blockchain deployen. Aus Kostengründen deployen wir diesen jedoch nicht auf dem Ethereum Mainnet sondern auf dem Ropsten Test Net.
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.0 < 0.9.0;
import "https://github.com/OpenZeppelin/openzeppelin-contracts/blob/release-v4.4/contracts/token/ERC20/ERC20.sol";
contract MannheimCoin is ERC20 {
constructor () ERC20("MannheimCoin", "MANN") {
_mint(msg.sender, 2000000 * (10 ** uint256(decimals())));
}
}
Diese digitale Währung basiert nun zwar auf einer verteilten Infrastruktur, gleichzeitig ist die gesamte verfügbare Menge an coins (2.000.000) im wallet des den smart contract deployenden (msg.sender) gelandet. Diese Währung hatte also keinen fair launch. Die Möglichkeiten eines Fair Launch (airdrops etc.) erkunden wir später.
Ein weiteres Problem ist, dass dieser Währung zunächst kein Wert beigemessen wird. Aus diesem Grund erstellen wir im Folgenden einen Liquidity Pool auf uniswap.org.
Nach den folgenden Schritten bei uniswap (wichtig ropsten testnet) können Interessierte 1 Mannheim Coin für 1 Ether "kaufen" / swappen. Das wird nur weiterhin erstmal niemand tun, da bisher keine value proposition hinter dem Mannheim Coin steht...