Steem Smart Contracts: 합의 계층 구조 소개

3년 전

스팀 스마트 계약(Steem Smart Contracts, 이하 SSC로 표현)과 관련해서 몇 달동안 작업하고 있습니다. 이 기간 동안, 합의 계층 아키텍처를 몇 차례 변경했고, 여러 오류들이 발견되서 처음부터 다시 시작해야 하는 경우도 수 차례 있었습니다.

SSC의 합의 계층은 DPoS 체계를 기반으로 하고 있으며, 데이터 무결성을 확인하기 위해 P2P 계층과 스팀 블록체인을 사용하는 하이브리드 방식입니다. 합의 계층은 다음과 같이 구성될 것입니다.

증인 선거

  • ENG 토큰 보유자들의 투표를 통해 증인을 선출합니다.
  • ENG 스테이킹 수량은 투표 영향력과 비례합니다.
  • 스팀 계정 하나 당 증인 30 명까지 투표할 수 있습니다.

라운드

  • 1 라운드 = 21 개 슬롯(slot)
  • 슬롯 특성:
    • 상위 20 위 증인은 자동적으로 슬롯을 받습니다.
    • 백업 증인 1 개가 무작위로 선택됩니다.
    • 21개 증인이 정해지면, 슬롯 순서는 무작위로 진행됩니다.
  • 라운드의 마지막 증인은 슬롯을 검증하는 임무를 담당합니다.

라운드 검증(verification) 과정

  • 라운드를 구성하는 모든 블록이 스팀 블록체인으로부터 파싱되면, 라운드 검증을 담당하는 증인은 P2P 방식으로 라운드에 참가한 다른 증인들에게 "라운드 해시"(블록의 모든 해시를 요약한 해시)를 보냅니다.
  • 17개의 서명을 받게 되면, 이 서명들이 포함된 custom_json이 스팀 블록체인에 브로드캐스트되며, 노드는 이것을 감지해서 증인의 서명을 검증하는 스마트 계약을 실행합니다.
  • 라운드의 일부분이 포함된 블록은 "검증된" 것으로 표시(marked)됩니다.
  • 라운드 검증 역할을 수행한 증인은 네트워크 보안에 기여한 대가로 ENG 토큰이 보상으로 받게 됩니다.

증인 필수 조건

  • 시스템 요구사항: 8Gb 램, 20Gb 저장공간(저장공간의 경우 현재는 4Gb만 필요한 상황이긴 합니다)
  • 200 SP(스팀 파워) 이상을 보유한 스팀 계정. 스팀 블록체인에 custom_json을 브로드캐스트하기 위한 조건임.

테스트넷

제 로컬 네트워크에서는 코드가 상당히 안정적으로 동작했지만, 인터넷에서 해당 코드를 테스트해봐야 합니다. 며칠 안에(몆 주가 될수도) 테스트넷을 출시할 예정이며 초기에는 5 명의 증인으로 운영할 생각입니다. 테스트넷 참여에 관심있는 분들은 저에게 문의해주시길 바랍니다. (discord 채널에서 Harpagon#4087 에게 문의하시면 됩니다)

합의 계층 코드는 아래 github 저장소에서 확인하실 수 있으며, 증인 보상 시스템은 아직 마련되어 있지 않습니다.

https://github.com/harpagon210/steemsmartcontracts/tree/witnesses

원문은 https://steempeak.com/steemsmartcontracts/@harpagon/steem-smart-contracts-a-few-words-regarding-the-consensus-layer이며, 스팀 엔진 팀 동의하에 번역을 진행했고, 스팀 코인판 공식 번역가 @dakeshi가 번역을 담당했습니다.


SSC 관련 참고 글

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
STEEMKR.COM IS SPONSORED BY
ADVERTISEMENT