SlideShare a Scribd company logo
1 of 22
POW&POS
proof of work and proof of stake
- Index -
1. SHA256

2. POW&POS

3. Ethereum

4. Q/A
What is SHA256?
SHA256?
SHA256이란, SHA(Secure Hash Algorithm) 알고리즘의 일종. ex) password
1. Preimage resistance : 주어진 해쉬 값에 대해, 해쉬값을 생성하는 입력값 추적 어려움.
2. Second Preimage resistance : 입력값에 대해, 그 입력의 해쉬 값을 바꾸지 않으면서 입력을

변경하는 것이 계산상 어려움.
3. Collision resistance : 해쉬 충돌에 대한 안정성. 같은 해쉬값을 생성하는 두 개의 입력값을

찾는 것이 계산상 어려움
예를 들어 SHA256 알고리즘을 이용해서 다음과 같은 해쉬값을 얻을 수 있다.
In BlockChain
SHA-256 ("hello world" + " 0") = 3cad76d283686392c9c1813baf25239a3f09b9e075d830984a9a93d62b93adb8
SHA-256 ("hello world" + " 1") = 063dbf1d36387944a5f0ace625b4d3ee36b2daefd8bdaee5ede723637efb1cf4
SHA-256 ("hello world" + " 2") = ed12932f3ef94c0792fbc55263968006e867e522cf9faa88274340a2671d4441
SHA-256 ("hello world" + " 3") = 4ffabbab4e763202462df1f59811944121588f0567f55bce581a0e99ebcf6606
SHA-256 ("hello world" + " 4") = 000e5e410dd915d190cce21d72a40bdbcc9db96d80de87d28896b56766f31b4e
SHA-256 ("hello world" + " 5") = f6471bb5cd1837f3ef4891903c40c5300c9f0fd8a902d5c3774628c44dab78ed
SHA-256 ("hello world" + " 6") = 6a9b5a89258b50744dfdf62e49ac6d869e8916e04ce57d9d1fc953daed9bfcd8
여기서 hello world 문자 뒤에 나타는 숫자는 앞서 블록 생성시, Nonce를 의미한다. 따라서
Nonce 값이 증가한다는 것은 그만큼 연산횟수가 늘어나고, 해쉬값을 이용해 역으로 추적하기가
사실상 어렵다고 보면 된다.
물론 양자컴퓨터로 계산을 하면 된다는 사람이 있는데, 양자컴퓨터로 계산하기 위해 만드는 비용
이 훨씬 크기 때문에 시도하지 않는 것으로 보인다.
추가하자면, 현제 SHA-2 알고리즘의 대안으로 SHA-3 알고리즘을 공모하고 있다고 한다.
What is POW?
이제부터 설명한 부분은, 프로토콜이자 함수입니다.
POW(Proof Of Work)
해쉬 파워가 우세한 블록이 메인넷에 등록되었다고 설명했습니다.
이러한 과정에서 이용되는 POW(작업증명)는 일명 “채굴”이라고도 불립니다.
많은 해쉬를 가진 사람이 코인을 얻을 수있는 블록을 더 많이 발견할 수 있는 구조 입니다.
앞서 설명한 해쉬연산을 처리해 얻는 방식입니다.
주로 비트코인, 라이트코인, 지케시, 모네로 등이 있습니다.
왜 블록을 생성하는데, 이러한 과정이 필요할까?
POW(Proof Of Work)
모든 네트워크의 노드(컴퓨터)들이 동시에 블록을 생성하는 것을 방지하고자 만들어 졌습니다.
POW(Proof Of Work)
POW 방식은 GPU연산/ASIC 컴퓨터를 이용해 계산을 하기 때문에 채굴하는데 비용이 어마어마
하게 듭니다. 현재 비트코인의 경우 500만TH/s (TH/s : 1초에 1조 연산)이 듭니다.
POW(Proof Of Work)
또한 채굴을 하다보면, 전체 채굴의 51%이상의 영향을 미치는 채굴자가 새로운 블록을 생성할
확률이 높기때문에 잘못된 Transaction을 일으켜 전체 비트코인 시장에 영향을 미치게 될 수 있
습니다.
즉, 해쉬파워가 전체 시장에 51%에 해당하는 영향을 미치는 사람이 있다면, 잘못된 정보를 블록
에 기입해 블록을 생성할 수 있기 때문입니다.
What is POS?
앞서 설명한 문제점들 때문에 대안으로 나온 POS 알고리즘이 있습니다. (지분증명방식)
POS(Proof Of Stake)
POS(지분증명방식)는 컴퓨터의 해쉬파워가 아닌, 가지고 있는 돈(Stake)을 기준으로 블록을 생
성합니다.
예를들어 50번째 블록 생성시, A의 기여도가 50이고 B의 기여도가 80이라면 B가 생성한 블록을
선택합니다. (여기서 POW와 다른점은 50번째 블록을 동시에 생성한다는 것 입니다.)
POS(Proof Of Stake)
POS 방식은 블록 생성시, 보상체계가 없습니다. 즉 직접적인 채굴이 아니라는 것 입니다.
대신, POS는 해당 지분만큼의 Transaction 수수료를 받습니다.
What is Ethereum?
이제 전반적인 블록체인에 관해 이해를 했으니 본격적으로 토큰을 만들어보겠습니다.
Ethereum(이더리움)
본격적으로 만들기 전, 코인과 토큰의 차이점 그리고 이더리움에 대해서 간략하게 알고
넘어가겠습니다.
블록체인을 기반으로 “스마트 계약”기능을 구현
하기 위한 분산형 컴퓨팅 플랫폼이다.
Ethereum(이더리움)
“
”
•발표일 : 2015년 7월 30일
•프로그래밍 언어: C++, Go, 러스트
•GPLv3, LGPLv3
•스마트 계약 가능
•스마트 계약을 통한 토큰 생성 가능
비탈릭 부테린
1994년 생 러시아에서 태어났으나, 99년에 캐나다로 이민. 현재는 스위스에서 거주중이다.
아버지가 알려준 비트코인으로부터 큰 영향을 받았다.
2011년에 비트코인 매거진을 만듬.
2012년부터는 본격적으로 팀을 구성하고 이더리움 백서를 작성
2013년에는 다니던 워털루 대학교를 자퇴 / 이스라엘, 네덜란드, 미국 등으로 여행
•언어 : 영어,프랑스어, 독일어,광동어, 그리스어
•14년 IT소프트웨어상을 수상(마크 저커버그를 제치고)
•그냥 천재 프로그래머
비탈릭 부테린(당시 21세)
블록체인에 스마트 계약 데이터 추가하면…
•계약 기록
•계약 내용
•계약 코드
•이행 이력
•이행 결과
Ethereum(이더리움)
다음 시간에 할 내용이지만, 먼저 살짝 이더리움에 대해 소개를 하자면
•이더리움은 왜 흥할까?
•이더리움은 네트워크이자 프로토콜이다.
•이더리움을 기반으로 ERC-20 토큰을 생성 할 수 있다.

