SlideShare a Scribd company logo
Building the new
web with
self-sovereign
identity
Hyungsuk Kang
Mail: hskang9@gmail.com Twitter: @hskang0525
자기소개
Research Assistant in SKKU IoT Lab(‘15)
Keras Korea Admin(‘16)
Ethereum DevconIV scholar(‘18)
Open-source projects: spectrum, peer-eth
Current Ambassador in W3F, contributer in SpeckleOS(‘19)
Publication: Secure DNS name autoconfiguration for IPv6 internet-of-things(SDNSNA)
Interests: open source, p2p, crypto, wasm, DID
Current Works
웹3
웹 1.0: 정보를 읽는 게 전부(read-only) -> Search engines들이
생겨남(e.g. Google, Yahoo, Netscape, etc)
웹 2.0: 정보를 읽고 쓰는 상호작용이 가능해짐(read-write) ->
SNS, 플랫폼이 생성됨(e.g. Facebook, Uber, Reddit, Yelp, etc)
웹 3.0: 정보에 읽고 쓰고 신뢰를 가지게 됨 -> Payment
ledger(e.g. Bitcoin, Ripple, Dai), Smart Contract(e.g.
Ethereum), ID(uport, iden3)
Web3.0 Ecosystem
Substrate
기능에 집중하여 만들 수 있는 블록체인 SDK
이미 만들어진 기반들(elliptic curve/hash, stateDB, rlp, p2p
프로토콜 걱정 끝!)
매우 높은 자유도(state model, transaction, 모두 마음대로
설정 가능 ex) UTXO, Zexe)
다양한 개발 언어(wasm을 사용해서 Rust, C/C++, C#, Go, 등
사용가능)
PoW가 아닌 PoS 🚀
Consensus
Parachain: Nominated Proof of Stake(NPoS) + GRANPA
NPoS는 DPoS 와 달리 validator끼리 차등을 두지 않고
GRANPA로 finality 결정
more details
Relay Chain: upcoming
Polkadot Network
Shared Security Platform
블록체인들을 이어주는 relay chain
마이닝 파워 공유 -> 공유되는 보안 및 scalability
Interoperability, governance 지향
이더리움 bridge:
Workshop Agenda
들어가기 전에: 사전지식
러스트 개발 경험이 있어야 합니다.
UNIX 기반 운영체제에서 개발하는 것을 추천합니다.
만약 해당 운영체제가 아닐 경우 AWS나 Docker를 사용하는
것을 추천합니다.
AWS:
계정 만들고 인스턴스에 접속할 ssh key 만들기
IAM access key 만들기
개발할 때 쓰는 툴들
Terraform
AWS
Git
Cargo
Module 1: Substrate quickstart
목표: 런타임 모듈을 이용하여 래플 기능에 필요한 블록체인을
만들어보자.
목차:
- 설치 및 실행
- 인터랙션
- Substrate UI
Module 2: Deep dive on runtime
module
목표: 런타임 모듈에 대해 좀 더 자세히 알아본 뒤 나만의
블록체인 Immutable State Machine을 만들어보자.
목차:
- 런타임 모듈이란?
- 데이터모델 만들기
- 더 알아보기
런타임 모듈이란?
런타임 모듈은 블록체인 메인넷을 개발할 때 하나하나
컴포넌트 마다 일일이 개발할 필요없이 미리 만들어 놓은
모듈들을 말한다.
이러한 모듈들을 이용해서 나만의 state model이나 tx logic을
만들어서 맞춤형 블록체인이 제작가능하다.
State model을 예를 들자면 비트코인의 utxo, 이더리움의
account model 등이 있다.
예시
UTXO workshop
https://github.com/nczhu/utxo-workshop
Zerochain(Zether on substrate)
https://github.com/LayerXcom/zero-chain
개발
Github: www.github.com/speckleos/Ethcon-korea/module2
Module3: Parity ink!
목표: 웹어셈블리 스마트 컨트랙트 언어인 Parity ink를
이용해서 ERC20토큰 만들기
Agenda:
- Parity Ink
- 스마트 컨트랙트 제작
- 인터랙션
그래서 디앱만 만들고 싶다고요?
빠른 개발기간
Good old ethereum 어카운트 모델에서 블록체인을 운영하고
싶어요
Parity Ink!
Rust로 된 Wasm 스마트 컨트랙트 언어 by Paritytech
다른 언어로는 Commonwealth labs가 진행하는 edgware에서
제공하는 언어들, opennetsys에서 지원하는 언어들(Go,
python, C/C++, etc), Soramitsu의 kagome에서 지원하는 언어
등이 있음.
설치 및 실행
Github: www.github.com/speckleos/Ethcon-korea/module1
Let’s buidl!
우리가 만들 것
Flipper blockchain by Gavin Wood(“Creating a custom
substrate chain”)
- Pot이라는 storage를 만들고
- 동전 던지기를 구현해본 다음
- 이기면 돈을 얻거나
지면 돈을 가져가는 블록체인을 만듭니다.
Substrate 설치
로컬환경이나 AWS에서 서브스트레이트를 설치해주세요.
로컬:
https://github.com/SpeckleOS/Ethcon-korea/edit/master/module1/1.md
클라우드(AWS):
EC2 생성 ssh 가져오기
terraform file
서브스트레이트 설치
substrate-node-new substrate-node-template <제작자 이름>
substrate-ui-new substrate
1. 데브넷 런칭
substrate-node-template 폴더에 가면
터미널 셸코드로
./target/release/substrate-node-template --dev 실행
예상되는 모습
인터랙션
https://polkadot.js.org/apps/#/settings
Substrate UI
폴카닷의 web3.js UI
polkadot.js로 만들어짐
리액트 컴포넌트
스타일은 Semantic UI 기반
2. Add Alice
Alice는 개발용 서브스트레이트 제네시스 파일에 하드코드된
어카운트로 개발하는 블록체인을 테스트하는데 필요합니다.
방법
3. 런타임 모듈을 만들어봅시다!
substrate-node-template 폴더 안에 있는 runtime폴더 내에
있는
template.rs를 flipper.rs로 이름을 바꿔줍니다.
runtime/src/flipper.rs
Trait
모듈의 커스텀 타입이나 이벤트를 제작할 때 사용, 기존
런타임 모듈의 타입에서 상속가능
코드
pub trait Trait: balances::Trait {}
decl_storage!
블록체인 state 안에 등록될 데이터를 정의하는 rust 매크로
이더리움의 account: balance 데이터가 예시
State 안에 데이터가 등록되면 블록은 그 데이터의
메타데이터를 반영
코드
decl_module!
블록체인 state 안의 데이터를 다룰 endpoint를 만드는 rust
매크로
코드
set_payment()
토큰을 저장할 pot과 한번 시도하는데 넣을 토큰양을
초기화시키는 함수
1. 보낸 트랜젝션 validity 체크
2. 한번 넣을 양이 설정되지 않은 경우
2-1. 한번 넣을 토큰 양을 value에 맞춰 조정
Optional: address check(누가 보냈는지 확인 가능)
2-2. Storage 양을 0으로 설정
코드
play()
우선 동전던지기 로직을 만들기 전에 거치는 과정은:
1. 트랜젝션이 보내는 사람에게 signed 됐는지 확인
2. Payment 스토리지가 state에 있는지 확인
3. 유저가 pot에 넣는 양만큼 유저의 계정에서 토큰을 없앰
4. pot에 유저에서 빼낸 토큰의 양만큼 balance를 더함
5. 0애서부터 255까지 난수를 제작하고 128만큼 큰지
아닌지 결정
6. 난수가 128보다 작으면 pot에 있는 모든 밸런스를
유저한테 보내고 그렇지 않은 경우 pot에 저장함 💰💰💰
코드
4. 모듈을 블록체인 런타임에
연결한다.
모듈이 로직을 정하면 기존에 있던 서브스트레이트 런타임에
모듈을 등록해야 합니다.
모듈을 서브스트레이트 런타임을 만드는 runtime/src/lib.rs
파일에 포함시켜줍니다.
코드
5. 업그레이드 가능한 모듈
이더리움에서 한번 스마트 계약이 배포되면 그 state를 변형
시킬 수 없는데 반해서 substrate는 바로 업그레이드가
가능합니다.
substrate-node-template 디렉토리로 이동한뒤 폴더 안에
있는 build.sh 셸코드를 실행시켜주면
./runtime/wasm/target/wasm32-unknown-unknown/release/
node_template_runtime_wasm.compact.wasm 이 빌드되는데
이를 업그레이드 섹션에 넣어주면 됩니다.
업그레이드 방법
데모
리소스
- Peer learning session(계획 중)
- Polkadot Korea 텔레그램에 질문
- Forum(계획 중)
- 강의(계획 중)
- 서브스트레이트 개발자 그룹:
https://www.facebook.com/groups/310820506504682/?source=unknown
For more info:
서브스트레이트 개발자 그룹:
https://www.facebook.com/groups/310820506504682/
Polkadot Korea:
https://t.me/PolkadotKorea
Substrate Technical:
https://matrix.to/#/!HzySYSaIhtyWrwiwEV:matrix.org?via=matrix.org&via=matrix.parity.io&vi
a=web3.foundation

