합의(Consensus)
- 블록체인 모든 참여자의 원장(블록/상태)에 일관성이 있는지 확인하는 작업
- 데이터(트랙잭션) 처리하는데 있어서 누가 어떻게 할지에 대한 정의
거래 및 거래 실행 순서에 대한 동의
동일한 원장을 유지하기 위하여 검증 참여자들의 상태를 동기화
거래원장이 일치하지 않는 참여자 노드의 상태 수정
악의적인 참여자 노드들은 격리
블록체인에서 가장 중요한 Data는 블록체인이다.
합의 알고리즘 예시
- Proof of work 작업증명: 퍼블릭 블롯체인에서 사용
- Proof of stake 지분증명: 퍼블릭 블롯체인에서 사용
- Solo/No-ops 중앙집중식: 프라이빗 블롯체인에서 사용
- Kafka/Zookeeper: 프라이빗 블롯체인에서 사용
- PBFP based: 프라이빗 블롯체인에서 사용
- Proof of Elapsed Time
블록의 해쉬코드가 특정 범위(000000...) 안에 들어가도록, 블록 안의 난수를 계속해서 바꾸는 것을 채굴, Mining이라고 한다. 이는 합의 알고리즘 PoW의 작업증명 방식이다. 채굴 시간이 평균적으로 10분이 유지되도록, 채굴 난이도를 조절한다(0의 개수를 조절). 블록체인 네트워크의 노드들은 서로 연결되어있어, 채굴 결과를 공유하고 알려준다. 각 노드들에는 채굴에 관한 프로그램이 들어있다. 노드가 채굴하여 블록을 생성하는 이유는 Coin이라는 보상을 받기 위함이다. 노드 내부의 Coinbase에 Coin을 입금할 수 있게된다.
블록체인 과정 예시(Pow 합의 알고리즘의 기본): 작업에 의한 블록 생성 원리
1) 5개의 노드(N1, N2, N3, N4, N5)가 있다.
2) 블록 2개를 서로 가지고 있다. 채굴해야하는 트랙잭션들이 Pool에 순서대로 쌓여져있다.
3) 어떤 노드, N4가 Pool의 트랙잭션 채굴에 성공하여 블록을 생성한다.
4) 다른 노드들에게 검증을 받기위해 블록과 해쉬를 보낸다.(검증하면 수수료를 받는다.)
5) 다른 노드들은 검증에 문제가 없으면, 블록에 서명을 넣고 돌려보낸다.
6) 검증을 51% 이상 받으면, N4는 기존에 가지고있던 블록에 추가할 수 있다.
7) 다른 노드들에게도 추가하라고 보낸다.
* 노드들이 동시에 채굴에 성공했을 때
1) 채굴 결과 생성된 블록을 검증받은 후, 뿌린다.
2) 다른 노드들은 두 블록을 받아 자신에게 이득이 되는 것을 선택한다.(Pow의 경우 먼저 오는 블록을 선택)
3) 모든 노드의 블록의 개수는 똑같다. 가지고있는 블록은 다를 것이다.
4) 이후, 어떤 노드(N1)가 채굴에 성공해 마찬가지로 검증받은 후, 뿌린다.
5) N1과 같은 블록을 가지고있던 노드들은, 그대로 블록에 넣는다.
6) N1과 다른 블록을 가지고있던 노드들은, N1의 블록들을 그대로 받는다.
7) 선택받지 못한 블록의 보상 Coin은 그대로 사라진다.
-> 멀티체인(이중지불) 문제가 있을 수 있다!!
-> 일정시간동안 트랜잭션을 신뢰할 수 없는 문제가 생긴다.
-> 이런 합의 프로세스를 통해 데이터를 저장하고, 저장된 데이터를 기반으로 은행처럼 원장을 기록한다. (은행이 할 일을 은행이 할 필요가 있을까? 네트워크의 데이터를 기준으로 하자!)
프라이빗 블록체인은 퍼블릭과 달리, peer와 orderer로 이루어져있고, 합의가 2번 이루어지므로 멀티체인 문제가 발생하지 않는다.
추가적인 블록체인 기술
- 거래소 기술(중앙화된 거래소): 퍼블릭/프라이빗 key 관리를 맡긴다.
- ->Defi (암호 자산의 거래): 암호화폐 사이의 거래
- NFT(암호 자산의 생성과 활용): ID 부여가능한 아이템을 거래하는 옥션을 만들자!
블록체인 개념정리 - 용어
블록
블록체인
분산원장
거버넌스: 과거의 일방적인 정부 주도적 경향에서 벗어나 정부, 기업, 비정부기구 등 다양한 행위자가 공동의 관심사에 대한 네트워크를 구축하여 문제를 해결하는 새로운 국정운영의 방식
컨소시엄
트랙젝션: 블록체인에 저장되는 데이터의 규격
암호화폐
gas
머클트리: 잘못된 블록이 존재할 때, 잘못된 블록부터 이전의 모든 블록을 검사하는데는 시간이 너무 오래걸리므로, 머클트리를 생성하여 log(n)으로 시간을 줄일 수 있다. 이더리움에 사용된다.
BFT 알고리즘(비잔틴 장군 극복 알고리즘): N이 작을 때 쓸 수 있는 합의 알고리즘
스마트 컨트랙트: 네트워크와 어플리케이션을 이어주는 매개체 역할을 해주는 프로그램
SDK
API
플랫폼: 실행환경/개발환경
'IT > 블록체인' 카테고리의 다른 글
[블록체인] 정보 보안 (0) | 2022.04.22 |
---|---|
[블록체인] NFT (0) | 2022.04.18 |
[블록체인] 블록체인의 분류/적용분야 (0) | 2022.04.18 |
[블록체인] 블록체인 이론 (0) | 2022.04.12 |
[블록체인] 블록체인이란? (0) | 2022.04.11 |