- 스마트 컨트렉트를 만들어보자!

- ERC : Ethereum for Request for Comments
•DAPP 의 구조와 현황 그리고 미래
–CodeMath
Let’s study blockchain!
Q/A

More Related Content

What's hot

Blockchain Study(5) - Smart Contract(스마트 계약)
Blockchain Study(5) - Smart Contract(스마트 계약)Blockchain Study(5) - Smart Contract(스마트 계약)
Blockchain Study(5) - Smart Contract(스마트 계약)Fermat Jade
 
세션1. block chain as a platform
세션1. block chain as a platform세션1. block chain as a platform
세션1. block chain as a platformJay JH Park
 
Blockchain Study(3) - 이더리움(Geth)
Blockchain Study(3) - 이더리움(Geth)Blockchain Study(3) - 이더리움(Geth)
Blockchain Study(3) - 이더리움(Geth)Fermat Jade
 
Blockchain 3rd smart contract programming
Blockchain 3rd smart contract programmingBlockchain 3rd smart contract programming
Blockchain 3rd smart contract programmingihpark92
 
Blockchain 1st bitcoin_core
Blockchain 1st bitcoin_coreBlockchain 1st bitcoin_core
Blockchain 1st bitcoin_coreihpark92
 
세션5. web3.js와 Node.js 를 사용한 dApp 개발
세션5. web3.js와 Node.js 를 사용한 dApp 개발세션5. web3.js와 Node.js 를 사용한 dApp 개발
세션5. web3.js와 Node.js 를 사용한 dApp 개발Jay JH Park
 