More Related Content

What's hot

블록체인(Block Chain)이란? - 블록체인의 구성요소, 작동원리, 메커니즘의 이해
블록체인(Block Chain)이란? - 블록체인의 구성요소, 작동원리, 메커니즘의 이해블록체인(Block Chain)이란? - 블록체인의 구성요소, 작동원리, 메커니즘의 이해
블록체인(Block Chain)이란? - 블록체인의 구성요소, 작동원리, 메커니즘의 이해
용진 최
 
쉽게 풀어쓴 블록체인과 이더리움
쉽게 풀어쓴 블록체인과 이더리움쉽게 풀어쓴 블록체인과 이더리움
쉽게 풀어쓴 블록체인과 이더리움
Dae Hyun Nam
 
초심자를 위한 블록체인 기초
초심자를 위한 블록체인 기초초심자를 위한 블록체인 기초
초심자를 위한 블록체인 기초
So Sun Park
 
Blockchain Study(3) - 이더리움(Geth)
Blockchain Study(3) - 이더리움(Geth)Blockchain Study(3) - 이더리움(Geth)
Blockchain Study(3) - 이더리움(Geth)
Fermat Jade
 
(131102) #fitalk get windows logon password in memory dump
(131102) #fitalk   get windows logon password in memory dump(131102) #fitalk   get windows logon password in memory dump
(131102) #fitalk get windows logon password in memory dump
INSIGHT FORENSIC
 
[고숙한 세미나] 블록체인 취약점 분석
[고숙한 세미나] 블록체인 취약점 분석[고숙한 세미나] 블록체인 취약점 분석
[고숙한 세미나] 블록체인 취약점 분석
Jung SunWook
 
블록체인 한 번에 이해하기
블록체인 한 번에 이해하기블록체인 한 번에 이해하기
블록체인 한 번에 이해하기
Myung Woon Oh
 
예제로 배우는 이더리움 결제구현 (거래소 지갑 구현 예시)
예제로 배우는 이더리움 결제구현 (거래소 지갑 구현 예시)예제로 배우는 이더리움 결제구현 (거래소 지갑 구현 예시)
예제로 배우는 이더리움 결제구현 (거래소 지갑 구현 예시)
Colin Chae
 
비트코인과 블록체인 핵심개념정리
비트코인과 블록체인 핵심개념정리비트코인과 블록체인 핵심개념정리
비트코인과 블록체인 핵심개념정리
HANSUK KIM
 
