Multichain KOR

Multichain 이란?

다중블록체인 구조는 거래내역을 저장하는 메인 블록체인과 블록체인 운영에 관계되는 여러 서브 블록체인으로 구성된다. 이는 다양한 데이터구조를 단순화시키며 복잡한 비즈니스모델을 체계적인 데이터베이스로 바꾸어 주는 장점을 가지고 있다.

  • blockchain의 종류

  • 내부 체인 연결

  • 블록-검증

  • Block Structure

    • Main Block Structure

    • Warrant Block Structure

    • Citizen Block Structure

    • Oracle Block Structure

Block Chain의 종류

  • Main block chain: 단순 거래, 블록체인 기여도에 따른 보상 내역 등을 기록

  • Citizen block chain: SymID 별 계정 정보 및 업데이트 정보 기록

  • Warrant block chain: 인증 노드 선출 정보 기록

  • Oracle block chain: 운영 정책 파라미터, 토큰간 환율 정보 등 기록

  • Future block chain: 예약 거래 기록 (개발중)

내부 체인 연결 (Inter-connection Of Chains)

Main Block은 거래 내역이나 기록 사항이 없더라도 보안성 강화를 위해 일정 주기마다 생성되며, Sub Block은 기록할 데이터가 있는 경우 Main Block과 함께 생성된다.

Sub Block은 Main Block보다 데이터가 적어 상대적으로 조작의 위험성이 높다. 따라서 Sub Block이 생성될 때 Main Block의 정보(Number)를 블록에 기록하고, 해당 Sub Block 정보(Number, Hash)를 Main Block에 기록함으로써 임의로 Sub Block만 조작할 수 없도록 서로 연결하여 관리된다. (Main Block의 CBHash, WBHash, OBHash, CBNum, WBNum, OBNum 과 각 Sub Block의 RelatedMBNum 참고)

여러 개의 블록들은 다수의 내부 체인으로 연결되며 DAG(Directed Acyclic Graph)를 그리며 성장해 감으로 인해 비가역성을 확보한다. Sub Block Chain은 넝쿨 식물처럼 Main Chain을 지주삼아 같이 자라는 방식이다. 따라서 특정 체인의 특정 블록을 조작 하기위해서는 메인 블록 체인의 최초블록부터 시작해서 주기적으로 변경되는 불특정 다수의 보증 노드들의 전자서명을 모두 위조해야 한다.

또한 Main Block이 생성될 때 유효한 Sub Block의 정보(Number)를 기록함으로써 Main Block 생성 시점에 활동 중인 Sub Block의 검색이 가능하다.

모든 Sub Block은 생성시기와 적용 시기가 다를 수 있다.

아래 그림에서 Main Block M2 생성시 최종 Citizen Block은 C1이다. 즉 C1에 기록된 내용은 Main Block M2부터 반영된다는 의미이다.

아래 그림에서 Main Block M3부터 활동한 Warrant Node들은 W1에 기록되어 있다는 것을 알 수 있다. Warrant Block은 해당 Warrant Block을 적용하기 몇 블록 이전에 생성된다. (예를 들어 Main Block Number가 100에서 200까지 적용할 Warrant Block은 Main Block Number가 90일때 생성된다.) 이를 관리하기위해서 Warrant Block에는 각 Warrant Block의 적용 주기와 Warrant Node 임기가 포함되어 있다.

참고 : Main Block의 ActiveCBNum, ActiveWBNum, ActiveOBNum

블록 검증

블록의 검증은 블록 내에 포함된 서명 값을 검증함으로써 이루어진다. 블록 내의 서명은 결합 서명 방식을 사용하며, 이는 블록 합의에 찬성한 보증 노드들이 생성한 서명을 결합하여 생성된다.

이렇게 생성된 서명을 검증하기 위해서는 블록 합의에 찬성한 전체 보증 노드들의 신원을 확인할 수 있어야만 하며, 이는 블록을 조작하기 위해서는 결합 서명 생성에 사용된 전체 보증 노드들의 전자서명을 모두 위조해야 한다는 것을 의미한다.

Block Structure

  • Data size

Main Block Structure

  • Header Structure in Main Block

  • Transactions in Main Block

  • Rewards in Main Block

  • ValidatorInfos in Main Block

  • SignInfos in Main Block

-   검증자 서명 범위 (Header, Transactions, Rewards)
-   프라이머리 서명 범위 (Header, Transactions, Rewards, ValidatorInfos)

Warrant Block Structure

  • Header in Warrant Block

  • Warrant Data in Warrant Block

Citizen Block Structure

  • Header in Citizen Block

  • Citizen Data in Citizen Block

Oracle Block Structure

  • Header in Oracle Block

  • Oracle Data in Oracle Block

Last updated