Block-Chain

Klaytn: 합의, 블록 생성 및 전파

WebDevLee 2022. 10. 13. 15:51

블록체인 플랫폼인 Klaytn(클레이튼)에 대한 기본 개념을 정리하였습니다.



< Introduction >

클레이튼(Klaytn)은 ㈜카카오의 자회사인 그라운드엑스가 개발한 디앱(dApp·분산애플리케이션)을 위한 블록체인 플랫폼입니다. 

기존의 블록체인 플랫폼들은 사용자 친화적인 인터페이스가 없어 이용자들이 서비스를 이용하기에 장벽이 높았다는 점을 지적하며 블록체인의 대중화를 위해 만들어졌습니다.

 

 


< 합의(Consensus) >

합의 알고리즘(consensus algorithm)이란 다수의 참여자들이 통일된 의사결정을 하기 위해 사용하는 알고리즘을 말합니다.

클레이튼의 합의 알고리즘 : IBFT(이스탄불 BFT)

 

  • 합의 알고리즘의 종류
    Public 블록체인: PoW, PoS 등
    Private 블록체인: pBFT, Raft 등

: 보통 private 블록체인이 public 블록체인보다 더 효율적으로 합의에 도달

 

BFT(비잔티움 결함 허용) 알고리즘이란

- 참여 노드수를 제한하여 높은 성능과 효율성을 달성
- 하지만, 참여 노드수를 제한하고 합의결과를 소수의 노드만 알고 공유하기 때문에 때문에 분산화 / 투명성이 약화되어 블록체인 혜택을 의미있게 사용하지 못함.

 

IBFT(이스탄불 BFT) 알고리즘의 작동 방식
: 공개를 통한 개인적인 합의 신뢰 모델(private consensus with public disclosure)
- 합의를 달성하는 소수의 private한 노드들과
- 바깥에서 블록 생성 결과를 접근 및 검증 가능한 노드들로 구성

propose : proposer(블록을 등록할 사람) 노드를 뽑음, 나머지 노드는 validator
pre-prepare : proposer가 validator노드들에게 블록을 전달
prepare : validator가 proposer에게 받은 블록을 다른 노드들에게 전달(잘 받았다고 확인)
commit : proposer에게 받은 블록을 승인할건지 안할건지 결정(3분의 2이상이 승인해야 네트워크에 등록) + 여기서 Finality 점리됨
reply : 최종 결정(승인일 경우 네트워크에 블록 등록)

 

장점 : 합의 노드들끼리 통신을 통해 합의를 이끌어내고, 그 즉시 완결성(Finality)을 가짐

단점 : 합의 노드가 많아지면 많아질수록 통신량이 기하급수적으로 늘어남(But, 합의 노드중 일부만 뽑아서 제한하도록 설정되어 있음)

=> 블록체인, 이더리움처럼 Finalty를 가지는데 시간이 걸리거나 확률적이지 않음. 


 

 


< 블록 생성 및 전파 >

1. 클레이튼의 블록 생성 사이클(Cycle)

  • 블록생성주기 = 라운드(round)
    => 각 라운드는 새로운 블록을 생성하고 끝나는 즉시 새로운 라운드가 시작
  • 블록 생성 간격 = 약 1초

 

2. 제안자와 위원회 선택(Proposer and Committee Selection)

: 각 라운드에서 블록을 생성할 제안자를 무작위(randomly) & 결정적 (deterministically)으로 Governance Council 노드들 중 뽑음

+. Governance Council이란 코어셀들의 집합, 즉 합의노드들을 말한다.

  • 각각의 합의 노드가 가장 최근의 블록 헤더에서 파생 된 난수를 사용하여 자기가 라운드에 선택된 Governance Council 인지 증명하는 암호화 작업을 진행 

 

3. 블록 제안과 검증(Block Proposal and Validation)

  • 제안자로 선택된 노드는 자신이 그 라운드에서 제안자로 뽑힌 증거를 다른 합의노드들에게 알림
    => 제안자의 공개키를 이용해 입증가능한 암호증명 이용
  • 합의노드 그룹은 제안자에게 자기들이 왜 위원회로 뽑혔는지 증거와 함께 전달
  • 누가 제안자고 누가 위원회인지 파악이 되면 제안자가 트랜잭션 풀에서 트랜잭션을 선택하고 정렬해서 블록을 만들고 합의

 

4. 블록 전파(Block Propagation)

  • 위원회가 합의에 이르게 되면(3분의 2가 동의) 블록이 모든 합의 노드들에게 전달
  • 프록시 노드를 통해 엔드포인트 노드들에게 블록이 전달