이더리움 기초 스터디 (암호, 스토리지)
이더리움 기초 스터디 (암호, 스토리지)이더리움 기초 스터디 (암호, 스토리지)
이더리움 기초 스터디 (암호, 스토리지)
Colin Chae
 
[블록체인 기업으로 가는 길] 1일차 블록체인 일반
[블록체인 기업으로 가는 길] 1일차 블록체인 일반[블록체인 기업으로 가는 길] 1일차 블록체인 일반
[블록체인 기업으로 가는 길] 1일차 블록체인 일반
Jay Park
 
가상화폐와 블록체인 기술 Cryptocurrency & Blockchain Technology (KOR ver.)
가상화폐와 블록체인 기술 Cryptocurrency & Blockchain Technology (KOR ver.)가상화폐와 블록체인 기술 Cryptocurrency & Blockchain Technology (KOR ver.)
가상화폐와 블록체인 기술 Cryptocurrency & Blockchain Technology (KOR ver.)
경록 박
 
[블록체인 기업으로 가는 길] 3일차 블록체인 사업
[블록체인 기업으로 가는 길] 3일차 블록체인 사업[블록체인 기업으로 가는 길] 3일차 블록체인 사업
[블록체인 기업으로 가는 길] 3일차 블록체인 사업
Jay Park
 
About the Blockchain_imcloud
About the Blockchain_imcloudAbout the Blockchain_imcloud
About the Blockchain_imcloud
imcloud
 
How Blockchain Works - 블록체인의 원리
How Blockchain Works - 블록체인의 원리How Blockchain Works - 블록체인의 원리
How Blockchain Works - 블록체인의 원리
SeokWon Kim
 
Blockchain internet economy
Blockchain internet economyBlockchain internet economy
Blockchain internet economy
Heung-No Lee
 
비트코인 프로토콜
비트코인 프로토콜비트코인 프로토콜
비트코인 프로토콜
주연 임
 
비트코인 채굴과정
비트코인 채굴과정비트코인 채굴과정
비트코인 채굴과정
Seong-Bok Lee
 
Unity cookbook 20
Unity cookbook 20Unity cookbook 20
Unity cookbook 20
Jihun Soh
 
블록체인 이슈와 전망 New db
블록체인 이슈와 전망 New db블록체인 이슈와 전망 New db
블록체인 이슈와 전망 New db
HongSuk Seo
 

What's hot (20)

블록체인(Block Chain)이란? - 블록체인의 구성요소, 작동원리, 메커니즘의 이해
블록체인(Block Chain)이란? - 블록체인의 구성요소, 작동원리, 메커니즘의 이해블록체인(Block Chain)이란? - 블록체인의 구성요소, 작동원리, 메커니즘의 이해
블록체인(Block Chain)이란? - 블록체인의 구성요소, 작동원리, 메커니즘의 이해
 
쉽게 풀어쓴 블록체인과 이더리움
쉽게 풀어쓴 블록체인과 이더리움쉽게 풀어쓴 블록체인과 이더리움
쉽게 풀어쓴 블록체인과 이더리움
 
초심자를 위한 블록체인 기초
초심자를 위한 블록체인 기초초심자를 위한 블록체인 기초
초심자를 위한 블록체인 기초
 
Blockchain Study(3) - 이더리움(Geth)
Blockchain Study(3) - 이더리움(Geth)Blockchain Study(3) - 이더리움(Geth)
Blockchain Study(3) - 이더리움(Geth)
 
(131102) #fitalk get windows logon password in memory dump
(131102) #fitalk   get windows logon password in memory dump(131102) #fitalk   get windows logon password in memory dump
(131102) #fitalk get windows logon password in memory dump
 
[고숙한 세미나] 블록체인 취약점 분석
[고숙한 세미나] 블록체인 취약점 분석[고숙한 세미나] 블록체인 취약점 분석
[고숙한 세미나] 블록체인 취약점 분석
 
블록체인 한 번에 이해하기
블록체인 한 번에 이해하기블록체인 한 번에 이해하기
블록체인 한 번에 이해하기
 
예제로 배우는 이더리움 결제구현 (거래소 지갑 구현 예시)
예제로 배우는 이더리움 결제구현 (거래소 지갑 구현 예시)예제로 배우는 이더리움 결제구현 (거래소 지갑 구현 예시)
예제로 배우는 이더리움 결제구현 (거래소 지갑 구현 예시)
 
비트코인과 블록체인 핵심개념정리
비트코인과 블록체인 핵심개념정리비트코인과 블록체인 핵심개념정리
비트코인과 블록체인 핵심개념정리
 
이더리움 기초 스터디 (암호, 스토리지)
이더리움 기초 스터디 (암호, 스토리지)이더리움 기초 스터디 (암호, 스토리지)
이더리움 기초 스터디 (암호, 스토리지)
 
[블록체인 기업으로 가는 길] 1일차 블록체인 일반
[블록체인 기업으로 가는 길] 1일차 블록체인 일반[블록체인 기업으로 가는 길] 1일차 블록체인 일반
[블록체인 기업으로 가는 길] 1일차 블록체인 일반
 
가상화폐와 블록체인 기술 Cryptocurrency & Blockchain Technology (KOR ver.)
가상화폐와 블록체인 기술 Cryptocurrency & Blockchain Technology (KOR ver.)가상화폐와 블록체인 기술 Cryptocurrency & Blockchain Technology (KOR ver.)
가상화폐와 블록체인 기술 Cryptocurrency & Blockchain Technology (KOR ver.)
 
[블록체인 기업으로 가는 길] 3일차 블록체인 사업
[블록체인 기업으로 가는 길] 3일차 블록체인 사업[블록체인 기업으로 가는 길] 3일차 블록체인 사업
[블록체인 기업으로 가는 길] 3일차 블록체인 사업
 
