SlideShare a Scribd company logo
1 of 97
Download to read offline
A to Z
dongsamb@gmail.com 17.09.18
Ethereum - Mining Pool
https://etherscan.io/stat/miner?range=7&blocktype=blocks
f2pool
Ethereum - Node info
• 17.09.17 22
• Geth : 70%
• Parity : 19%
• Swarm : 6%
•
https://ethernodes.org/network/1
Geth
Parity
swarm
1.7.0
1.6.7
1.6.6
Ethereum - Currency, Market
Ethereum - Market Capitalization
• startGas = gas limit
• startGas is the term in the Ethereum White Paper
• gasLimit is the term in the Ethereum Yellow Paper,
• software, such as Geth and web3.js, simply uses the term “gas”.
• gas Price 

- Gas
https://media.consensys.net/ethereum-gas-fuel-and-fees-3333e17fe1dc
- ( MyEtherWallet, MetaMask )
• Gas Price, Gas Limit
- ( Mist )
-
-
1. , .
2. =STARTGAS * GASPRICE . 

Sender NONCE +1.
3. GAS=STARTGAS 

1 5Gas .
4. . 

. 

smart contract , . 

.
5. ,
,
.

6. ,
.
APPLY(S, TX) -> S’
- Merkle Trees
https://github.com/MetaMask/IPFS-Ethereum-Hackathon/
https://github.com/MetaMask/IPFS-Ethereum-Hackathon/
Appendix - Merkle Tree
https://brilliant.org/wiki/merkle-tree/
https://bitcoin.org/en/developer-reference#merkle-trees
Appendix - Patricia Tree
https://ethereum.stackexchange.com/questions/6415/eli5-how-does-a-merkle-patricia-trie-tree-work
Appendix - Merkle Patricia Tree
https://ethereum.stackexchange.com/questions/6415/eli5-how-does-a-merkle-patricia-trie-tree-work
Blockchain Demo
https://anders.com/blockchain/
https://github.com/MetaMask/IPFS-Ethereum-Hackathon/
https://github.com/MetaMask/IPFS-Ethereum-Hackathon/
https://github.com/MetaMask/IPFS-Ethereum-Hackathon/https://github.com/MetaMask/IPFS-Ethereum-Hackathon/
https://github.com/MetaMask/IPFS-Ethereum-Hackathon/
https://github.com/MetaMask/IPFS-Ethereum-Hackathon/
https://github.com/MetaMask/IPFS-Ethereum-Hackathon/
https://github.com/MetaMask/IPFS-Ethereum-Hackathon/
https://github.com/MetaMask/IPFS-Ethereum-Hackathon/
https://github.com/MetaMask/IPFS-Ethereum-Hackathon/
https://github.com/MetaMask/IPFS-Ethereum-Hackathon/
https://github.com/MetaMask/IPFS-Ethereum-Hackathon/
Ethereum A to Z
- Code Execution, EVM
• (EVM: Ethereum Virtual Machine): 





(state) 



network, filesystem, 

, Smart contract ( Library, Deligatecall )
•
1. : LIFO(Last-In-First-Out) value push pop .
2. :
3. : Key/value (simpleDB).
• ,
, .
1 ASIC resistance
hashrate 

2 Light client verifiability
Hasimoto : ASIC resistance, IO-bound, making memory read

Dagger : memory-hard computation, but easy validation

( by Vitalic Buterin)

, Dagger Dagger Hasimoto Ethash 

30,000 1GB PoW hash
- PoW, Mining Centralization
Yellow Paper ( )
// datasetSizes is a lookup table for the ethash dataset size for the first 2048
// epochs (i.e. 61440000 blocks).
var datasetSizes = []uint64{
1073739904, 1082130304, 1090514816, 1098906752, 1107293056,
1115684224, 1124070016, 1132461952, 1140849536, 1149232768,
1157627776, 1166013824, 1174404736, 1182786944, 1191180416,
1199568512, 1207958912, 1216345216, 1224732032, 1233124736,
1241513344, 1249902464, 1258290304, 1266673792, 1275067264,
1283453312, 1291844992, 1300234112, 1308619904, 1317010048,
1325397376, 1333787776, 1342176128, 1350561664, 1358954368,
1367339392, 1375731584, 1384118144, 1392507008, 1400897408,
1409284736, 1417673344, 1426062464, 1434451072, 1442839168,
1451229056, 1459615616, 1468006016, 1476394112, 1484782976,
1493171584, 1501559168, 1509948032, 1518337664, 1526726528,
1535114624, 1543503488, 1551892096, 1560278656, 1568669056,
1577056384, 1585446272, 1593831296, 1602219392, 1610610304,
1619000192, 1627386752, 1635773824, 1644164224, 1652555648,
…
// datasetSize calculates and returns the size of the ethash mining dataset that
// belongs to a certain block number. The dataset size grows linearly, however, we
// always take the highest prime below the linearly growing threshold in order to
// reduce the risk of accidental regularities leading to cyclic behavior.
func datasetSize(block uint64) uint64 {
// If we have a pre-generated value, use that
epoch := int(block / epochLength) // ex) 4,240,505 / 30,000 == 141
if epoch < len(datasetSizes) { // 2048
return datasetSizes[epoch]
}
// No known dataset size, calculate manually (sanity branch only)
size := uint64(datasetInitBytes + datasetGrowthBytes*uint64(epoch) - mixBytes)
for !new(big.Int).SetUint64(size / mixBytes).ProbablyPrime(1) {
// Always accurate for n < 2^64
size -= 2 * mixBytes
}
return size
}
- PoW, Mining Centralization
Smart Contract
• Github
• ERC-20
• EIP
• ERC-20
• Zeppelin example
• Token,
•
Github
https://github.com/ethereum/go-ethereum
Github
Github
Github
Ethereum Github
https://github.com/ethereum
Ethereum Github - Wiki
https://github.com/ethereum/wiki/wiki/White-Paper
Ethereum Github - Wiki
https://github.com/ethereum/wiki/wiki/[Korean]-White-Paper
Ethereum Github - Wiki
https://github.com/ethereum/wiki/wiki/[Korean]-White-Paper
Ethereum Github - Wiki
https://github.com/ethereum/wiki/wiki/[Korean]-White-Paper
Ethereum Github - pyethereum
https://github.com/ethereum/pyethereum
https://github.com/ethereum/pyethereum/graphs/contributors
Ethereum Github - Contribution ( Buterin )
Ethereum - research
• python PoC( proof of concept )
• pyethereum -> go-ethereum(geth)
• sharding, casper
Ethereum Github - sharding
https://github.com/ethereum/sharding
raiden-network Github - raiden
https://github.com/raiden-network/raiden
Ethereum Github - EIP
https://github.com/ethereum/EIPs
Ethereum Github - ERC
https://github.com/ethereum/EIPs/issues/16
https://ko.wikipedia.org/wiki/RFC
ERC : Ethereum RFC


Ethereum Github - ERC
ERC : Ethereum RFC(Request for Comments)

Popular RFCs
	 •	 HTTP/1.1 Protocol - RFC 2616

	 •	 Uniform Resource Locator URL - RFC 1738

	 •	 TCP Protocol - RFC 793

	 •	 Transport Layer Security Protocol - RFC 5246

	 •	 eMail - RFC 2822

	 •	 SMTP Protocol - RFC 5321

	 •	 SIP Protocol - RFC 3261

	 •	 FTP Protocol - RFC 959

	 •	 RTP Protocol - RFC 3550
https://github.com/ethereum/EIPs/issues/16
https://ko.wikipedia.org/wiki/RFC
https://tools.ietf.org/html/rfc2616
Ethereum Github - ERC
https://github.com/ethereum/EIPs/issues
ERC-20, ERC
https://github.com/ethereum/EIPs/issues/20
Smart Contract - ERC-20
https://github.com/ethereum/EIPs/issues/20
Smart contract a b
Smart Contract - ERC-20
https://github.com/ethereum/EIPs/issues/20
Smart Contract - ERC-20 ? EIP-20?
https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md
Smart Contract - zeppelin example
Smart Contract - , Token
Smart Contract - , Token
Smart Contract - , Token
Smart Contract - , Token
Smart Contract - , Token
Smart Contract - , Token
Smart Contract - , Token
Smart Contract - , Token
Smart Contract - Security
• DAO ( 2016.06 )
DAO smart contract ( ) 

2 , 



blockchain , 

, transaction block chain hard fork 



hard fork ( ) Ethereum Classic
• DoS ( 2016.09 )
DoS 







gas Hard fork
• PARITY smart contract 



Parity Multisig Wallet Edgeless, Swarm City, æternity ICO Wallet 150,000 ETH 

initWallet public 

Parity Multisig Wallet Smart contract
Smart Contract - Security, Bug Bounty
Smart Contract - Random
EVM Smart Contract Random
Random Seed
EVM Contract
EVM , Seed Random
ex) block timestamp, block height
, smart contract random seed smart contract 