GCGC- CGCII 서버 엔진에 적용된 기술 (5) - Executor with Exception
GCGC- CGCII 서버 엔진에 적용된 기술 (5) - Executor with ExceptionGCGC- CGCII 서버 엔진에 적용된 기술 (5) - Executor with Exception
GCGC- CGCII 서버 엔진에 적용된 기술 (5) - Executor with Exception상현 조
 
Blockchain 4th dapp programming
Blockchain 4th dapp programmingBlockchain 4th dapp programming
Blockchain 4th dapp programmingihpark92
 
예제로 배우는 이더리움 결제구현 (거래소 지갑 구현 예시)
예제로 배우는 이더리움 결제구현 (거래소 지갑 구현 예시)예제로 배우는 이더리움 결제구현 (거래소 지갑 구현 예시)
예제로 배우는 이더리움 결제구현 (거래소 지갑 구현 예시)Colin Chae
 
Block chain introduction slideshare
Block chain introduction   slideshareBlock chain introduction   slideshare
Block chain introduction slidesharewonyong hwang
 
GCGC- CGCII 서버 엔진에 적용된 기술 (3) - Exception
GCGC- CGCII 서버 엔진에 적용된 기술 (3) - ExceptionGCGC- CGCII 서버 엔진에 적용된 기술 (3) - Exception
GCGC- CGCII 서버 엔진에 적용된 기술 (3) - Exception상현 조
 
11_웹서비스활용
11_웹서비스활용11_웹서비스활용
11_웹서비스활용noerror
 
Dapp시연 150214
Dapp시연 150214Dapp시연 150214
Dapp시연 150214Jihong Shim
 
Multithread design pattern
Multithread design patternMultithread design pattern
Multithread design pattern종빈 오
 
GCGC- CGCII 서버 엔진에 적용된 기술 (2) - Perfornance
GCGC- CGCII 서버 엔진에 적용된 기술 (2) - PerfornanceGCGC- CGCII 서버 엔진에 적용된 기술 (2) - Perfornance
GCGC- CGCII 서버 엔진에 적용된 기술 (2) - Perfornance상현 조
 
GCGC- CGCII 서버 엔진에 적용된 기술 (1)
GCGC- CGCII 서버 엔진에 적용된 기술 (1)GCGC- CGCII 서버 엔진에 적용된 기술 (1)
GCGC- CGCII 서버 엔진에 적용된 기술 (1)상현 조
 
GCGC- CGCII 서버 엔진에 적용된 기술 (6) - CGCII Server Sample
GCGC- CGCII 서버 엔진에 적용된 기술 (6) - CGCII Server SampleGCGC- CGCII 서버 엔진에 적용된 기술 (6) - CGCII Server Sample
GCGC- CGCII 서버 엔진에 적용된 기술 (6) - CGCII Server Sample상현 조
 
GCGC- CGCII 서버 엔진에 적용된 기술 (8) - Group System
GCGC- CGCII 서버 엔진에 적용된 기술 (8) - Group SystemGCGC- CGCII 서버 엔진에 적용된 기술 (8) - Group System
GCGC- CGCII 서버 엔진에 적용된 기술 (8) - Group System상현 조
 
하이퍼레저 패브릭 데이터 구조
하이퍼레저 패브릭 데이터 구조하이퍼레저 패브릭 데이터 구조
하이퍼레저 패브릭 데이터 구조Logpresso
 
GCGC- CGCII 서버 엔진에 적용된 기술 (4) - Executing System
GCGC- CGCII 서버 엔진에 적용된 기술 (4) - Executing SystemGCGC- CGCII 서버 엔진에 적용된 기술 (4) - Executing System
GCGC- CGCII 서버 엔진에 적용된 기술 (4) - Executing System상현 조
 