About the Blockchain_imcloud
About the Blockchain_imcloudAbout the Blockchain_imcloud
About the Blockchain_imcloud
 
How Blockchain Works - 블록체인의 원리
How Blockchain Works - 블록체인의 원리How Blockchain Works - 블록체인의 원리
How Blockchain Works - 블록체인의 원리
 
Blockchain internet economy
Blockchain internet economyBlockchain internet economy
Blockchain internet economy
 
비트코인 프로토콜
비트코인 프로토콜비트코인 프로토콜
비트코인 프로토콜
 
비트코인 채굴과정
비트코인 채굴과정비트코인 채굴과정
비트코인 채굴과정
 
Unity cookbook 20
Unity cookbook 20Unity cookbook 20
Unity cookbook 20
 
블록체인 이슈와 전망 New db
블록체인 이슈와 전망 New db블록체인 이슈와 전망 New db
블록체인 이슈와 전망 New db
 

Similar to [ETHCon Korea 2019] Kang Hyungseok 강형석

Blockchain
BlockchainBlockchain
Blockchain
Sungkyun Kim
 
W3C HTML5 컨퍼런스 2020 - 웹 환경에서 블록체인 노드와 통신 및 신원인증 (DID)
W3C HTML5 컨퍼런스 2020 - 웹 환경에서 블록체인 노드와 통신 및 신원인증 (DID)W3C HTML5 컨퍼런스 2020 - 웹 환경에서 블록체인 노드와 통신 및 신원인증 (DID)
W3C HTML5 컨퍼런스 2020 - 웹 환경에서 블록체인 노드와 통신 및 신원인증 (DID)
Benjamin Oh
 
V SYSTEMS Whitepaper_KR
V SYSTEMS Whitepaper_KRV SYSTEMS Whitepaper_KR
V SYSTEMS Whitepaper_KR
V SYSTEMS
 
블록체인 과 인터넷 서비스의 진화-20220607.pdf
블록체인 과 인터넷 서비스의 진화-20220607.pdf블록체인 과 인터넷 서비스의 진화-20220607.pdf
블록체인 과 인터넷 서비스의 진화-20220607.pdf
doo rip choi
 
Block chain architecture and hyperledger fabric overview
Block chain architecture and hyperledger fabric overviewBlock chain architecture and hyperledger fabric overview
Block chain architecture and hyperledger fabric overview
병준 김
 
블록체인과 개발자
블록체인과 개발자블록체인과 개발자
블록체인과 개발자
YUSOO KIM
 
Block chain bidding_System
Block chain bidding_SystemBlock chain bidding_System
Block chain bidding_System
환석 주
 
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
중선 곽
 
V SYSTEMS - Smart Contract and Token System_KR
V SYSTEMS - Smart Contract and Token System_KRV SYSTEMS - Smart Contract and Token System_KR
V SYSTEMS - Smart Contract and Token System_KR
V SYSTEMS
 
와라코인 ICO 발표회
와라코인 ICO 발표회 와라코인 ICO 발표회
와라코인 ICO 발표회
Brandon Chung
 
모바일을 위한 (AWS) 클라우드 기술 동향
모바일을 위한 (AWS) 클라우드 기술 동향 모바일을 위한 (AWS) 클라우드 기술 동향
모바일을 위한 (AWS) 클라우드 기술 동향
AWSKRUG - AWS한국사용자모임
 
Mastering ethereum(smart contract)
Mastering ethereum(smart contract)Mastering ethereum(smart contract)
Mastering ethereum(smart contract)
제호 송
 
20160414 ROS 2차 강의 (for 아스라다 팀)
20160414 ROS 2차 강의 (for 아스라다 팀)20160414 ROS 2차 강의 (for 아스라다 팀)
20160414 ROS 2차 강의 (for 아스라다 팀)
Yoonseok Pyo
 
Bitcoin 2.0(blockchain technology 2)
Bitcoin 2.0(blockchain technology 2)Bitcoin 2.0(blockchain technology 2)
Bitcoin 2.0(blockchain technology 2)
Wooseung Kim
 
Introblockchaininfra 180806105137
Introblockchaininfra 180806105137Introblockchaininfra 180806105137
Introblockchaininfra 180806105137
Jong-Ki Lee
 
[Polygon] Bring the World to Ethereum 발표자료
[Polygon] Bring the World to Ethereum 발표자료[Polygon] Bring the World to Ethereum 발표자료
[Polygon] Bring the World to Ethereum 발표자료
Seung-chan Baeg
 
2조 프로젝트 보고서 김동현
2조 프로젝트 보고서 김동현2조 프로젝트 보고서 김동현
2조 프로젝트 보고서 김동현
kdh24
 
오픈스택: 구석구석 파헤쳐보기
오픈스택: 구석구석 파헤쳐보기오픈스택: 구석구석 파헤쳐보기
오픈스택: 구석구석 파헤쳐보기
Jaehwa Park
 
카카오 봇 플랫폼 소개
카카오 봇 플랫폼 소개카카오 봇 플랫폼 소개
카카오 봇 플랫폼 소개
if kakao
 
센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012Daum DNA
 

Similar to [ETHCon Korea 2019] Kang Hyungseok 강형석 (20)

Blockchain
BlockchainBlockchain
Blockchain
 
W3C HTML5 컨퍼런스 2020 - 웹 환경에서 블록체인 노드와 통신 및 신원인증 (DID)
W3C HTML5 컨퍼런스 2020 - 웹 환경에서 블록체인 노드와 통신 및 신원인증 (DID)W3C HTML5 컨퍼런스 2020 - 웹 환경에서 블록체인 노드와 통신 및 신원인증 (DID)
W3C HTML5 컨퍼런스 2020 - 웹 환경에서 블록체인 노드와 통신 및 신원인증 (DID)
 
