1. SCVSoft : Benajmin Hyokeun Oh
주식회사 에스씨브이소프트
Ethereum 2.0
And Deposit Contract
2. Whoami
Benjamin Hyokeun Oh (오효근)
CEO of SCVSoft
• Hanyang Univ. majoring CSE
• Best of the Best 4th,
Vulnerability Research Track
• CodeEngn Conference 12
(2015)
• Inc0gnito 2015/2016 Speaker
• (주)Doobit ex-CDO For more info : www.benjioh5.com
1/50
3. - NOT the Space Contruct Vehicle!
- Security & Cryptocurrency Venture
- B2B w/ R&D, auditing, consulting based company
- first B2C product (ACHER) will be lauching at 2019 Q4 or 2020 Q1
For more info : www.scvsoft.net
2/50
SCVSoft
4. - No one in Korea talks about deposit phase's importance (Really?)
- There are lots of description about FFG, CBC, Chasper, and Beacon Chain.
BUT there are few article on deposit contract.
- Want to say there are extensible way to ERC-20 deposit/withdrawal activity.
- ACHER -our first B2C project- has deposit/withdrawal action on smart contract by Call
and DelegateCall. I can be adopted every another new contract!
Why I choose deposit contract?
3/50
5. - Ethereum 2.0 has 3 Phases for PoW to fully PoS support (or more phases?)
- Each phase, Beacon Chain and shards get more feature of ETH 1.0 Chain.
- Then Why PoS is needed for Ethereum 2.0?
- More fast and decentralized chain will be made
- More power efficient to make system working than PoW
Eth2.0 & Pos & Deposit &…
4/50
6. - Then, What is Proof of Staking?
- Kind of betting or deposit for making new block.
- Who use PoS?
- QTUM, EOS, and so on...
- Any difference btw ordinary PoS?
- FFG is totally different from other PoS Algorithm.
Eth2.0 & Pos & Deposit &…
5/50
7. - Then how to stake Ethereum in Eth1.0 Chain?
- Using deposit contract. Send adjust amount Ethereum to deposit contract.
- How to withdraw it?
- There are no way until Phase 2. Sending Ethereum to deposit contract is one way trip.
- All Ethereum send to deposit contract is only usable on Beacon chain. There is no
turning back.
- Q : Is it a risk factor? A : Maybe
Eth2.0 & Pos & Deposit &…
6/50
8. - Then how to stake Ethereum in Eth1.0 Chain?
- Using deposit contract. Send adjust amount Ethereum to deposit contract.
- How to withdraw it?
- There are no way until Phase 2. Sending Ethereum to deposit contract is one way trip.
- All Ethereum send to deposit contract is only usable on Beacon chain. There is no
turning back.
- Q : Is it a risk factor? A : Maybe
Eth2.0 & Pos & Deposit &…
7/50
9. - Made by Vyper
- Using @Payable decorator to deposit Ethereum
- Using Merkle Tree to store data ( > 4.2 Billion deposit data)
- About 110 line of vyper code makes fully deposit contract for the beacon chain
Deposit contract
8/50
10. - Made by Vyper
- Using @Payable decorator to deposit Ethereum
- Using Merkle Tree to store data ( > 4.2 Billion deposit data)
- About 110 line of vyper code makes fully deposit contract for the beacon chain
Deposit contract
9/50
11. - Made by Vyper
- Using @Payable decorator to deposit Ethereum
- Using Merkle Tree to store data ( > 4.2 Billion deposit data)
- About 110 line of vyper code makes fully deposit contract for the beacon chain
Deposit contract
10/50
12. - Made by Vyper
- Using @Payable decorator to deposit Ethereum
- Using Merkle Tree to store data ( > 4.2 Billion deposit data)
- About 110 line of vyper code makes fully deposit contract for the beacon chain
Deposit contract
11/50
13. - Made by Vyper
- Using @Payable decorator to deposit Ethereum
- Using Merkle Tree to store data ( > 4.2 Billion deposit data)
- About 110 line of vyper code makes fully deposit contract for the beacon chain
Deposit contract
12/50
14. - It takes too long time to describe it. I'll say very little of it.
- It's data structure which can extend data with very low cost and lower time.
- Lots of bit operations and hashing is main thing of merkle tree.
- 32 depth == 2^32 depositable address == 4,294,967,295 Address!
- 2^(32-1) == 2,147,483,648 Address!
- Then 2^32 * 192 Byte == 824,633,720,832 Byte???
- > 824GB ??
Merkle tree in deposit contract
13/50
15. - No!
- (2^32 + 2^31 + 2^30 + ... + 2^1 + 2^0) * 32 Byte (SHA256) == 274,877,906,912 Byte
- < 275 GB (...?) for 4,294,967,295 Address!
- Well.... It's efficient than old one.... Hmm...
- Merkle Tree grows when new data is added. So, must has lesser size than 275GB
- (2^([log_2(n)]+1) - 1) * 32 Byte < 32 * n Byte will be size of merkle tree.
Merkle tree in deposit contract
14/50
16. - There are more efficient way to do it. isn't it?
- Yes. Let's see the code.
Merkle tree in deposit contract
15/50
17. - There are more efficient way to do it. isn't it?
- Yes. Let's see the code.
Merkle tree in deposit contract
16/50
31. Token can be send to the smartcontract
(actually ERC20 smart contract's data is updated,
and doesn't care about address type)
Sample Solidity w/ SCVToken
30/50
42. - Using call and delegatecall, there are way to DEPOSIT & WITHDRAW ERC20 Tokens.
- Actually, ERC721, ERC1155 would works too.
- So, We can construct one way trip to another chain or smart contract based asset
management!
- But If ERC20 Contract has function which force A to B transfer by admin, there are some
problem on deposit or staking. :(
- Actually, Ethereum transfer and ERC20 transfer can be never same thing.
- But there are way to mock staking and desposit system.
Sample Solidity w/ SCVToken
41/50
43. - No one in Korea talks about deposit phase's importance (Really?)
- There are lots of description about FFG, CBC, Chasper, and Beacon Chain.
BUT there are few article on deposit contract.
- Want to say there are extensible way to ERC-20 deposit/withdrawal activity.
- ACHER -our first B2C project- has deposit/withdrawal action on smart contract by Call
and DelegateCall. I can be adopted every another new contract!
Sample Solidity w/ SCVToken
42/50
44. - No one in Korea talks about deposit phase's importance (Really?)
- There are lots of description about FFG, CBC, Chasper, and Beacon Chain
BUT there are few article on deposit contract.
- Want to say there are extensible way to ERC-20 deposit/withdrawal activity.
- ACHER -our first B2C project- has deposit/withdrawal action on smart contract by
Call and DelegateCall. It can be adopted every another new contract!
Sample Solidity w/ SCVToken
43/50
46. - ACHER -our first B2C project- has deposit/withdrawal action on smart contract by
Call and DelegateCall. It can be adopted every another new contract!
- Identification through smart contract which is called ERC-725 is used for DID and multi
support of EOA.
- Present day, Our Goal is using smart contract for Deposit and Withdrawal of any type of
asset in Blockchain.
- Using Depositable smart contract, BLOCKCHAIN WOULD BE MORE EASIER
ACHER
45/50
47. ACHER : Identification on blockchain
User
Signature Checking
& Authorization
Get Authority Info
Private Key
KYC
Digital Signature
Identification
Crypto Wallet
OAuth2
FIDO2
END Service
ERC-725
ERC-1484
Smart Contract
Service Blockchain Stack
46/50
48. KYC
Digital Signature
Identification
Crypto Wallet
OAuth2
FIDO2
END Service
Browser Extension
(e.g. Metamask)
iOS
Android App
Dapp
(Centralized)
Auth Server
IPFS/
Swarm
decentralize
SDK (js/python)
Service Blockchain Stack
ERC-725
ERC-1484
Smart Contract
ACHER : Identification on blockchain
47/50
49. KYC
Digital Signature
Identification
Crypto Wallet
OAuth2
FIDO2
END Service
Browser Extension
(e.g. Metamask)
iOS
Android App
Dapp
(Centralized)
Auth Server
IPFS/
Swarm
Service Blockchain Stack
ERC-725
ERC-1484
Smart Contract
B2B Part
ACHER : Identification on blockchain
decentralize
SDK (js/python)
48/50
50. KYC
Digital Signature
Identification
Crypto Wallet
OAuth2
FIDO2
END Service
Browser Extension
(e.g. Metamask)
iOS
Android App
Dapp
IPFS/
Swarm
Service Blockchain Stack
ERC-725
ERC-1484
Smart Contract
B2C Part
ACHER : Identification on blockchain
decentralize
SDK (js/python)
(Centralized)
Auth Server
49/50