What's hot (20)

Blockchain Study(5) - Smart Contract(스마트 계약)
Blockchain Study(5) - Smart Contract(스마트 계약)Blockchain Study(5) - Smart Contract(스마트 계약)
Blockchain Study(5) - Smart Contract(스마트 계약)
 
세션1. block chain as a platform
세션1. block chain as a platform세션1. block chain as a platform
세션1. block chain as a platform
 
Blockchain Study(3) - 이더리움(Geth)
Blockchain Study(3) - 이더리움(Geth)Blockchain Study(3) - 이더리움(Geth)
Blockchain Study(3) - 이더리움(Geth)
 
Blockchain 3rd smart contract programming
Blockchain 3rd smart contract programmingBlockchain 3rd smart contract programming
Blockchain 3rd smart contract programming
 
Blockchain 1st bitcoin_core
Blockchain 1st bitcoin_coreBlockchain 1st bitcoin_core
Blockchain 1st bitcoin_core
 
세션5. web3.js와 Node.js 를 사용한 dApp 개발
세션5. web3.js와 Node.js 를 사용한 dApp 개발세션5. web3.js와 Node.js 를 사용한 dApp 개발
세션5. web3.js와 Node.js 를 사용한 dApp 개발
 
GCGC- CGCII 서버 엔진에 적용된 기술 (5) - Executor with Exception
GCGC- CGCII 서버 엔진에 적용된 기술 (5) - Executor with ExceptionGCGC- CGCII 서버 엔진에 적용된 기술 (5) - Executor with Exception
GCGC- CGCII 서버 엔진에 적용된 기술 (5) - Executor with Exception
 
Blockchain 4th dapp programming
Blockchain 4th dapp programmingBlockchain 4th dapp programming
Blockchain 4th dapp programming
 
예제로 배우는 이더리움 결제구현 (거래소 지갑 구현 예시)
예제로 배우는 이더리움 결제구현 (거래소 지갑 구현 예시)예제로 배우는 이더리움 결제구현 (거래소 지갑 구현 예시)
예제로 배우는 이더리움 결제구현 (거래소 지갑 구현 예시)
 
Block chain introduction slideshare
Block chain introduction   slideshareBlock chain introduction   slideshare
Block chain introduction slideshare
 
GCGC- CGCII 서버 엔진에 적용된 기술 (3) - Exception
GCGC- CGCII 서버 엔진에 적용된 기술 (3) - ExceptionGCGC- CGCII 서버 엔진에 적용된 기술 (3) - Exception
GCGC- CGCII 서버 엔진에 적용된 기술 (3) - Exception
 
11_웹서비스활용
11_웹서비스활용11_웹서비스활용
11_웹서비스활용
 
Dapp시연 150214
Dapp시연 150214Dapp시연 150214
Dapp시연 150214
 
Multithread design pattern
Multithread design patternMultithread design pattern
Multithread design pattern
 
GCGC- CGCII 서버 엔진에 적용된 기술 (2) - Perfornance
GCGC- CGCII 서버 엔진에 적용된 기술 (2) - PerfornanceGCGC- CGCII 서버 엔진에 적용된 기술 (2) - Perfornance
GCGC- CGCII 서버 엔진에 적용된 기술 (2) - Perfornance
 
GCGC- CGCII 서버 엔진에 적용된 기술 (1)
GCGC- CGCII 서버 엔진에 적용된 기술 (1)GCGC- CGCII 서버 엔진에 적용된 기술 (1)
GCGC- CGCII 서버 엔진에 적용된 기술 (1)
 
GCGC- CGCII 서버 엔진에 적용된 기술 (6) - CGCII Server Sample
GCGC- CGCII 서버 엔진에 적용된 기술 (6) - CGCII Server SampleGCGC- CGCII 서버 엔진에 적용된 기술 (6) - CGCII Server Sample
GCGC- CGCII 서버 엔진에 적용된 기술 (6) - CGCII Server Sample
 