V SYSTEMS Whitepaper_KR
V SYSTEMS Whitepaper_KRV SYSTEMS Whitepaper_KR
V SYSTEMS Whitepaper_KR
 
블록체인 과 인터넷 서비스의 진화-20220607.pdf
블록체인 과 인터넷 서비스의 진화-20220607.pdf블록체인 과 인터넷 서비스의 진화-20220607.pdf
블록체인 과 인터넷 서비스의 진화-20220607.pdf
 
Block chain architecture and hyperledger fabric overview
Block chain architecture and hyperledger fabric overviewBlock chain architecture and hyperledger fabric overview
Block chain architecture and hyperledger fabric overview
 
블록체인과 개발자
블록체인과 개발자블록체인과 개발자
블록체인과 개발자
 
Block chain bidding_System
Block chain bidding_SystemBlock chain bidding_System
Block chain bidding_System
 
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
프로그래밍 패러다임의 진화 및 Spring의 금융권 적용
 
V SYSTEMS - Smart Contract and Token System_KR
V SYSTEMS - Smart Contract and Token System_KRV SYSTEMS - Smart Contract and Token System_KR
V SYSTEMS - Smart Contract and Token System_KR
 
와라코인 ICO 발표회
와라코인 ICO 발표회 와라코인 ICO 발표회
와라코인 ICO 발표회
 
모바일을 위한 (AWS) 클라우드 기술 동향
모바일을 위한 (AWS) 클라우드 기술 동향 모바일을 위한 (AWS) 클라우드 기술 동향
모바일을 위한 (AWS) 클라우드 기술 동향
 
Mastering ethereum(smart contract)
Mastering ethereum(smart contract)Mastering ethereum(smart contract)
Mastering ethereum(smart contract)
 
20160414 ROS 2차 강의 (for 아스라다 팀)
20160414 ROS 2차 강의 (for 아스라다 팀)20160414 ROS 2차 강의 (for 아스라다 팀)
20160414 ROS 2차 강의 (for 아스라다 팀)
 
Bitcoin 2.0(blockchain technology 2)
Bitcoin 2.0(blockchain technology 2)Bitcoin 2.0(blockchain technology 2)
Bitcoin 2.0(blockchain technology 2)
 
Introblockchaininfra 180806105137
Introblockchaininfra 180806105137Introblockchaininfra 180806105137
Introblockchaininfra 180806105137
 
[Polygon] Bring the World to Ethereum 발표자료
[Polygon] Bring the World to Ethereum 발표자료[Polygon] Bring the World to Ethereum 발표자료
[Polygon] Bring the World to Ethereum 발표자료
 
2조 프로젝트 보고서 김동현
2조 프로젝트 보고서 김동현2조 프로젝트 보고서 김동현
2조 프로젝트 보고서 김동현
 
오픈스택: 구석구석 파헤쳐보기
오픈스택: 구석구석 파헤쳐보기오픈스택: 구석구석 파헤쳐보기
오픈스택: 구석구석 파헤쳐보기
 
카카오 봇 플랫폼 소개
카카오 봇 플랫폼 소개카카오 봇 플랫폼 소개
카카오 봇 플랫폼 소개
 
센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012센차 터치2 시작하기 | Devon 2012
센차 터치2 시작하기 | Devon 2012
 

More from ethconkr

[ETHCon Korea 2019] Jang Byeongkook 장병국
[ETHCon Korea 2019] Jang Byeongkook 장병국[ETHCon Korea 2019] Jang Byeongkook 장병국
[ETHCon Korea 2019] Jang Byeongkook 장병국
ethconkr
 
[ETHCon Korea 2019] Jason lee 이진호
[ETHCon Korea 2019] Jason lee 이진호[ETHCon Korea 2019] Jason lee 이진호
[ETHCon Korea 2019] Jason lee 이진호
ethconkr
 
[ETHCon Korea 2019] Kim Taekgyun 김택균
[ETHCon Korea 2019] Kim Taekgyun 김택균[ETHCon Korea 2019] Kim Taekgyun 김택균
[ETHCon Korea 2019] Kim Taekgyun 김택균
ethconkr
 
[ETHCon Korea 2019] Lim Dohyung 임도형
[ETHCon Korea 2019] Lim Dohyung 임도형[ETHCon Korea 2019] Lim Dohyung 임도형
[ETHCon Korea 2019] Lim Dohyung 임도형
ethconkr
 
[ETHCon Korea 2019] Seo Gijoon 서기준
[ETHCon Korea 2019] Seo Gijoon 서기준[ETHCon Korea 2019] Seo Gijoon 서기준
[ETHCon Korea 2019] Seo Gijoon 서기준
ethconkr
 
[ETHCon Korea 2019] Kim hyojun 김효준
[ETHCon Korea 2019] Kim hyojun 김효준[ETHCon Korea 2019] Kim hyojun 김효준
[ETHCon Korea 2019] Kim hyojun 김효준
ethconkr
 
[ETHCon Korea 2019] Park Chanhyun 박찬현
[ETHCon Korea 2019] Park Chanhyun 박찬현[ETHCon Korea 2019] Park Chanhyun 박찬현
[ETHCon Korea 2019] Park Chanhyun 박찬현
ethconkr
 
[ETHCon Korea 2019] Cha Seounghun 차승훈
[ETHCon Korea 2019] Cha Seounghun 차승훈[ETHCon Korea 2019] Cha Seounghun 차승훈
[ETHCon Korea 2019] Cha Seounghun 차승훈
ethconkr
 
[ETHCon Korea 2019] Aiden Park 박정원
[ETHCon Korea 2019] Aiden Park 박정원[ETHCon Korea 2019] Aiden Park 박정원
[ETHCon Korea 2019] Aiden Park 박정원
ethconkr
 
