# 1️⃣ Introduction
비트코인, 이더리움이 대표하는 Layer-1 블록체인은 완전한 탈중앙화 플랫폼으로 많은 주목을 받아 왔지만 심각한 확장성이 문제로 제기되어 왔다. 비잔틴 (Byzantine) 상황에도 정상 노드들의 상태를 일관성있게 유지하기 위해 합의 (Consensus)를 도출하게 되는데 이 합의 과정이 상당한 시간을 요구하는 작업이기 때문이다.
실제 응용에 더 나가가 실시간 응용에 적용 가능한 블록체인 플랫폼들이 개발되었고 이들은 허가형 블록체인의 범주로 나눌 수 있다. 그러나 다소 약한 탈중앙화 속성이 이들 블록체인 플랫폼의 큰 단점으로 지적된다.
❓ 어떻게 블록체인의 탈중앙화와 확장성 문제를 해결할 수 있을까?
이와 같은 질문에서 Watchdog Network 연구/개발이 시작되었다.
# 2️⃣ (Basic Idea) Combination of two blockchains with different properties: highly scalable blockchain and fully decentralized blockchain
"허가형 블록체인을 통해 높은 수준의 확장성을 달성하면서 약한 탈중앙화 속성을 보완한다."
📕 포스텍 SSLAB (공동 연구기관)은 허가형 블록체인의 약한 탈중앙화 속성을 보완하는 솔루션으로 Audit Chain 을 개발한 바 있다.
요약하면, Watchdog Network는 허가형 블록체인에서 합의된 블록 데이터에 한번 더 자신의 틸중앙화 네트워크를 통해 검증 및 저장하는 방식이다.
🔥 이는 허가형 블록체인에서 추후 발생가능한 임의의 😈 위변조 공격을 차단함으로써 데이터의 무결성을 보장하게 된다.
# 3️⃣ How does the Watchdog Network work?
Watchdog Network에서 노드들의 구성은 Super-node (s-node)와 Watchdog-node (w-node)로 구분된다.
- S-node: 블록체인은 기본적으로 P2P 네트워크의 일종이다. Watchdog 네트워크에서 다수의 S-node들이 NAT, Discovery, Membership 관리를 용이하게 한다.
- W-node: 블록체인에서 분산 장부를 가지고 합의를 이루는 노드를 의미한다. Watchdog 네트워크에서는 W-node들이 비잔틴할 수 있음을 고려한다.
매 합의 라운드마다 S-node는 합의를 진행할 W-node 집합 (커미티)을 선정한다. 커미티 선정에 인위적인 요인이 개입될 수 없도록 W-node들의 VRF (Verifiable random function)을 기반으로 한다.
W-node들이 비잔틴할 때 합의를 도출하는 시간 (합의지연시간)은 얼마든지 길어질 수 있다.
❓ 합의를 이루기 위해 도착하지 않는 의견(메시지)을 얼마나 오래 기다릴 것인가?
이미 잘 알려진 문제로 길어지는 합의 지연시간은 응용서비스 입장에서 상당한 서비스 퀄리티 저하를 야기한다.
🌟 Watchdog 네트워크에서는 w-node들의 네트워크 상태를 모니터링 함으로써 s-node들이 합의를 도출하는 데 소요되는 시간을 알고 있다.
따라서, 예상보다 길어지는 합의 지연은 비잔틴 상황으로 간주할 수 있다.
# 4️⃣ WATCHDOG 합의 방식 (Fast BFT)
PBFT (Practical Byzantine Fault Tolerance)는 메시지 교환을 통해 합의를 도출하는 이미 널리 알려진 고전적인 방식이다.
PBFT의 All-to-All 메시지 교환 방식은 노드 수에 따라 증가하는 메시지 수를 고려할 때 큰 규모의 네트워크에서는 실제 적용하는데 한계를 가진다.
교환되는 메시지의 양을 노드 수에 선형적으로 낮추는 합의 방식이 고안되어 왔다. Watchdog 1.0에서는 Harmony 블록체인에서 사용하는 FBFT 방식을 채택하였다.
# 5️⃣ 요약
Watchdog은 확장성 높은 허가형 블록체인과 연동되어 확장성과 탈중앙화 문제를 동시에 해결하고자 한다. 이미 블록체인에 관심이 있는 독자라면 아직 아래와 같은 궁금증이 남아있을 것이다.
허가형 블록체인과 어떻게 연동시킬 수 있는가? 다음 포스트에서 설계 및 구현 관점에서 설명
Watchdog 성능은? 다음 포스트에서 합의지연시간을 Performance Metric으로 한 결과를 공개
# References
[1] https://medium.com/@nick.5montana/blockchain-layers-l0-l1-l2-l3-in-a-diagram-569162398db
[2] https://www.orbs.com/private-vs-public-blockchain/