A brief on Cross-chain Bridging-Polygon
This is an uncompleted DRAFT
[1. Intro]
폴리곤은 Ethereum-compatible한 블록체인의 네트워크를 지향하는 프로토콜(프레임워크)로, 이미 존재하는 블록체인 플랫폼들을 위한 off-chain 스케일링 솔루션으로 각광받고 있다. 폴리곤은 여타 L2 솔루션들과 유사하게 폴리곤자체 사이드체인(매틱체인)에서 트랜잭션을 빠르게 처리하고, finality는 메인체인(이더리움 등)에서 처리하도록 설계되어 있다.
현재는 폴리곤이 메인체인으로서 이더리움만을 지원하고 있지만, 커뮤니티 제안과 합의에 따라 여러 다른 메인체인도 지원하고자 하는 목표가 있다. 궁극적으로는 이를 통해 interoperable decentralized layer2 blockchain platform을 목표로 하고 있다.
폴리곤을 이용하면 어떤 프로젝트건 개별 독립 블록체인으로서의 장점인 주권, 확장성, 유연함과 이더리움의 장점인 보안, 상호운용성, 개발자경험의 장점을 혼합한 ‘맞춤 이더리움 객체’ 를 얻을 수 있다. 이 맞춤 블록체인들끼리 메시지를 주고 받을 수 있으며, 맞춤 블록체인과 이더리움 체인 사이에서 메시지를 주고 받는 것 역시 가능하다.
[2. 폴리곤 아키텍쳐의 3층식 구성]
2.1 (1층) 메인체인(이더리움) 상의 Staking & Plasma Smart Contract
- 폴리곤은 이더리움 상에 여러 스마트 컨트랙트 집합을 가지고 있다. 이를 통해 2층 PoS Layer를 위한 Staking management, Delegation management, 사이드체인 스테이트의 체크포인트/스냅샷을 포함하는 MoreVP를 위한 Plasma Contract 관리를 총괄한다.
- 이더리움을 메인체인으로 하는 초기버전에서는, 이더리움 루트 컨트랙트가 헤더블록을 통해 폴리곤 시스템의 solvency 와 finality를 효율적으로 이끄는 역할을 한다.
- 거래의 보안성을 높이기 위하여 폴리곤 네트워크는 메인체인에서 Fraud Proof도 처리한다. 메인체인 위의 어떤 유저도 자신이 판단하기에 사기(Fraud)인 트랜잭션의 디테일을 제출할 수 있다. 이 도전이 성공적이면 사기에 가담한 주체들의 stake가 슬래쉬되고, 도전자가 슬래쉬된 펀드를 받아간다.
2.2 (2층) Proof of Stake Layer
- PoS Layer : PoS Layer는 텐더민트 합의 엔진을 기반으로 싸인 기법과 자료구조를 수정하여 그 위에 만들어진 것이다. 여기에는 PoS validator node들이 있다. 이 검증인들은 3층에서 이루어지는 Block producer commitee selection과 Block validation을 담당하고, 또 3층사이드체인 블록들의 표상을 1층 이더리움 위로 체크(checkpoints)한다.
- Checkpoints : 2층의 검증인들은 3층 사이드체인에서 생성된 블록들의 블록 해쉬를 머클 트리로 만들어서, 주기적으로 머클루트를 1층 메인체인에 올림(publishing)으로써 블록들의 응집(aggregation)을 담당한다. 이렇게 주기적으로 올리는 행위를 checkpoints 라고 부른다. 체크포인트는 기간 중 생기는 모든 신규 블록의 루트를 가지고 있다. 블록 레이어의 몇 블록마다, 제안자(proposer)가 검증인 집합 중에서 선택이 되어 메인체인에 checkpoint를 제안하게 된다.
- Checkpoints의 확정 : 제안자는 메인체인 루트 컨트랙트에 체크포인트를 제안하기 위하여, 2/3 이상의 stakeholder로부터의 승인을 받아야 한다. 스테이커 네트워크의 싸인을 받기 위하여 내용이 전파되고, 타 검증인들 각자의 싸인을 제공함을 통해 승인의사를 표시한다. 이 과정으로 체크포인트가 메인체인에 제안되면, 이더리움 메인체인에 있는 누구나 일정 시간 안으로 제안된 체크포인트에 챌린지를 걸 수 있다. 어떠한 도전도 받지 않은채로 챌린지 기간이 끝나면, 체크포인트가 공식적으로 유효한 체크포인트로써 메인체인에 포함된다.
- Checkpoints의 중요성 : 체크포인트 행위가 중요한 이유는 두 가지다. 메인 체인 상에 finality를 제공하기 때문이고, 유저가 자산을 인출할 때의 proof of burn(인출을 위한 증명)을 제공하기 때문이다 — 유저들은 Patricia merkle proof과 header block proof를 사용하여 메인체인 루트 컨트랙트에서 잔여 토큰을 증명할 수 있다. 인출과정은 이더리움 가스 수수료를 발생시킨다. —
2.3 (3층) Block Producer Layer (Matic Sidechain)
- Block Producer Layer : 폴리곤의 블록을 생성하는 레이어로, 거래를 블록으로 만드는 역할을 한다. 매틱 사이드체인은 EVM-compatible한 체인이다. 폴리곤은 이 싱글 사이드체인에서 트랜잭션을 2의 16승개까지 처리할 수 있다.
- Block Producer의 선정: 활동중인 staker들 중 일부가 Block producer(Bor 노드)로 선택된다. stakeholder 중 2/3 이상의 동의를 득하면, 선택이 확정된다. 블록 프로듀서는 span이라는 기간을 두고 2층의 commitee selection 에 의해 주기적으로 섞인다.
- Block Producer의 역할: 이들은 3층 사이드체인 네트워크 상에서 블록을 만들고, 전파하는데 책임이 있다. 폴리곤 시스템은 더욱 빠른 블록 생성 시간을 달성하기 위해 적은 수의 블록 프로듀서를 선정한다. 이를 통해 3층 블록 프로듀서 레이어는 1초 이하의 블록 생성 시간을 달성하며, 아주 낮은 트잭 수수료로 수행이 가능하다.
[3. Polygon 참여자의 참여유인]
3.1. Dapp Developer
- 개발자들은 어플리케이션을 확장하고, 엔드유저에게 보다 나은 UI UX를 제공하기 위해 매틱네트워크를 사용할 것으로 예상된다.
3.2 User
- 유저들이 메인체인(아직 이더리움만 지원) 상의 메틱 컨트랙트에 크립토 자산을 예치한다.
- 예치가 끝나면, 메인체인 상에서 컨펌을 받고, 이에 상응하는 토큰들이 매틱체인에 반영된다.
- 유저들은 매틱체인 상에서 토큰을 원하는 누구에게나 빠르고 싸게 보낼 수 있다.
- 유저는 이더리움 메인넷에 배포된 Root contract상에 proof of remaining tokens 를 만들어서, 메인체인에서 잔여 토큰을 인출할 수 있다.
**어떤 fungible 한 크립토 자산도 매틱체인에서 ERC20 토큰으로 표현될 수 있으며, 위와 동일한 흐름으로 사용할 수 있다. 추가적으로 ERC721에 대한 지원도 시작했다.
3.3 Vallidator
- 네트워크의 보안을 담당하는 검증인이 되기 위해서는 MATIC 토큰을 Stake로 락업해야 한다. 누구나 이더리움 메인넷 상에 배포된 root contract에 MATIC 토큰을 스테이크해서, PoS checkponting layer의 스테이커가 될 수 있다. 스테이커들이 소유한 MATIC 자금은 이더리움 메인넷 상의 컨트랙트에 lock되며, 어떠한 검증인도 delegator 토큰에 대해 custody를 가지지 않는다.
- 폴리곤의 검증인이 되어 풀노드를 돌리면 스테이킹 보상(Staking Reward)과 거래수수료(transaction fee)도 얻을 수 있다. 폴리곤은 매틱 총 발행량의 12%를 스테이킹 리워드로 지급한다. 재단 측은 트랜잭션 수수료가 매력적이게 보이기 전까지 네트워크를 흥행시키기 위해 투입하는 자금이라고 설명하고 있다 .점차적으로는 스테이킹 리워드보다 트랜잭션 수수료로 밸리데이터 리워드가 지급될 것이라고 한다.
- 검증인은 정기적으로 일어나는 온체인 옥션 과정을 통해 선택된다. 이 선택된 검증인들은 블록 프로듀서로도 참여한다. 참여인들에 의해 체크포인트가 검증되면, 이더리움 등 1층 부모체인에 업데이트가 일어나고, 1층 체인에서는 스테이크에 따라 검증인을 위한 보상을 준다.
[4. Multi Chain Support(Horizontal Sharding)]
폴리곤 네트워크의 퍼블릭 체크포인팅 레이어(2층)는 그 디자인상 복수의 사이드 체인을 지원한다. 이론적으로, 체크포인트의 안전하고 탈중앙화된 레이어(2층)에 무한개의 사이드체인까지 작동할 수 있다. 비즈니스들은 그들을 위한 커스텀 사이드체인(3층)을 퍼블릭 체크포인팅 레이어(2층) 에 연결시킬 수 있다. 각 비즈니스는 실행환경에 대한 전적인 컨트롤을 가지는 한편, 폴리곤의 체크포인팅 메카니즘을 통해 여전히 수정불가성, 증명가능성, 그리고 거래의 보안성을 가질 수 있다. 이러한 샤딩 흐름의 디자인에 영향을 미치는 것들은 다음과 같다 :
- 다른 사이드 체인들을 위해, 체크포인트를 주기적으로 제안하는 체크포인트 레이어(2층)의 스케줄링
- 복수의 사이드체인간의 자산 이동
- 유저들은 chain id와 영수증을 이용하여, 사이드체인 사이에서 자산을 주고받을 수 있을 것이다.
- 유저들은 인터체인 거래를 위한 직관적인 지갑 인터페이스를 제공받을 것이다.
- 개발자들은 인터체인 거래를 위해 프로그램이 쉽도록 API와 SDK를 제공받을 것이다.
한 체인에서 다른 체인으로의 자산 이동은, 체크포인팅 레이어(2층)에서 관리되며, 메인체인(1층)과의 통신을 필요로 하지 않는다. 현재 폴리곤 재단은 사이드체인간의 교환을 더욱 빨리 촉진할 방법을 연구중이다.