[ETHCon Korea 2019] Park Sieun 박시은
[ETHCon Korea 2019] Park Sieun 박시은[ETHCon Korea 2019] Park Sieun 박시은
[ETHCon Korea 2019] Park Sieun 박시은
ethconkr
 
[ETHCon Korea 2019] Hong taeoh 홍태오
[ETHCon Korea 2019] Hong taeoh 홍태오[ETHCon Korea 2019] Hong taeoh 홍태오
[ETHCon Korea 2019] Hong taeoh 홍태오
ethconkr
 
[ETHCon Korea 2019] Hyun sooyoung 현수영
[ETHCon Korea 2019] Hyun sooyoung 현수영[ETHCon Korea 2019] Hyun sooyoung 현수영
[ETHCon Korea 2019] Hyun sooyoung 현수영
ethconkr
 
[ETHCon Korea 2019] Choi jihyuk 최지혁
[ETHCon Korea 2019] Choi jihyuk 최지혁[ETHCon Korea 2019] Choi jihyuk 최지혁
[ETHCon Korea 2019] Choi jihyuk 최지혁
ethconkr
 
[ETHCon Korea 2019] Choi yunsung 최윤성
[ETHCon Korea 2019] Choi yunsung 최윤성[ETHCon Korea 2019] Choi yunsung 최윤성
[ETHCon Korea 2019] Choi yunsung 최윤성
ethconkr
 
[ETHCon Korea 2019] Jung woohyun 정우현
[ETHCon Korea 2019] Jung woohyun 정우현[ETHCon Korea 2019] Jung woohyun 정우현
[ETHCon Korea 2019] Jung woohyun 정우현
ethconkr
 
[ETHCon Korea 2019] Jung soonhyung 정순형
[ETHCon Korea 2019] Jung soonhyung 정순형[ETHCon Korea 2019] Jung soonhyung 정순형
[ETHCon Korea 2019] Jung soonhyung 정순형
ethconkr
 
[ETHCon Korea 2019] Jang jinho 장진호
[ETHCon Korea 2019] Jang jinho 장진호[ETHCon Korea 2019] Jang jinho 장진호
[ETHCon Korea 2019] Jang jinho 장진호
ethconkr
 
[ETHCon Korea 2019] Jang jaehyuk 장재혁
[ETHCon Korea 2019] Jang jaehyuk 장재혁[ETHCon Korea 2019] Jang jaehyuk 장재혁
[ETHCon Korea 2019] Jang jaehyuk 장재혁
ethconkr
 
[ETHCon Korea 2019] Lim wanseob 임완섭
[ETHCon Korea 2019] Lim wanseob 임완섭[ETHCon Korea 2019] Lim wanseob 임완섭
[ETHCon Korea 2019] Lim wanseob 임완섭
ethconkr
 
[ETHCon Korea 2019] Lee heungno 이흥노
[ETHCon Korea 2019] Lee heungno 이흥노[ETHCon Korea 2019] Lee heungno 이흥노
[ETHCon Korea 2019] Lee heungno 이흥노
ethconkr
 

More from ethconkr (20)

[ETHCon Korea 2019] Jang Byeongkook 장병국
[ETHCon Korea 2019] Jang Byeongkook 장병국[ETHCon Korea 2019] Jang Byeongkook 장병국
[ETHCon Korea 2019] Jang Byeongkook 장병국
 
[ETHCon Korea 2019] Jason lee 이진호
[ETHCon Korea 2019] Jason lee 이진호[ETHCon Korea 2019] Jason lee 이진호
[ETHCon Korea 2019] Jason lee 이진호
 
[ETHCon Korea 2019] Kim Taekgyun 김택균
[ETHCon Korea 2019] Kim Taekgyun 김택균[ETHCon Korea 2019] Kim Taekgyun 김택균
[ETHCon Korea 2019] Kim Taekgyun 김택균
 
[ETHCon Korea 2019] Lim Dohyung 임도형
[ETHCon Korea 2019] Lim Dohyung 임도형[ETHCon Korea 2019] Lim Dohyung 임도형
[ETHCon Korea 2019] Lim Dohyung 임도형
 
[ETHCon Korea 2019] Seo Gijoon 서기준
[ETHCon Korea 2019] Seo Gijoon 서기준[ETHCon Korea 2019] Seo Gijoon 서기준
[ETHCon Korea 2019] Seo Gijoon 서기준
 
[ETHCon Korea 2019] Kim hyojun 김효준
[ETHCon Korea 2019] Kim hyojun 김효준[ETHCon Korea 2019] Kim hyojun 김효준
[ETHCon Korea 2019] Kim hyojun 김효준
 
[ETHCon Korea 2019] Park Chanhyun 박찬현
[ETHCon Korea 2019] Park Chanhyun 박찬현[ETHCon Korea 2019] Park Chanhyun 박찬현
[ETHCon Korea 2019] Park Chanhyun 박찬현
 
[ETHCon Korea 2019] Cha Seounghun 차승훈
[ETHCon Korea 2019] Cha Seounghun 차승훈[ETHCon Korea 2019] Cha Seounghun 차승훈
[ETHCon Korea 2019] Cha Seounghun 차승훈
 
[ETHCon Korea 2019] Aiden Park 박정원
[ETHCon Korea 2019] Aiden Park 박정원[ETHCon Korea 2019] Aiden Park 박정원
[ETHCon Korea 2019] Aiden Park 박정원
 
[ETHCon Korea 2019] Park Sieun 박시은
[ETHCon Korea 2019] Park Sieun 박시은[ETHCon Korea 2019] Park Sieun 박시은
[ETHCon Korea 2019] Park Sieun 박시은
 
[ETHCon Korea 2019] Hong taeoh 홍태오
[ETHCon Korea 2019] Hong taeoh 홍태오[ETHCon Korea 2019] Hong taeoh 홍태오
[ETHCon Korea 2019] Hong taeoh 홍태오
 
