DApp을 위한 블록체인 플랫폼 고민하기 - IOST
스토리체인(Storichain) 이라는 프로젝트를 진행중에 있으며, 적합한 블록체인 플랫폼을 조사차 본 글을 쓰게되었다. 이더리움을 메인넷으로 쓰는 사이드체인이 적합할지 태생부터 속도 및 지원 서비스가 충분한 자체 블록체인 플랫폼들을 적용할지 아직 연구중에 있다. 조사하고 있는 블록체인 플랫폼에 따라 연재순서를 다음과 같이 결정하였다.
1. IOST
- Ox
- Micropayment
- SimpleToken
- Loom Network
- Plasma
- QuarkChain
- Luniverse
IOST 특성요약
목적 :
- Facebook,Amazon,Dropbox등과 같은 대규모 서비스를 탈중앙화 방식의 Dapp으로개발지원
특성 :
- IOST 는 Sidechain 아닌, 블록체인 플랫폼
- 채굴형 코인이 아님. 합의방식은 무작위PoS
작동방식 :
- 램덤에 의한 데이터 분배와 신뢰도 점수 높은 노드가 결정
강점 :
- 노드 관리하는 Sharding과 Pruning을 위한 자체 알고리즘(HUDS, EDS, PoB)
단점 :
- 블록체인 플랫폼이므로 많은 Dapp을 유치시킬 전략 필요
- 개발지원 툴, 언어, 기술문서 부족
세부특성 설명
IOST의 모토는 IoS(Internet of Services)로서 대규모 온라인 서비스와 디지털 상품 거래를 탈중앙화 방식으로 서비스할 수 있는 기반 인프라뿐만 아니라 Dapp을 개발할 수 있는 환경을 제공한다. 수직적 확장성과 트랜잭션 처리량을 늘리기 위해서 자체 Sharding 및 합의 알고리즘을 도입하였고, 초당 100,000 tps 를 예상하고 있다. 주요 기술에 대한 작동 방식을 알아본다.
효과적 분산 샤딩(EDS, Efficient Distributed Sharding)
IOSChain의 인프라는 노드가 가십 프로토콜을 통해 데이터를 보급하는 Bitcoin 및 Ethereum과 같은 기존의 잘 알려진 블록체인과 유사합니다. 시스템은 데이터와 상태를 조각(Shard)으로 분할합니다. 각 노드는 시스템의 하나의 샤드를 담당합니다. 미사용 트랜잭션 (UTXO)은 해당 샤드의 노드 메모리에 저장됩니다. 이것은 다음과 같은 문제를 야기합니다.
- 시스템을 샤드(조각)으로 나누는 법.
- 각 샤드(조각)에서 합의에 도달하는 방법.
- 샤드(그룹) 간 거래를 수행하는 방법.
위와 같은 문제는 확장성 문제를 해결하고자 트랜잭션을 샤드(서브그룹)으로 나누기 때문에 나타납니다.
위 문제를 공정하고 안전하게 해결하기 위해 노드를 샤드에 할당하고 각 샤드의 리더를 선출하는 등 많은 무작위 작업을 수행해야합니다. 결과적으로, 우리는 먼저 위조가 불가능한 (균일하게 랜덤 한) 분산 난수 생성 프로토콜을 설계해야합니다. 난수 생성 프로토콜을 사용하면 위의 과제를 하나씩 해결할 수 있습니다. 사용된 기술들은 다음과 같습니다.
Distributed Randomness Protocol (DRP) - 악의적 인 노드의 비율이 특정 사전 정의 된 임계값 미만일 때 위조가 불가능하고 편향되지 않습니다. DRP에 의해 생성 된 난수는 시스템을 샤드로 나누고 노드를 다른 샤드에 할당하고 각 샤드의 리더를 선출하는 데 사용됩니다.
Efficient Distributed Sharding (EDS) – 암호학적 분류를 통해 DRP와 VRF 기반 리더 선거의 조합을 사용하여 충분히 크고 강력하게 편향성에 저항하는 샤드(상태 및 프로세스 트랜잭션을 기록하는 유효성 검사자의 하위 집합)을 형성하는 참신한 방법.
TransEpoch – 시스템 작동 가능성을 유지하면서 에프크 전환 동안 안전한 유효성 검사자에 샤드 할당 프로토콜
Atomix – 비잔틴 설정에서 트랜잭션 원자성을 보장하는 새로운 2 단계 inter-shard 원자 커밋 프로토콜
Proof-of-Believability (PoB) – 하나의 샤드에서 트랜잭션 처리량을 최대화하는 믿을만한 - 최초 접근 방식의 비잔틴 합의문 프로토콜을 통해서 시스템의 안전성과 생동감을 보장한다.
ex) 한 샤드(그룹)에서 PoB 점수가 제일 높은 노드에서 전권을 주어서 속도를 높임.
Micro State Blocks (MSB) – 유효성 검사자의 저장 및 부트스트랩(초기 가동) 비용을 최소화하는 새로운 메커니즘입니다.
가능한 도면을 통해서 설명하고자하나 기술문서나 해설서가 많이 부족하다. 백서의 핵심 개념들은 구현하는덴 크게 어려워 보이지 않으므로 실현 가능할 것으로 보인다. 결론적으로 Dapp을 담기에는 현시점에는 부족해 보인다.
참고문서
[1]. https://iost.io/iost-whitepaper/
[2]. https://steemit.com/coinkorea/@kilu83/crypteemo-iost