EVM
Smart Contract - Oracle
Smart contract Oracle



ex) Prediction Market, score

, ETH 





Oraclize API
Ethereum Scalability
Raiden Network
Lightning Network
Sharding
Metropolis
Plasma
?Casper
Ethereum
Metropolis
• Vitaliks latest thinking on transition to PoS:
• PoW -> PoW with PoS "on top" -> Hybrid PoW/PoS -> PoS
• Stages:
• 1. PoS would finalize blocks after PoW has de facto finalized them anyway.
• 2. After a couple of month: implement clients that favor PoS.
• 3. Cut down PoW block reward, increase PoS validator reward.
• 4. Hybrid PoS scheme parametrize between PoW and PoS at 0-100 scale
Metropolis
Block , 

PoS ( Casper ) , 



, 5->3 



(Byzantium) -> 17.09.18
(Constantinople) -> 18
Metropolis
EIP 86 (“abstraction”)
•  Make the protocol as simple as possible
•  Any account in the call execution chain can pay for gas
•  Instead of only the account that sent the transaction
•  A recipient, or middle account, could pay the gas cost
•  Helps anonymization, instead of needing to use only one account to pay for gas
EIP 98 (removal of intermediate state roots)
•  Goal: Make it easier to process transactions in parallel
EIP 96 (EVM-ification)
•  Try to make light clients more secure
EIP 100 (target block time including uncles)
•  Security upgrades
EIP 101 (big integer precompile)
•  Make it easier to verify certain types of cryptography
•  Ethereum supports elliptic curve cryptography
•  RSA encryption is used by others, and is currently computationally inefficient to verify in Ethereum
EIP 116 (STATIC_CALL)
•  Under consideration
•  Can call a contract and be sure you’re not changing anything; not writing to the state
EIP 195 (Pure call)
•  Even more static version of STATIC CALL
•  Can’t write or read
EIP 140 (throw opcode)
•  Throws an exception without consuming all remaining gas
EIP 141 (invalid opcode)
Metropolis
EIP 86 (“abstraction”)
•  Make the protocol as simple as possible
•  Any account in the call execution chain can pay for gas
•  Instead of only the account that sent the transaction
•  A recipient, or middle account, could pay the gas cost
•  Helps anonymization, instead of needing to use only one account to pay for gas
EIP 98 (removal of intermediate state roots)
•  Goal: Make it easier to process transactions in parallel
Metropolis - Byzantium fork ( 10 )
• Geth 1.7 – Megara
• EIP 98: Removal of intermediate state roots from receipts (#14750).
• Expanded by EIP 658: Embedding transaction return data in receipts (#15014).
• EIP 100: Change difficulty adjustment to target mean block time including uncles (#14733).
• EIP 198, EIP 212 (197) and EIP 213 (196): Precompiled contracts for modular exponentiation; elliptic curve addition, scalar
multiplication and pairing (#14959, #14993).
• EIP 214 (116): Expanding the EVM with static contract calls (#14978).
• EIP 211: Expanding the EVM with dynamically sized return data (#14981).
• EIP 206 (140): Expanding the EVM with cheap state revertals (#14983).
• EIP 649: Delaying the difficulty bomb and reducing the block reward (#15028).
• EIP 684: Preventing overwriting contracts (Byzantium prep) (#15039).
https://blog.ethereum.org/2017/09/14/geth-1-7-megara/
Serenity
serenity, Ethereum 2.0, with 4 primary research directions:
1. casper, the proof-of-stake algorithm.
2. scalability, by processing transactions in parallel and moving away
from the paradigm where every node in the network has to
absolutely process every transaction.
3. zkSNARK, addressing privacy.
4. Upgrading the evm (Ethereum Virtual Machine).
Ethereum Scalability
Sharding

Raiden Network (lighting network) 

Plasma
Ethereum Scalability - Sharding
https://github.com/ethereum/wiki/wiki/Sharding-FAQ
0x1
0x2
0x3
0x4
…
Challenges
Cross shard communication

Single-shard takeover attacks
Fraud detection
…
https://lightning.network/
Ethereum Scalability - Raiden Network
https://raiden.network
• Bitcoin Lightning Network
• ERC-20 Token
https://lightning.network/
Ethereum Scalability - Raiden Network
https://raiden.network
Ethereum Scalability - Raiden Network
https://raiden.network/101.html
Ethereum Scalability - Raiden Network
https://answers.thenextweb.com/s/vitalik-buterin-13gxQB
Ethereum Scalability - Plasma
Plasma: Scalable Autonomous Smart Contracts
Joseph Poon and Vitalik Buterin
https://medium.com/chain-cloud-company-blog/plasma-in-10-minutes-c856da94e339
http://plasma.io
Lightning Network
Map Reduce
Ethereum Scalability - Plasma
Discussion
Thank you!
Ethereum Scalability - Raiden Network
https://raiden.network
https://github.com/ConsenSys/EthOn
Ethereum Test Network
• Etherscan Testnet
Appendix - bitcoin vs ethereum
Appendix - SHA-3 ( Keccak )
Appendix - SHA-3 ( Keccak )
// fnv is an algorithm inspired by the FNV hash, which in some cases is used as
// a non-associative substitute for XOR. Note that we multiply the prime with
// the full 32-bit input, in contrast with the FNV-1 spec which multiplies the
// prime with one byte (octet) in turn.
func fnv(a, b uint32) uint32 {
return a*0x01000193 ^ b // ^ == xor
}
// fnvHash mixes in data into mix using the ethash fnv method.
func fnvHash(mix []uint32, data []uint32) {
for i := 0; i < len(mix); i++ {
mix[i] = mix[i]*0x01000193 ^ data[i]
}
}
FNV (Fowler/Noll/Vo) is a fast, non-cryptographic hash algorithm with good dispersion
FNV hashes are designed to be fast while maintaining a low collision rate. The FNV speed allows one to quickly hash lots of data while
maintaining a reasonable collision rate. The high dispersion of the FNV hashes makes them well suited for hashing nearly identical strings such as URLs,
hostnames, filenames, text, IP addresses, etc.
Appendix - fnv ( FNV hash )
-
Prev Hash : (parent hash)
Nonce : 64 ,
Timestamp : time()
Uncles Hash(ommer hash) : SHA-3 (256 ) / ommer " "
Uncle
Beneficiary : (fees) 160
Logs Bloom : ( )
( )
Difficulty :
Extra Data : Block Num Gas
Limit Gas Used
Mix Hash : 256
State Root : (SHA-3 )
Transaction Root : (SHA-3
)
Receipt Root : (SHA-3
)

More Related Content

What's hot

Decentralized Application: A Software Engineering Perspective
Decentralized Application: A Software Engineering PerspectiveDecentralized Application: A Software Engineering Perspective
Decentralized Application: A Software Engineering PerspectiveBambang Purnomosidi D. P.
 
블록체인 한 번에 이해하기
블록체인 한 번에 이해하기블록체인 한 번에 이해하기
블록체인 한 번에 이해하기Myung Woon Oh
 
Introduction to Bitcoins and Cryptocurrency
Introduction to Bitcoins and CryptocurrencyIntroduction to Bitcoins and Cryptocurrency
Introduction to Bitcoins and CryptocurrencyUtkarsh Gupta
 
Introduction to bitcoin
Introduction to bitcoinIntroduction to bitcoin
Introduction to bitcoinWolf McNally
 
Decentralised Exchanges - An Introduction
Decentralised Exchanges - An IntroductionDecentralised Exchanges - An Introduction
Decentralised Exchanges - An IntroductionPriyab Satoshi
 
Ethereum Tutorial - Ethereum Explained | What is Ethereum? | Ethereum Explain...
Ethereum Tutorial - Ethereum Explained | What is Ethereum? | Ethereum Explain...Ethereum Tutorial - Ethereum Explained | What is Ethereum? | Ethereum Explain...
Ethereum Tutorial - Ethereum Explained | What is Ethereum? | Ethereum Explain...Simplilearn
 
Bitcoin as an Emerging Technology Written Report
Bitcoin as an Emerging Technology Written ReportBitcoin as an Emerging Technology Written Report
Bitcoin as an Emerging Technology Written ReportShane Hickey
 

What's hot (20)

Decentralized Application: A Software Engineering Perspective
Decentralized Application: A Software Engineering PerspectiveDecentralized Application: A Software Engineering Perspective
Decentralized Application: A Software Engineering Perspective
 
Bitcoin
BitcoinBitcoin
Bitcoin
 
블록체인 한 번에 이해하기
블록체인 한 번에 이해하기블록체인 한 번에 이해하기
블록체인 한 번에 이해하기
 
Introduction to Bitcoins and Cryptocurrency
Introduction to Bitcoins and CryptocurrencyIntroduction to Bitcoins and Cryptocurrency
Introduction to Bitcoins and Cryptocurrency
 
Smart contracts
Smart contractsSmart contracts
Smart contracts
 
Ethereum 2.0
Ethereum 2.0Ethereum 2.0
Ethereum 2.0
 
Bitcoin
BitcoinBitcoin
Bitcoin
 
Introduction to bitcoin
Introduction to bitcoinIntroduction to bitcoin
Introduction to bitcoin
 
Smart contracts & dApps
Smart contracts & dAppsSmart contracts & dApps
Smart contracts & dApps
 
Bitcoin
BitcoinBitcoin
Bitcoin
 
Introduction Bitcoin
Introduction BitcoinIntroduction Bitcoin
Introduction Bitcoin
 
Decentralised Exchanges - An Introduction
Decentralised Exchanges - An IntroductionDecentralised Exchanges - An Introduction
Decentralised Exchanges - An Introduction
 
Ethereum Tutorial - Ethereum Explained | What is Ethereum? | Ethereum Explain...
Ethereum Tutorial - Ethereum Explained | What is Ethereum? | Ethereum Explain...Ethereum Tutorial - Ethereum Explained | What is Ethereum? | Ethereum Explain...
Ethereum Tutorial - Ethereum Explained | What is Ethereum? | Ethereum Explain...
 
Blockchain and Cryptocurrency for Dummies
Blockchain and Cryptocurrency for DummiesBlockchain and Cryptocurrency for Dummies
Blockchain and Cryptocurrency for Dummies
 
Ethereum-Cryptocurrency (All about Ethereum)
Ethereum-Cryptocurrency (All about Ethereum) Ethereum-Cryptocurrency (All about Ethereum)
Ethereum-Cryptocurrency (All about Ethereum)
 
Ethereum
EthereumEthereum
Ethereum
 
Ethereum Smart contract
Ethereum Smart contractEthereum Smart contract
Ethereum Smart contract
 
Bitcoin as an Emerging Technology Written Report
Bitcoin as an Emerging Technology Written ReportBitcoin as an Emerging Technology Written Report
Bitcoin as an Emerging Technology Written Report
 
Bitcoin & Bitcoin Mining
Bitcoin & Bitcoin MiningBitcoin & Bitcoin Mining
Bitcoin & Bitcoin Mining
 
Blockchain (1).pptx
Blockchain (1).pptxBlockchain (1).pptx
Blockchain (1).pptx
 

Similar to Ethereum A to Z

BlockchainDay "Ethereum Dapp - Asset Exchange YOSEMITE alpha" Session
BlockchainDay "Ethereum Dapp - Asset Exchange YOSEMITE alpha" Session BlockchainDay "Ethereum Dapp - Asset Exchange YOSEMITE alpha" Session
BlockchainDay "Ethereum Dapp - Asset Exchange YOSEMITE alpha" Session 병완 임
 
September Ethereum Berlin Workshop
September Ethereum Berlin WorkshopSeptember Ethereum Berlin Workshop
September Ethereum Berlin Workshopaeronbuchanan
 
Build your own private blockchain based on ethereum
Build your own private blockchain based on ethereumBuild your own private blockchain based on ethereum
Build your own private blockchain based on ethereumMehran Pourvahab
 
Introduction to Ethereum
Introduction to EthereumIntroduction to Ethereum
Introduction to EthereumArnold Pham
 
Ryan Stortz & Sophia D'Antoine - “EVM2VEC: Bug Discovery in Smart Contracts”
Ryan Stortz & Sophia D'Antoine - “EVM2VEC: Bug Discovery in Smart Contracts”Ryan Stortz & Sophia D'Antoine - “EVM2VEC: Bug Discovery in Smart Contracts”
Ryan Stortz & Sophia D'Antoine - “EVM2VEC: Bug Discovery in Smart Contracts”Hacken_Ecosystem
 
B4uConference_ethereum
B4uConference_ethereumB4uConference_ethereum
B4uConference_ethereumHoa Le
 
HASHED LOUNGE Presents: OpenST Mosaic - Scaling blockchain economies to billi...
HASHED LOUNGE Presents: OpenST Mosaic - Scaling blockchain economies to billi...HASHED LOUNGE Presents: OpenST Mosaic - Scaling blockchain economies to billi...
HASHED LOUNGE Presents: OpenST Mosaic - Scaling blockchain economies to billi...OST | Open Simple Token
 
OpenST Mosaic Protocol introduced at ETH Berlin: Running meta-blockchains on ...
OpenST Mosaic Protocol introduced at ETH Berlin: Running meta-blockchains on ...OpenST Mosaic Protocol introduced at ETH Berlin: Running meta-blockchains on ...
OpenST Mosaic Protocol introduced at ETH Berlin: Running meta-blockchains on ...OST | Open Simple Token
 
Dappsmedia smartcontract _write_smartcontracts_on_console_ethereum
Dappsmedia smartcontract _write_smartcontracts_on_console_ethereumDappsmedia smartcontract _write_smartcontracts_on_console_ethereum
Dappsmedia smartcontract _write_smartcontracts_on_console_ethereumTomoaki Sato
 
Blockchain for Developers
Blockchain for DevelopersBlockchain for Developers
Blockchain for DevelopersShimi Bandiel
 
sbt-ethereum: a terminal for the world computer
sbt-ethereum: a terminal for the world computersbt-ethereum: a terminal for the world computer
sbt-ethereum: a terminal for the world computerSteve Waldman
 
Metadata in the Blockchain: The OP_RETURN Explosion
Metadata in the Blockchain: The OP_RETURN ExplosionMetadata in the Blockchain: The OP_RETURN Explosion
Metadata in the Blockchain: The OP_RETURN ExplosionCoin Sciences Ltd
 
Introduction_to_Blockchain_&_Ethereum.pptx
Introduction_to_Blockchain_&_Ethereum.pptxIntroduction_to_Blockchain_&_Ethereum.pptx
Introduction_to_Blockchain_&_Ethereum.pptxWijdenBenothmen1
 
Crypto Wallets: A Technical Perspective (Nakov at OpenFest 2018)
Crypto Wallets: A Technical Perspective (Nakov at OpenFest 2018)Crypto Wallets: A Technical Perspective (Nakov at OpenFest 2018)
Crypto Wallets: A Technical Perspective (Nakov at OpenFest 2018)Svetlin Nakov
 
Hands on with Smart Contracts session #3
Hands on with Smart Contracts session #3Hands on with Smart Contracts session #3
Hands on with Smart Contracts session #3Gene Leybzon
 
Blockchain and smart contracts day 2
Blockchain and smart contracts day 2Blockchain and smart contracts day 2
Blockchain and smart contracts day 2Gene Leybzon
 
#ifndef CRYPTO_HPP#define CRYPTO_HPP#include functional#.docx
#ifndef CRYPTO_HPP#define CRYPTO_HPP#include functional#.docx#ifndef CRYPTO_HPP#define CRYPTO_HPP#include functional#.docx
#ifndef CRYPTO_HPP#define CRYPTO_HPP#include functional#.docxgertrudebellgrove
 
Blockchain, cryptography and tokens — NYC Bar presentation
Blockchain, cryptography and tokens — NYC Bar presentationBlockchain, cryptography and tokens — NYC Bar presentation
Blockchain, cryptography and tokens — NYC Bar presentationPaperchain
 

Similar to Ethereum A to Z (20)

BlockchainDay "Ethereum Dapp - Asset Exchange YOSEMITE alpha" Session
BlockchainDay "Ethereum Dapp - Asset Exchange YOSEMITE alpha" Session BlockchainDay "Ethereum Dapp - Asset Exchange YOSEMITE alpha" Session
BlockchainDay "Ethereum Dapp - Asset Exchange YOSEMITE alpha" Session
 
September Ethereum Berlin Workshop
September Ethereum Berlin WorkshopSeptember Ethereum Berlin Workshop
September Ethereum Berlin Workshop
 
Build your own private blockchain based on ethereum
Build your own private blockchain based on ethereumBuild your own private blockchain based on ethereum
Build your own private blockchain based on ethereum
 
Introduction to Ethereum
Introduction to EthereumIntroduction to Ethereum
Introduction to Ethereum
 
Ryan Stortz & Sophia D'Antoine - “EVM2VEC: Bug Discovery in Smart Contracts”
Ryan Stortz & Sophia D'Antoine - “EVM2VEC: Bug Discovery in Smart Contracts”Ryan Stortz & Sophia D'Antoine - “EVM2VEC: Bug Discovery in Smart Contracts”
Ryan Stortz & Sophia D'Antoine - “EVM2VEC: Bug Discovery in Smart Contracts”
 
B4uConference_ethereum
B4uConference_ethereumB4uConference_ethereum
B4uConference_ethereum
 
HASHED LOUNGE Presents: OpenST Mosaic - Scaling blockchain economies to billi...
HASHED LOUNGE Presents: OpenST Mosaic - Scaling blockchain economies to billi...HASHED LOUNGE Presents: OpenST Mosaic - Scaling blockchain economies to billi...
HASHED LOUNGE Presents: OpenST Mosaic - Scaling blockchain economies to billi...
 
OpenST Mosaic Protocol introduced at ETH Berlin: Running meta-blockchains on ...
OpenST Mosaic Protocol introduced at ETH Berlin: Running meta-blockchains on ...OpenST Mosaic Protocol introduced at ETH Berlin: Running meta-blockchains on ...
OpenST Mosaic Protocol introduced at ETH Berlin: Running meta-blockchains on ...
 
Dappsmedia smartcontract _write_smartcontracts_on_console_ethereum
Dappsmedia smartcontract _write_smartcontracts_on_console_ethereumDappsmedia smartcontract _write_smartcontracts_on_console_ethereum
Dappsmedia smartcontract _write_smartcontracts_on_console_ethereum
 
Blockchain for Developers
Blockchain for DevelopersBlockchain for Developers
Blockchain for Developers
 
sbt-ethereum: a terminal for the world computer
sbt-ethereum: a terminal for the world computersbt-ethereum: a terminal for the world computer
sbt-ethereum: a terminal for the world computer
 
Jvm memory model
Jvm memory modelJvm memory model
Jvm memory model
 
Metadata in the Blockchain: The OP_RETURN Explosion
Metadata in the Blockchain: The OP_RETURN ExplosionMetadata in the Blockchain: The OP_RETURN Explosion
Metadata in the Blockchain: The OP_RETURN Explosion
 
Introduction_to_Blockchain_&_Ethereum.pptx
Introduction_to_Blockchain_&_Ethereum.pptxIntroduction_to_Blockchain_&_Ethereum.pptx
Introduction_to_Blockchain_&_Ethereum.pptx
 
Crypto Wallets: A Technical Perspective (Nakov at OpenFest 2018)
Crypto Wallets: A Technical Perspective (Nakov at OpenFest 2018)Crypto Wallets: A Technical Perspective (Nakov at OpenFest 2018)
Crypto Wallets: A Technical Perspective (Nakov at OpenFest 2018)
 
Ethereum smart contracts - door Peter Reitsma
Ethereum smart contracts - door Peter ReitsmaEthereum smart contracts - door Peter Reitsma
Ethereum smart contracts - door Peter Reitsma
 
Hands on with Smart Contracts session #3
Hands on with Smart Contracts session #3Hands on with Smart Contracts session #3
Hands on with Smart Contracts session #3
 
Blockchain and smart contracts day 2
Blockchain and smart contracts day 2Blockchain and smart contracts day 2
Blockchain and smart contracts day 2
 
#ifndef CRYPTO_HPP#define CRYPTO_HPP#include functional#.docx
#ifndef CRYPTO_HPP#define CRYPTO_HPP#include functional#.docx#ifndef CRYPTO_HPP#define CRYPTO_HPP#include functional#.docx
#ifndef CRYPTO_HPP#define CRYPTO_HPP#include functional#.docx
 
Blockchain, cryptography and tokens — NYC Bar presentation
Blockchain, cryptography and tokens — NYC Bar presentationBlockchain, cryptography and tokens — NYC Bar presentation
Blockchain, cryptography and tokens — NYC Bar presentation
 

More from Dongsam Byun

오피니언마이닝에 기반한 주식 자동 매매 시스템
오피니언마이닝에 기반한 주식 자동 매매 시스템오피니언마이닝에 기반한 주식 자동 매매 시스템
오피니언마이닝에 기반한 주식 자동 매매 시스템Dongsam Byun
 
화이트박스 테스팅
화이트박스 테스팅화이트박스 테스팅
화이트박스 테스팅Dongsam Byun
 
Ethash : Ethereum PoW Algorithm
Ethash : Ethereum PoW AlgorithmEthash : Ethereum PoW Algorithm
Ethash : Ethereum PoW AlgorithmDongsam Byun
 
음성인식 및 웹 기반 어플리케이션을 통한 유비쿼터스 스마트홈 제어
음성인식 및 웹 기반 어플리케이션을 통한 유비쿼터스 스마트홈 제어음성인식 및 웹 기반 어플리케이션을 통한 유비쿼터스 스마트홈 제어
음성인식 및 웹 기반 어플리케이션을 통한 유비쿼터스 스마트홈 제어Dongsam Byun
 
QR코드 스캔에 기초한 보안 결제 시스템
QR코드 스캔에 기초한 보안 결제 시스템QR코드 스캔에 기초한 보안 결제 시스템
QR코드 스캔에 기초한 보안 결제 시스템Dongsam Byun
 
판매정보 빅데이터 분석을 통한 판매 예측 시스템
판매정보 빅데이터 분석을 통한 판매 예측 시스템판매정보 빅데이터 분석을 통한 판매 예측 시스템
판매정보 빅데이터 분석을 통한 판매 예측 시스템Dongsam Byun
 

More from Dongsam Byun (6)

오피니언마이닝에 기반한 주식 자동 매매 시스템
오피니언마이닝에 기반한 주식 자동 매매 시스템오피니언마이닝에 기반한 주식 자동 매매 시스템
오피니언마이닝에 기반한 주식 자동 매매 시스템
 
화이트박스 테스팅
화이트박스 테스팅화이트박스 테스팅
화이트박스 테스팅
 
Ethash : Ethereum PoW Algorithm
Ethash : Ethereum PoW AlgorithmEthash : Ethereum PoW Algorithm
Ethash : Ethereum PoW Algorithm
 
음성인식 및 웹 기반 어플리케이션을 통한 유비쿼터스 스마트홈 제어
음성인식 및 웹 기반 어플리케이션을 통한 유비쿼터스 스마트홈 제어음성인식 및 웹 기반 어플리케이션을 통한 유비쿼터스 스마트홈 제어
음성인식 및 웹 기반 어플리케이션을 통한 유비쿼터스 스마트홈 제어
 
QR코드 스캔에 기초한 보안 결제 시스템
QR코드 스캔에 기초한 보안 결제 시스템QR코드 스캔에 기초한 보안 결제 시스템
QR코드 스캔에 기초한 보안 결제 시스템
 
판매정보 빅데이터 분석을 통한 판매 예측 시스템
판매정보 빅데이터 분석을 통한 판매 예측 시스템판매정보 빅데이터 분석을 통한 판매 예측 시스템
판매정보 빅데이터 분석을 통한 판매 예측 시스템
 

Recently uploaded

Basic Principle of Electrochemical Sensor
Basic Principle of  Electrochemical SensorBasic Principle of  Electrochemical Sensor
Basic Principle of Electrochemical SensorTanvir Moin
 
دليل تجارب الاسفلت المختبرية - Asphalt Experiments Guide Laboratory
دليل تجارب الاسفلت المختبرية - Asphalt Experiments Guide Laboratoryدليل تجارب الاسفلت المختبرية - Asphalt Experiments Guide Laboratory
دليل تجارب الاسفلت المختبرية - Asphalt Experiments Guide LaboratoryBahzad5
 
nvidia AI-gtc 2024 partial slide deck.pptx
nvidia AI-gtc 2024 partial slide deck.pptxnvidia AI-gtc 2024 partial slide deck.pptx
nvidia AI-gtc 2024 partial slide deck.pptxjasonsedano2
 
How to Write a Good Scientific Paper.pdf
How to Write a Good Scientific Paper.pdfHow to Write a Good Scientific Paper.pdf
How to Write a Good Scientific Paper.pdfRedhwan Qasem Shaddad
 
Technology Features of Apollo HDD Machine, Its Technical Specification with C...
Technology Features of Apollo HDD Machine, Its Technical Specification with C...Technology Features of Apollo HDD Machine, Its Technical Specification with C...
Technology Features of Apollo HDD Machine, Its Technical Specification with C...Apollo Techno Industries Pvt Ltd
 
cloud computing notes for anna university syllabus
cloud computing notes for anna university syllabuscloud computing notes for anna university syllabus
cloud computing notes for anna university syllabusViolet Violet
 
sdfsadopkjpiosufoiasdoifjasldkjfl a asldkjflaskdjflkjsdsdf
sdfsadopkjpiosufoiasdoifjasldkjfl a asldkjflaskdjflkjsdsdfsdfsadopkjpiosufoiasdoifjasldkjfl a asldkjflaskdjflkjsdsdf
sdfsadopkjpiosufoiasdoifjasldkjfl a asldkjflaskdjflkjsdsdfJulia Kaye
 
Multicomponent Spiral Wound Membrane Separation Model.pdf
Multicomponent Spiral Wound Membrane Separation Model.pdfMulticomponent Spiral Wound Membrane Separation Model.pdf
Multicomponent Spiral Wound Membrane Separation Model.pdfGiovanaGhasary1
 
solar wireless electric vechicle charging system
solar wireless electric vechicle charging systemsolar wireless electric vechicle charging system
solar wireless electric vechicle charging systemgokuldongala
 
IT3401-WEB ESSENTIALS PRESENTATIONS.pptx
IT3401-WEB ESSENTIALS PRESENTATIONS.pptxIT3401-WEB ESSENTIALS PRESENTATIONS.pptx
IT3401-WEB ESSENTIALS PRESENTATIONS.pptxSAJITHABANUS
 
Engineering Mechanics Chapter 5 Equilibrium of a Rigid Body
Engineering Mechanics  Chapter 5  Equilibrium of a Rigid BodyEngineering Mechanics  Chapter 5  Equilibrium of a Rigid Body
Engineering Mechanics Chapter 5 Equilibrium of a Rigid BodyAhmadHajasad2
 
GENERAL CONDITIONS FOR CONTRACTS OF CIVIL ENGINEERING WORKS
GENERAL CONDITIONS  FOR  CONTRACTS OF CIVIL ENGINEERING WORKS GENERAL CONDITIONS  FOR  CONTRACTS OF CIVIL ENGINEERING WORKS
GENERAL CONDITIONS FOR CONTRACTS OF CIVIL ENGINEERING WORKS Bahzad5
 
A Seminar on Electric Vehicle Software Simulation
A Seminar on Electric Vehicle Software SimulationA Seminar on Electric Vehicle Software Simulation
A Seminar on Electric Vehicle Software SimulationMohsinKhanA
 
SATELITE COMMUNICATION UNIT 1 CEC352 REGULATION 2021 PPT BASICS OF SATELITE ....
SATELITE COMMUNICATION UNIT 1 CEC352 REGULATION 2021 PPT BASICS OF SATELITE ....SATELITE COMMUNICATION UNIT 1 CEC352 REGULATION 2021 PPT BASICS OF SATELITE ....
SATELITE COMMUNICATION UNIT 1 CEC352 REGULATION 2021 PPT BASICS OF SATELITE ....santhyamuthu1
 
The relationship between iot and communication technology
The relationship between iot and communication technologyThe relationship between iot and communication technology
The relationship between iot and communication technologyabdulkadirmukarram03
 
Graphics Primitives and CG Display Devices
Graphics Primitives and CG Display DevicesGraphics Primitives and CG Display Devices
Graphics Primitives and CG Display DevicesDIPIKA83
 
Power System electrical and electronics .pptx
Power System electrical and electronics .pptxPower System electrical and electronics .pptx
Power System electrical and electronics .pptxMUKULKUMAR210
 
SUMMER TRAINING REPORT ON BUILDING CONSTRUCTION.docx
SUMMER TRAINING REPORT ON BUILDING CONSTRUCTION.docxSUMMER TRAINING REPORT ON BUILDING CONSTRUCTION.docx
SUMMER TRAINING REPORT ON BUILDING CONSTRUCTION.docxNaveenVerma126
 

Recently uploaded (20)

Basic Principle of Electrochemical Sensor
Basic Principle of  Electrochemical SensorBasic Principle of  Electrochemical Sensor
Basic Principle of Electrochemical Sensor
 
دليل تجارب الاسفلت المختبرية - Asphalt Experiments Guide Laboratory
دليل تجارب الاسفلت المختبرية - Asphalt Experiments Guide Laboratoryدليل تجارب الاسفلت المختبرية - Asphalt Experiments Guide Laboratory
دليل تجارب الاسفلت المختبرية - Asphalt Experiments Guide Laboratory
 
nvidia AI-gtc 2024 partial slide deck.pptx
nvidia AI-gtc 2024 partial slide deck.pptxnvidia AI-gtc 2024 partial slide deck.pptx
nvidia AI-gtc 2024 partial slide deck.pptx
 
Lecture 2 .pdf
Lecture 2                           .pdfLecture 2                           .pdf
Lecture 2 .pdf
 
How to Write a Good Scientific Paper.pdf
How to Write a Good Scientific Paper.pdfHow to Write a Good Scientific Paper.pdf
How to Write a Good Scientific Paper.pdf
 
Technology Features of Apollo HDD Machine, Its Technical Specification with C...
Technology Features of Apollo HDD Machine, Its Technical Specification with C...Technology Features of Apollo HDD Machine, Its Technical Specification with C...
Technology Features of Apollo HDD Machine, Its Technical Specification with C...
 
cloud computing notes for anna university syllabus
cloud computing notes for anna university syllabuscloud computing notes for anna university syllabus
cloud computing notes for anna university syllabus
 
sdfsadopkjpiosufoiasdoifjasldkjfl a asldkjflaskdjflkjsdsdf
sdfsadopkjpiosufoiasdoifjasldkjfl a asldkjflaskdjflkjsdsdfsdfsadopkjpiosufoiasdoifjasldkjfl a asldkjflaskdjflkjsdsdf
sdfsadopkjpiosufoiasdoifjasldkjfl a asldkjflaskdjflkjsdsdf
 
Multicomponent Spiral Wound Membrane Separation Model.pdf
Multicomponent Spiral Wound Membrane Separation Model.pdfMulticomponent Spiral Wound Membrane Separation Model.pdf
Multicomponent Spiral Wound Membrane Separation Model.pdf
 
solar wireless electric vechicle charging system
solar wireless electric vechicle charging systemsolar wireless electric vechicle charging system
solar wireless electric vechicle charging system
 
IT3401-WEB ESSENTIALS PRESENTATIONS.pptx
IT3401-WEB ESSENTIALS PRESENTATIONS.pptxIT3401-WEB ESSENTIALS PRESENTATIONS.pptx
IT3401-WEB ESSENTIALS PRESENTATIONS.pptx
 
Engineering Mechanics Chapter 5 Equilibrium of a Rigid Body
Engineering Mechanics  Chapter 5  Equilibrium of a Rigid BodyEngineering Mechanics  Chapter 5  Equilibrium of a Rigid Body
Engineering Mechanics Chapter 5 Equilibrium of a Rigid Body
 
GENERAL CONDITIONS FOR CONTRACTS OF CIVIL ENGINEERING WORKS
GENERAL CONDITIONS  FOR  CONTRACTS OF CIVIL ENGINEERING WORKS GENERAL CONDITIONS  FOR  CONTRACTS OF CIVIL ENGINEERING WORKS
GENERAL CONDITIONS FOR CONTRACTS OF CIVIL ENGINEERING WORKS
 
A Seminar on Electric Vehicle Software Simulation
A Seminar on Electric Vehicle Software SimulationA Seminar on Electric Vehicle Software Simulation
A Seminar on Electric Vehicle Software Simulation
 
SATELITE COMMUNICATION UNIT 1 CEC352 REGULATION 2021 PPT BASICS OF SATELITE ....
SATELITE COMMUNICATION UNIT 1 CEC352 REGULATION 2021 PPT BASICS OF SATELITE ....SATELITE COMMUNICATION UNIT 1 CEC352 REGULATION 2021 PPT BASICS OF SATELITE ....
SATELITE COMMUNICATION UNIT 1 CEC352 REGULATION 2021 PPT BASICS OF SATELITE ....
 
The relationship between iot and communication technology
The relationship between iot and communication technologyThe relationship between iot and communication technology
The relationship between iot and communication technology
 
Graphics Primitives and CG Display Devices
Graphics Primitives and CG Display DevicesGraphics Primitives and CG Display Devices
Graphics Primitives and CG Display Devices
 
Power System electrical and electronics .pptx
Power System electrical and electronics .pptxPower System electrical and electronics .pptx
Power System electrical and electronics .pptx
 
SUMMER TRAINING REPORT ON BUILDING CONSTRUCTION.docx
SUMMER TRAINING REPORT ON BUILDING CONSTRUCTION.docxSUMMER TRAINING REPORT ON BUILDING CONSTRUCTION.docx
SUMMER TRAINING REPORT ON BUILDING CONSTRUCTION.docx
 
Présentation IIRB 2024 Marine Cordonnier.pdf
Présentation IIRB 2024 Marine Cordonnier.pdfPrésentation IIRB 2024 Marine Cordonnier.pdf
Présentation IIRB 2024 Marine Cordonnier.pdf
 

Ethereum A to Z

  • 2. Ethereum - Mining Pool https://etherscan.io/stat/miner?range=7&blocktype=blocks f2pool
  • 3. Ethereum - Node info • 17.09.17 22 • Geth : 70% • Parity : 19% • Swarm : 6% • https://ethernodes.org/network/1 Geth Parity swarm 1.7.0 1.6.7 1.6.6
  • 5. Ethereum - Market Capitalization
  • 6. • startGas = gas limit • startGas is the term in the Ethereum White Paper • gasLimit is the term in the Ethereum Yellow Paper, • software, such as Geth and web3.js, simply uses the term “gas”. • gas Price 
 - Gas https://media.consensys.net/ethereum-gas-fuel-and-fees-3333e17fe1dc
  • 7. - ( MyEtherWallet, MetaMask ) • Gas Price, Gas Limit
  • 9. -
  • 10. - 1. , . 2. =STARTGAS * GASPRICE . 
 Sender NONCE +1. 3. GAS=STARTGAS 
 1 5Gas . 4. . 
 . 
 smart contract , . 
 . 5. , , .
 6. , . APPLY(S, TX) -> S’
  • 14. Appendix - Merkle Tree https://brilliant.org/wiki/merkle-tree/ https://bitcoin.org/en/developer-reference#merkle-trees
  • 15. Appendix - Patricia Tree https://ethereum.stackexchange.com/questions/6415/eli5-how-does-a-merkle-patricia-trie-tree-work
  • 16. Appendix - Merkle Patricia Tree https://ethereum.stackexchange.com/questions/6415/eli5-how-does-a-merkle-patricia-trie-tree-work
  • 30. - Code Execution, EVM • (EVM: Ethereum Virtual Machine): 
 
 
 (state) 
 
 network, filesystem, 
 , Smart contract ( Library, Deligatecall ) • 1. : LIFO(Last-In-First-Out) value push pop . 2. : 3. : Key/value (simpleDB). • , , .
  • 31. 1 ASIC resistance hashrate 2 Light client verifiability Hasimoto : ASIC resistance, IO-bound, making memory read Dagger : memory-hard computation, but easy validation
 ( by Vitalic Buterin) , Dagger Dagger Hasimoto Ethash 30,000 1GB PoW hash - PoW, Mining Centralization
  • 33. // datasetSizes is a lookup table for the ethash dataset size for the first 2048 // epochs (i.e. 61440000 blocks). var datasetSizes = []uint64{ 1073739904, 1082130304, 1090514816, 1098906752, 1107293056, 1115684224, 1124070016, 1132461952, 1140849536, 1149232768, 1157627776, 1166013824, 1174404736, 1182786944, 1191180416, 1199568512, 1207958912, 1216345216, 1224732032, 1233124736, 1241513344, 1249902464, 1258290304, 1266673792, 1275067264, 1283453312, 1291844992, 1300234112, 1308619904, 1317010048, 1325397376, 1333787776, 1342176128, 1350561664, 1358954368, 1367339392, 1375731584, 1384118144, 1392507008, 1400897408, 1409284736, 1417673344, 1426062464, 1434451072, 1442839168, 1451229056, 1459615616, 1468006016, 1476394112, 1484782976, 1493171584, 1501559168, 1509948032, 1518337664, 1526726528, 1535114624, 1543503488, 1551892096, 1560278656, 1568669056, 1577056384, 1585446272, 1593831296, 1602219392, 1610610304, 1619000192, 1627386752, 1635773824, 1644164224, 1652555648, … // datasetSize calculates and returns the size of the ethash mining dataset that // belongs to a certain block number. The dataset size grows linearly, however, we // always take the highest prime below the linearly growing threshold in order to // reduce the risk of accidental regularities leading to cyclic behavior. func datasetSize(block uint64) uint64 { // If we have a pre-generated value, use that epoch := int(block / epochLength) // ex) 4,240,505 / 30,000 == 141 if epoch < len(datasetSizes) { // 2048 return datasetSizes[epoch] } // No known dataset size, calculate manually (sanity branch only) size := uint64(datasetInitBytes + datasetGrowthBytes*uint64(epoch) - mixBytes) for !new(big.Int).SetUint64(size / mixBytes).ProbablyPrime(1) { // Always accurate for n < 2^64 size -= 2 * mixBytes } return size } - PoW, Mining Centralization
  • 34. Smart Contract • Github • ERC-20 • EIP • ERC-20 • Zeppelin example • Token, •
  • 40. Ethereum Github - Wiki https://github.com/ethereum/wiki/wiki/White-Paper
  • 41. Ethereum Github - Wiki https://github.com/ethereum/wiki/wiki/[Korean]-White-Paper
  • 42. Ethereum Github - Wiki https://github.com/ethereum/wiki/wiki/[Korean]-White-Paper
  • 43. Ethereum Github - Wiki https://github.com/ethereum/wiki/wiki/[Korean]-White-Paper
  • 44. Ethereum Github - pyethereum https://github.com/ethereum/pyethereum
  • 46. Ethereum Github - Contribution ( Buterin )
  • 47. Ethereum - research • python PoC( proof of concept ) • pyethereum -> go-ethereum(geth) • sharding, casper
  • 48. Ethereum Github - sharding https://github.com/ethereum/sharding
  • 49. raiden-network Github - raiden https://github.com/raiden-network/raiden
  • 50. Ethereum Github - EIP https://github.com/ethereum/EIPs
  • 51. Ethereum Github - ERC https://github.com/ethereum/EIPs/issues/16 https://ko.wikipedia.org/wiki/RFC ERC : Ethereum RFC 

  • 52. Ethereum Github - ERC ERC : Ethereum RFC(Request for Comments)
 Popular RFCs • HTTP/1.1 Protocol - RFC 2616 • Uniform Resource Locator URL - RFC 1738 • TCP Protocol - RFC 793 • Transport Layer Security Protocol - RFC 5246 • eMail - RFC 2822 • SMTP Protocol - RFC 5321 • SIP Protocol - RFC 3261 • FTP Protocol - RFC 959 • RTP Protocol - RFC 3550 https://github.com/ethereum/EIPs/issues/16 https://ko.wikipedia.org/wiki/RFC https://tools.ietf.org/html/rfc2616
  • 53. Ethereum Github - ERC https://github.com/ethereum/EIPs/issues
  • 55. Smart Contract - ERC-20 https://github.com/ethereum/EIPs/issues/20 Smart contract a b
  • 56. Smart Contract - ERC-20 https://github.com/ethereum/EIPs/issues/20
  • 57. Smart Contract - ERC-20 ? EIP-20? https://github.com/ethereum/EIPs/blob/master/EIPS/eip-20-token-standard.md
  • 58. Smart Contract - zeppelin example
  • 59. Smart Contract - , Token
  • 60. Smart Contract - , Token
  • 61. Smart Contract - , Token
  • 62. Smart Contract - , Token
  • 63. Smart Contract - , Token
  • 64. Smart Contract - , Token
  • 65. Smart Contract - , Token
  • 66. Smart Contract - , Token
  • 67. Smart Contract - Security • DAO ( 2016.06 ) DAO smart contract ( ) 
 2 , 
 
 blockchain , 
 , transaction block chain hard fork 
 
 hard fork ( ) Ethereum Classic • DoS ( 2016.09 ) DoS 
 
 
 
 gas Hard fork • PARITY smart contract 
 
 Parity Multisig Wallet Edgeless, Swarm City, æternity ICO Wallet 150,000 ETH 
 initWallet public 
 Parity Multisig Wallet Smart contract
  • 68. Smart Contract - Security, Bug Bounty
  • 69. Smart Contract - Random EVM Smart Contract Random Random Seed EVM Contract EVM , Seed Random ex) block timestamp, block height , smart contract random seed smart contract 
 EVM
  • 70. Smart Contract - Oracle Smart contract Oracle
 
 ex) Prediction Market, score
 , ETH 
 
 
 Oraclize API
  • 71. Ethereum Scalability Raiden Network Lightning Network Sharding Metropolis Plasma ?Casper
  • 73. Metropolis • Vitaliks latest thinking on transition to PoS: • PoW -> PoW with PoS "on top" -> Hybrid PoW/PoS -> PoS • Stages: • 1. PoS would finalize blocks after PoW has de facto finalized them anyway. • 2. After a couple of month: implement clients that favor PoS. • 3. Cut down PoW block reward, increase PoS validator reward. • 4. Hybrid PoS scheme parametrize between PoW and PoS at 0-100 scale
  • 74. Metropolis Block , 
 PoS ( Casper ) , 
 
 , 5->3 
 
 (Byzantium) -> 17.09.18 (Constantinople) -> 18
  • 75. Metropolis EIP 86 (“abstraction”) •  Make the protocol as simple as possible •  Any account in the call execution chain can pay for gas •  Instead of only the account that sent the transaction •  A recipient, or middle account, could pay the gas cost •  Helps anonymization, instead of needing to use only one account to pay for gas EIP 98 (removal of intermediate state roots) •  Goal: Make it easier to process transactions in parallel EIP 96 (EVM-ification) •  Try to make light clients more secure EIP 100 (target block time including uncles) •  Security upgrades EIP 101 (big integer precompile) •  Make it easier to verify certain types of cryptography •  Ethereum supports elliptic curve cryptography •  RSA encryption is used by others, and is currently computationally inefficient to verify in Ethereum EIP 116 (STATIC_CALL) •  Under consideration •  Can call a contract and be sure you’re not changing anything; not writing to the state EIP 195 (Pure call) •  Even more static version of STATIC CALL •  Can’t write or read EIP 140 (throw opcode) •  Throws an exception without consuming all remaining gas EIP 141 (invalid opcode)
  • 76. Metropolis EIP 86 (“abstraction”) •  Make the protocol as simple as possible •  Any account in the call execution chain can pay for gas •  Instead of only the account that sent the transaction •  A recipient, or middle account, could pay the gas cost •  Helps anonymization, instead of needing to use only one account to pay for gas EIP 98 (removal of intermediate state roots) •  Goal: Make it easier to process transactions in parallel
  • 77. Metropolis - Byzantium fork ( 10 ) • Geth 1.7 – Megara • EIP 98: Removal of intermediate state roots from receipts (#14750). • Expanded by EIP 658: Embedding transaction return data in receipts (#15014). • EIP 100: Change difficulty adjustment to target mean block time including uncles (#14733). • EIP 198, EIP 212 (197) and EIP 213 (196): Precompiled contracts for modular exponentiation; elliptic curve addition, scalar multiplication and pairing (#14959, #14993). • EIP 214 (116): Expanding the EVM with static contract calls (#14978). • EIP 211: Expanding the EVM with dynamically sized return data (#14981). • EIP 206 (140): Expanding the EVM with cheap state revertals (#14983). • EIP 649: Delaying the difficulty bomb and reducing the block reward (#15028). • EIP 684: Preventing overwriting contracts (Byzantium prep) (#15039). https://blog.ethereum.org/2017/09/14/geth-1-7-megara/
  • 78. Serenity serenity, Ethereum 2.0, with 4 primary research directions: 1. casper, the proof-of-stake algorithm. 2. scalability, by processing transactions in parallel and moving away from the paradigm where every node in the network has to absolutely process every transaction. 3. zkSNARK, addressing privacy. 4. Upgrading the evm (Ethereum Virtual Machine).
  • 79. Ethereum Scalability Sharding Raiden Network (lighting network) Plasma
  • 80. Ethereum Scalability - Sharding https://github.com/ethereum/wiki/wiki/Sharding-FAQ 0x1 0x2 0x3 0x4 … Challenges Cross shard communication
 Single-shard takeover attacks Fraud detection …
  • 81. https://lightning.network/ Ethereum Scalability - Raiden Network https://raiden.network
  • 82. • Bitcoin Lightning Network • ERC-20 Token https://lightning.network/ Ethereum Scalability - Raiden Network https://raiden.network
  • 83. Ethereum Scalability - Raiden Network https://raiden.network/101.html
  • 84. Ethereum Scalability - Raiden Network https://answers.thenextweb.com/s/vitalik-buterin-13gxQB
  • 85. Ethereum Scalability - Plasma Plasma: Scalable Autonomous Smart Contracts Joseph Poon and Vitalik Buterin https://medium.com/chain-cloud-company-blog/plasma-in-10-minutes-c856da94e339 http://plasma.io Lightning Network
  • 90. Ethereum Scalability - Raiden Network https://raiden.network
  • 92. Ethereum Test Network • Etherscan Testnet
  • 93. Appendix - bitcoin vs ethereum
  • 94. Appendix - SHA-3 ( Keccak )
  • 95. Appendix - SHA-3 ( Keccak )
  • 96. // fnv is an algorithm inspired by the FNV hash, which in some cases is used as // a non-associative substitute for XOR. Note that we multiply the prime with // the full 32-bit input, in contrast with the FNV-1 spec which multiplies the // prime with one byte (octet) in turn. func fnv(a, b uint32) uint32 { return a*0x01000193 ^ b // ^ == xor } // fnvHash mixes in data into mix using the ethash fnv method. func fnvHash(mix []uint32, data []uint32) { for i := 0; i < len(mix); i++ { mix[i] = mix[i]*0x01000193 ^ data[i] } } FNV (Fowler/Noll/Vo) is a fast, non-cryptographic hash algorithm with good dispersion FNV hashes are designed to be fast while maintaining a low collision rate. The FNV speed allows one to quickly hash lots of data while maintaining a reasonable collision rate. The high dispersion of the FNV hashes makes them well suited for hashing nearly identical strings such as URLs, hostnames, filenames, text, IP addresses, etc. Appendix - fnv ( FNV hash )
  • 97. - Prev Hash : (parent hash) Nonce : 64 , Timestamp : time() Uncles Hash(ommer hash) : SHA-3 (256 ) / ommer " " Uncle Beneficiary : (fees) 160 Logs Bloom : ( ) ( ) Difficulty : Extra Data : Block Num Gas Limit Gas Used Mix Hash : 256 State Root : (SHA-3 ) Transaction Root : (SHA-3 ) Receipt Root : (SHA-3 )