[ETHCon Korea 2019] Hyun sooyoung 현수영
[ETHCon Korea 2019] Hyun sooyoung 현수영[ETHCon Korea 2019] Hyun sooyoung 현수영
[ETHCon Korea 2019] Hyun sooyoung 현수영
 
[ETHCon Korea 2019] Choi jihyuk 최지혁
[ETHCon Korea 2019] Choi jihyuk 최지혁[ETHCon Korea 2019] Choi jihyuk 최지혁
[ETHCon Korea 2019] Choi jihyuk 최지혁
 
[ETHCon Korea 2019] Choi yunsung 최윤성
[ETHCon Korea 2019] Choi yunsung 최윤성[ETHCon Korea 2019] Choi yunsung 최윤성
[ETHCon Korea 2019] Choi yunsung 최윤성
 
[ETHCon Korea 2019] Jung woohyun 정우현
[ETHCon Korea 2019] Jung woohyun 정우현[ETHCon Korea 2019] Jung woohyun 정우현
[ETHCon Korea 2019] Jung woohyun 정우현
 
[ETHCon Korea 2019] Jung soonhyung 정순형
[ETHCon Korea 2019] Jung soonhyung 정순형[ETHCon Korea 2019] Jung soonhyung 정순형
[ETHCon Korea 2019] Jung soonhyung 정순형
 
[ETHCon Korea 2019] Jang jinho 장진호
[ETHCon Korea 2019] Jang jinho 장진호[ETHCon Korea 2019] Jang jinho 장진호
[ETHCon Korea 2019] Jang jinho 장진호
 
[ETHCon Korea 2019] Jang jaehyuk 장재혁
[ETHCon Korea 2019] Jang jaehyuk 장재혁[ETHCon Korea 2019] Jang jaehyuk 장재혁
[ETHCon Korea 2019] Jang jaehyuk 장재혁
 
[ETHCon Korea 2019] Lim wanseob 임완섭
[ETHCon Korea 2019] Lim wanseob 임완섭[ETHCon Korea 2019] Lim wanseob 임완섭
[ETHCon Korea 2019] Lim wanseob 임완섭
 
[ETHCon Korea 2019] Lee heungno 이흥노
[ETHCon Korea 2019] Lee heungno 이흥노[ETHCon Korea 2019] Lee heungno 이흥노
[ETHCon Korea 2019] Lee heungno 이흥노
 

