개요
OpenHash의 해시 체인은 기존 블록체인의 단일 체인 구조 대신 Git과 유사한 분산 병합 구조를 채택합니다. 각 계층이 독립적인 체인을 유지하면서 주기적으로 병합됩니다.
블록 구조
Block {
header: {
version: uint32,
prevHash: bytes32,
merkleRoot: bytes32,
timestamp: uint64,
layerId: string,
height: uint64
},
transactions: Transaction[],
signatures: BLSSignature[]
}
머클 트리
거래들은 머클 트리로 구성되어 효율적인 검증이 가능합니다.
루트 해시
모든 거래의 집약적 표현
포함 증명
O(log n) 복잡도
비포함 증명
Sparse Merkle Tree 활용
계층 간 동기화
상위 계층은 하위 계층의 머클 루트만 수집하여 저장합니다.
L1 머클 루트
→
L2 블록에 포함
→
L3 집계
→
...
대역폭 절약: 전체 거래가 아닌 32바이트 머클 루트만 전파
충돌 해결
동시 블록 생성 시 Git의 병합 전략과 유사하게 처리합니다.
- Fast-forward: 단순 추가 시
- 3-way merge: 분기 발생 시
- LPBFT 합의: 충돌 해결 불가 시