GCGC- CGCII 서버 엔진에 적용된 기술 (8) - Group System
GCGC- CGCII 서버 엔진에 적용된 기술 (8) - Group SystemGCGC- CGCII 서버 엔진에 적용된 기술 (8) - Group System
GCGC- CGCII 서버 엔진에 적용된 기술 (8) - Group System
 
하이퍼레저 패브릭 데이터 구조
하이퍼레저 패브릭 데이터 구조하이퍼레저 패브릭 데이터 구조
하이퍼레저 패브릭 데이터 구조
 
GCGC- CGCII 서버 엔진에 적용된 기술 (4) - Executing System
GCGC- CGCII 서버 엔진에 적용된 기술 (4) - Executing SystemGCGC- CGCII 서버 엔진에 적용된 기술 (4) - Executing System
GCGC- CGCII 서버 엔진에 적용된 기술 (4) - Executing System
 

Blockchain Study(2) - POW&POS

  • 1. POW&POS proof of work and proof of stake
  • 2. - Index - 1. SHA256 2. POW&POS 3. Ethereum 4. Q/A
  • 4.
  • 5. SHA256? SHA256이란, SHA(Secure Hash Algorithm) 알고리즘의 일종. ex) password 1. Preimage resistance : 주어진 해쉬 값에 대해, 해쉬값을 생성하는 입력값 추적 어려움. 2. Second Preimage resistance : 입력값에 대해, 그 입력의 해쉬 값을 바꾸지 않으면서 입력을
 변경하는 것이 계산상 어려움. 3. Collision resistance : 해쉬 충돌에 대한 안정성. 같은 해쉬값을 생성하는 두 개의 입력값을
 찾는 것이 계산상 어려움
  • 6. 예를 들어 SHA256 알고리즘을 이용해서 다음과 같은 해쉬값을 얻을 수 있다. In BlockChain SHA-256 ("hello world" + " 0") = 3cad76d283686392c9c1813baf25239a3f09b9e075d830984a9a93d62b93adb8 SHA-256 ("hello world" + " 1") = 063dbf1d36387944a5f0ace625b4d3ee36b2daefd8bdaee5ede723637efb1cf4 SHA-256 ("hello world" + " 2") = ed12932f3ef94c0792fbc55263968006e867e522cf9faa88274340a2671d4441 SHA-256 ("hello world" + " 3") = 4ffabbab4e763202462df1f59811944121588f0567f55bce581a0e99ebcf6606 SHA-256 ("hello world" + " 4") = 000e5e410dd915d190cce21d72a40bdbcc9db96d80de87d28896b56766f31b4e SHA-256 ("hello world" + " 5") = f6471bb5cd1837f3ef4891903c40c5300c9f0fd8a902d5c3774628c44dab78ed SHA-256 ("hello world" + " 6") = 6a9b5a89258b50744dfdf62e49ac6d869e8916e04ce57d9d1fc953daed9bfcd8 여기서 hello world 문자 뒤에 나타는 숫자는 앞서 블록 생성시, Nonce를 의미한다. 따라서 Nonce 값이 증가한다는 것은 그만큼 연산횟수가 늘어나고, 해쉬값을 이용해 역으로 추적하기가 사실상 어렵다고 보면 된다. 물론 양자컴퓨터로 계산을 하면 된다는 사람이 있는데, 양자컴퓨터로 계산하기 위해 만드는 비용 이 훨씬 크기 때문에 시도하지 않는 것으로 보인다. 추가하자면, 현제 SHA-2 알고리즘의 대안으로 SHA-3 알고리즘을 공모하고 있다고 한다.
  • 8. 이제부터 설명한 부분은, 프로토콜이자 함수입니다. POW(Proof Of Work) 해쉬 파워가 우세한 블록이 메인넷에 등록되었다고 설명했습니다. 이러한 과정에서 이용되는 POW(작업증명)는 일명 “채굴”이라고도 불립니다. 많은 해쉬를 가진 사람이 코인을 얻을 수있는 블록을 더 많이 발견할 수 있는 구조 입니다. 앞서 설명한 해쉬연산을 처리해 얻는 방식입니다. 주로 비트코인, 라이트코인, 지케시, 모네로 등이 있습니다.
  • 9. 왜 블록을 생성하는데, 이러한 과정이 필요할까? POW(Proof Of Work) 모든 네트워크의 노드(컴퓨터)들이 동시에 블록을 생성하는 것을 방지하고자 만들어 졌습니다.
  • 10. POW(Proof Of Work) POW 방식은 GPU연산/ASIC 컴퓨터를 이용해 계산을 하기 때문에 채굴하는데 비용이 어마어마 하게 듭니다. 현재 비트코인의 경우 500만TH/s (TH/s : 1초에 1조 연산)이 듭니다.
  • 11. POW(Proof Of Work) 또한 채굴을 하다보면, 전체 채굴의 51%이상의 영향을 미치는 채굴자가 새로운 블록을 생성할 확률이 높기때문에 잘못된 Transaction을 일으켜 전체 비트코인 시장에 영향을 미치게 될 수 있 습니다. 즉, 해쉬파워가 전체 시장에 51%에 해당하는 영향을 미치는 사람이 있다면, 잘못된 정보를 블록 에 기입해 블록을 생성할 수 있기 때문입니다.
  • 13. 앞서 설명한 문제점들 때문에 대안으로 나온 POS 알고리즘이 있습니다. (지분증명방식) POS(Proof Of Stake) POS(지분증명방식)는 컴퓨터의 해쉬파워가 아닌, 가지고 있는 돈(Stake)을 기준으로 블록을 생 성합니다. 예를들어 50번째 블록 생성시, A의 기여도가 50이고 B의 기여도가 80이라면 B가 생성한 블록을 선택합니다. (여기서 POW와 다른점은 50번째 블록을 동시에 생성한다는 것 입니다.)
  • 14. POS(Proof Of Stake) POS 방식은 블록 생성시, 보상체계가 없습니다. 즉 직접적인 채굴이 아니라는 것 입니다. 대신, POS는 해당 지분만큼의 Transaction 수수료를 받습니다.
  • 15.
  • 17. 이제 전반적인 블록체인에 관해 이해를 했으니 본격적으로 토큰을 만들어보겠습니다. Ethereum(이더리움) 본격적으로 만들기 전, 코인과 토큰의 차이점 그리고 이더리움에 대해서 간략하게 알고 넘어가겠습니다.
  • 18. 블록체인을 기반으로 “스마트 계약”기능을 구현 하기 위한 분산형 컴퓨팅 플랫폼이다. Ethereum(이더리움) “ ” •발표일 : 2015년 7월 30일 •프로그래밍 언어: C++, Go, 러스트 •GPLv3, LGPLv3 •스마트 계약 가능 •스마트 계약을 통한 토큰 생성 가능
  • 19. 비탈릭 부테린 1994년 생 러시아에서 태어났으나, 99년에 캐나다로 이민. 현재는 스위스에서 거주중이다. 아버지가 알려준 비트코인으로부터 큰 영향을 받았다. 2011년에 비트코인 매거진을 만듬. 2012년부터는 본격적으로 팀을 구성하고 이더리움 백서를 작성 2013년에는 다니던 워털루 대학교를 자퇴 / 이스라엘, 네덜란드, 미국 등으로 여행 •언어 : 영어,프랑스어, 독일어,광동어, 그리스어 •14년 IT소프트웨어상을 수상(마크 저커버그를 제치고) •그냥 천재 프로그래머
  • 20. 비탈릭 부테린(당시 21세) 블록체인에 스마트 계약 데이터 추가하면… •계약 기록 •계약 내용 •계약 코드 •이행 이력 •이행 결과
  • 21. Ethereum(이더리움) 다음 시간에 할 내용이지만, 먼저 살짝 이더리움에 대해 소개를 하자면 •이더리움은 왜 흥할까? •이더리움은 네트워크이자 프로토콜이다. •이더리움을 기반으로 ERC-20 토큰을 생성 할 수 있다.
 - 스마트 컨트렉트를 만들어보자!
 - ERC : Ethereum for Request for Comments •DAPP 의 구조와 현황 그리고 미래