[ETHCon Korea 2019] Kang Hyungseok 강형석

  • 1. Building the new web with self-sovereign identity Hyungsuk Kang Mail: hskang9@gmail.com Twitter: @hskang0525
  • 2. 자기소개 Research Assistant in SKKU IoT Lab(‘15) Keras Korea Admin(‘16) Ethereum DevconIV scholar(‘18) Open-source projects: spectrum, peer-eth Current Ambassador in W3F, contributer in SpeckleOS(‘19) Publication: Secure DNS name autoconfiguration for IPv6 internet-of-things(SDNSNA) Interests: open source, p2p, crypto, wasm, DID
  • 4. 웹3 웹 1.0: 정보를 읽는 게 전부(read-only) -> Search engines들이 생겨남(e.g. Google, Yahoo, Netscape, etc) 웹 2.0: 정보를 읽고 쓰는 상호작용이 가능해짐(read-write) -> SNS, 플랫폼이 생성됨(e.g. Facebook, Uber, Reddit, Yelp, etc) 웹 3.0: 정보에 읽고 쓰고 신뢰를 가지게 됨 -> Payment ledger(e.g. Bitcoin, Ripple, Dai), Smart Contract(e.g. Ethereum), ID(uport, iden3)
  • 6. Substrate 기능에 집중하여 만들 수 있는 블록체인 SDK 이미 만들어진 기반들(elliptic curve/hash, stateDB, rlp, p2p 프로토콜 걱정 끝!) 매우 높은 자유도(state model, transaction, 모두 마음대로 설정 가능 ex) UTXO, Zexe) 다양한 개발 언어(wasm을 사용해서 Rust, C/C++, C#, Go, 등 사용가능) PoW가 아닌 PoS 🚀
  • 7. Consensus Parachain: Nominated Proof of Stake(NPoS) + GRANPA NPoS는 DPoS 와 달리 validator끼리 차등을 두지 않고 GRANPA로 finality 결정 more details Relay Chain: upcoming
  • 8. Polkadot Network Shared Security Platform 블록체인들을 이어주는 relay chain 마이닝 파워 공유 -> 공유되는 보안 및 scalability Interoperability, governance 지향 이더리움 bridge:
  • 9.
  • 11. 들어가기 전에: 사전지식 러스트 개발 경험이 있어야 합니다. UNIX 기반 운영체제에서 개발하는 것을 추천합니다. 만약 해당 운영체제가 아닐 경우 AWS나 Docker를 사용하는 것을 추천합니다. AWS: 계정 만들고 인스턴스에 접속할 ssh key 만들기 IAM access key 만들기
  • 12. 개발할 때 쓰는 툴들 Terraform AWS Git Cargo
  • 13. Module 1: Substrate quickstart 목표: 런타임 모듈을 이용하여 래플 기능에 필요한 블록체인을 만들어보자. 목차: - 설치 및 실행 - 인터랙션 - Substrate UI
  • 14. Module 2: Deep dive on runtime module 목표: 런타임 모듈에 대해 좀 더 자세히 알아본 뒤 나만의 블록체인 Immutable State Machine을 만들어보자. 목차: - 런타임 모듈이란? - 데이터모델 만들기 - 더 알아보기
  • 15. 런타임 모듈이란? 런타임 모듈은 블록체인 메인넷을 개발할 때 하나하나 컴포넌트 마다 일일이 개발할 필요없이 미리 만들어 놓은 모듈들을 말한다. 이러한 모듈들을 이용해서 나만의 state model이나 tx logic을 만들어서 맞춤형 블록체인이 제작가능하다. State model을 예를 들자면 비트코인의 utxo, 이더리움의 account model 등이 있다.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23. 예시 UTXO workshop https://github.com/nczhu/utxo-workshop Zerochain(Zether on substrate) https://github.com/LayerXcom/zero-chain
  • 25. Module3: Parity ink! 목표: 웹어셈블리 스마트 컨트랙트 언어인 Parity ink를 이용해서 ERC20토큰 만들기 Agenda: - Parity Ink - 스마트 컨트랙트 제작 - 인터랙션
  • 26. 그래서 디앱만 만들고 싶다고요? 빠른 개발기간 Good old ethereum 어카운트 모델에서 블록체인을 운영하고 싶어요
  • 27. Parity Ink! Rust로 된 Wasm 스마트 컨트랙트 언어 by Paritytech 다른 언어로는 Commonwealth labs가 진행하는 edgware에서 제공하는 언어들, opennetsys에서 지원하는 언어들(Go, python, C/C++, etc), Soramitsu의 kagome에서 지원하는 언어 등이 있음.
  • 28. 설치 및 실행 Github: www.github.com/speckleos/Ethcon-korea/module1
  • 30. 우리가 만들 것 Flipper blockchain by Gavin Wood(“Creating a custom substrate chain”) - Pot이라는 storage를 만들고 - 동전 던지기를 구현해본 다음 - 이기면 돈을 얻거나 지면 돈을 가져가는 블록체인을 만듭니다.
  • 31. Substrate 설치 로컬환경이나 AWS에서 서브스트레이트를 설치해주세요. 로컬: https://github.com/SpeckleOS/Ethcon-korea/edit/master/module1/1.md 클라우드(AWS): EC2 생성 ssh 가져오기 terraform file
  • 32. 서브스트레이트 설치 substrate-node-new substrate-node-template <제작자 이름> substrate-ui-new substrate
  • 33. 1. 데브넷 런칭 substrate-node-template 폴더에 가면 터미널 셸코드로 ./target/release/substrate-node-template --dev 실행
  • 36. Substrate UI 폴카닷의 web3.js UI polkadot.js로 만들어짐 리액트 컴포넌트 스타일은 Semantic UI 기반
  • 37. 2. Add Alice Alice는 개발용 서브스트레이트 제네시스 파일에 하드코드된 어카운트로 개발하는 블록체인을 테스트하는데 필요합니다.
  • 39. 3. 런타임 모듈을 만들어봅시다! substrate-node-template 폴더 안에 있는 runtime폴더 내에 있는 template.rs를 flipper.rs로 이름을 바꿔줍니다. runtime/src/flipper.rs
  • 40. Trait 모듈의 커스텀 타입이나 이벤트를 제작할 때 사용, 기존 런타임 모듈의 타입에서 상속가능
  • 41. 코드 pub trait Trait: balances::Trait {}
  • 42. decl_storage! 블록체인 state 안에 등록될 데이터를 정의하는 rust 매크로 이더리움의 account: balance 데이터가 예시 State 안에 데이터가 등록되면 블록은 그 데이터의 메타데이터를 반영
  • 44. decl_module! 블록체인 state 안의 데이터를 다룰 endpoint를 만드는 rust 매크로
  • 46. set_payment() 토큰을 저장할 pot과 한번 시도하는데 넣을 토큰양을 초기화시키는 함수 1. 보낸 트랜젝션 validity 체크 2. 한번 넣을 양이 설정되지 않은 경우 2-1. 한번 넣을 토큰 양을 value에 맞춰 조정 Optional: address check(누가 보냈는지 확인 가능) 2-2. Storage 양을 0으로 설정
  • 48. play() 우선 동전던지기 로직을 만들기 전에 거치는 과정은: 1. 트랜젝션이 보내는 사람에게 signed 됐는지 확인 2. Payment 스토리지가 state에 있는지 확인 3. 유저가 pot에 넣는 양만큼 유저의 계정에서 토큰을 없앰 4. pot에 유저에서 빼낸 토큰의 양만큼 balance를 더함 5. 0애서부터 255까지 난수를 제작하고 128만큼 큰지 아닌지 결정 6. 난수가 128보다 작으면 pot에 있는 모든 밸런스를 유저한테 보내고 그렇지 않은 경우 pot에 저장함 💰💰💰
  • 50. 4. 모듈을 블록체인 런타임에 연결한다. 모듈이 로직을 정하면 기존에 있던 서브스트레이트 런타임에 모듈을 등록해야 합니다. 모듈을 서브스트레이트 런타임을 만드는 runtime/src/lib.rs 파일에 포함시켜줍니다.
  • 52. 5. 업그레이드 가능한 모듈 이더리움에서 한번 스마트 계약이 배포되면 그 state를 변형 시킬 수 없는데 반해서 substrate는 바로 업그레이드가 가능합니다. substrate-node-template 디렉토리로 이동한뒤 폴더 안에 있는 build.sh 셸코드를 실행시켜주면 ./runtime/wasm/target/wasm32-unknown-unknown/release/ node_template_runtime_wasm.compact.wasm 이 빌드되는데 이를 업그레이드 섹션에 넣어주면 됩니다.
  • 55. 리소스 - Peer learning session(계획 중) - Polkadot Korea 텔레그램에 질문 - Forum(계획 중) - 강의(계획 중) - 서브스트레이트 개발자 그룹: https://www.facebook.com/groups/310820506504682/?source=unknown
  • 56. For more info: 서브스트레이트 개발자 그룹: https://www.facebook.com/groups/310820506504682/ Polkadot Korea: https://t.me/PolkadotKorea Substrate Technical: https://matrix.to/#/!HzySYSaIhtyWrwiwEV:matrix.org?via=matrix.org&via=matrix.parity.io&vi a=web3.foundation