Polygon PoS 기본 개념

2023. 6. 20. 16:28Blockchain/Polygon

728x90
반응형

Polygon은 Ethereum layer2 플랫폼에서 가장 유명한 체인 중 하나이다. ZK rollup을 적용한 다양한 버전의 블록체인을 만들고 있는 프로젝트이지만, 사람들이 polygon 또는 matic이라고 아는 플랫폼은 polygon PoS 체인이다. Polygon의 시작과 중심을 함께 가지고 있는 polygon PoS에 대한 concept과 architecture를 살펴 보고 추후 Polygon PoS를 구성하는 component들의 상세 분석도 할 예정이다.

Polygon PoS의 목적

대부분의 layer 2 프로젝트가 그렇듯이 polygon PoS 또한 기존 layer 1인 ethereum의 확장성을 해결하기 위해 탄생한 프로젝트이다. Solana처럼 layer 1의 성능을 개선하여 더 빠르고 더 많은 사용자가 동시에 쓸 수 있는 블록체인을 만드는 프로젝트도 많이 존재한다. 비록 solana의 최대 후원자였던 FTX가 블록체인 역사에 큰 한 획을 긋고 사라졌지만 solana는 여전히 stepn 등 많은 dApp, NFT가 활발히 운영되고 있다.

이렇듯 layer 1의 성능 개선으로 인한 확장성 증가 노력도 훌륭하지만 layer 2 및 사이드체인을 활용한 프로젝트들도 빛을 발하고 있다. Polygon은 그 선두에 있는 프로젝트로써 느린 ethereum 위에 트랜잭션을 처리하는 성능 높은 사이드체인을 두어 속도를 해결하고자 한다. Polygon PoS는 어떤 방식으로 확장성을 개선하기 위한 목적을 이루려 했는지 확인해 본다.

Glossary

용어부터 정리해야 comm.에 오류가 없다는 주의라 앞으로 작성될 polygon의 layer 2 문서에 앞서 많은 사람들이 혼용하고 있는 사이드체인 관련된 용어를 정리하고 넘어가려 한다. 이는 필자 개인의 생각이 많이 들어갔으며, 아래의 용어는 사용처마다 다르지만 일반적으로 통용되는 용어라 생각한다.

  • Sidechain
    Main chain 옆에서 동작하는 또 다른 체인이다. main chain과 side chain은 상대적인 개념이며, 이 둘은 유기적인 하나의 플랫폼으로써 각 체인의 자산 교환이 이루어지는게 대부분이다. Side chain은 main chain에 종속 되어 있으며 보통의 layer 2 체인들이 layer 1 체인의 sidechain이다.
  • Private chain
    Public chain과 상대 되는 개념이다. 접근 권한 별로 구분되며, 누구나 접근할 수 있는 public chain과 접근 권한을 가진 사용자만 접근 가능한 private chain으로 나뉜다. Public과 private은 서로 분리된 독립적인 플랫폼으로써 각 체인의 자산을 교환할 필요가 없다.
  • Child chain
    Parent chain과 상대 되는 개념이다. Ethereum plasma에서 주로 확인할 수 있다. 그림처럼 어떤 parent chain의 child chain이 다른 체인의 parent chain이 될 수 있다. Side chain과 기능 및 역할이 유사하지만 엮여 있는 다른 체인들과의 관계를 설명하기 위해 도입되었다. 그 어떤 chain의 child가 되지 않는 ethereum은 root chain이라고도 명명된다.
    ethereum plasma
  • Inter chain
    Mainnet 간의 연결을 inter chain이라 한다. Sidechain처럼 특정 체인에 종속되지 않은 메인넷 간의 연결이다. Cosmos의 Hub-Zone이 대표적인 inter chain이며, layer 1 간의 연결 뿐만 아니라 layer 2 간의 연결도 inter chain이다.
  • Off chain
    블록체인(On chain) 밖에서 일어나는 모든 행위는 off chain에서 일어 나는 것이다. 블록체인과 관계 없는 센서, DB, WEB/WAS 등의 IT system을 포함하여 real world의 모든 것은 off chain이다. 또한 위에서 언급한 side chain, child chain도 모두 지정한 target chain 외에는 모두 off chain이다.

Ethereum Plasma

Polygon PoS는 ethereum plasma를 응용하여 개발되어 있기 떄문에 plasma도 간략하게 언급한다. Plasma는 한 때 ethereum의 확장성을 제공하기 위한 유용한 솔루션이었지만 현재 layer 2 및 zk roll up등 스케일링 프로토콜에 밀려 개발이 중단된 상태이다. 하지만 그 개념은 지난 anchoring section에서도 언급했듯이 sidechain의 보안성을 간단한 기술로 제공할 수 있다.

Plasma child chain에서 transaction을 수집, 처리한 후 결과만 root chain인 parent chain에 기록한다. 즉 child chain의 블록 헤더 정보를 parent chain에 기록하는 것이다. Plasma는 ethereum의 sidechain이기 때문에 자금 교환도 이루어 지는데 2-way peg lock/mint를 이용한다.
Plasma에서는 tx 실행 후 변화된 값만을 저장하여 root chain에 저장하고 전체 tx는 plasma 체인 내에 저장된다. 이는 data availability 문제가 발생할 수 있다. 악의적인 운영자가 plasma에서 잘못된 행위를 진행하는 경우 fraud proof를 생성하기 위한 tx data를 감출 수 있으므로 사기 증명을 위한 이의 제기를 할 수 없다.

Architecture

polygon.technology

Polygon PoS의 architecture는 위 그림과 같다. Polygon 체인의 main chain이 되는 Ethereum, 블록을 생성하는 Bor, 블록을 검증하는 Heimdall로 이루어져 있다.

  • Ethereum
    • Staking contract: Matic 토큰을 staking하여 validator가 되거나 delegate 기능을 수행한다.
    • Checkpoint contract: Checkpoint(plasma의 block root)를 저장한다.
    • Reward contract: PoS를 통해 발생된 reward를 관리한다.
  • Heimdall
    • PoS: Tendermint fork한 peppermint를 통해 bor에서 생성한 블록을 검증한다. 또한 bor 레이어의 Block producer committee를 선정한다.
    • Checkpoint: Bor에서 생성된 블록 root를 ethereum contract에 기록한다.
  • Bor
    • Generate block: 트랜잭션을 모아 블록을 생성한다. 블록 생성자는 Heimdall의 committee 선정 과정을 통해 주기적으로 선정된다.
    • EVM: EVM을 호환하며 또한 JSON RPC도 지원한다.

Architecture는 plasma 체인의 기능을 heimdall과 bor로 나눠 수행하기 위해 위와 같은 구조를 지녔다. Plasma의 기능을 개선하기 위한 노력이 엿보인다. Heimdall layer를 추가함으로써 블록을 검증하는 sequence를 추가하였고, sharding처럼 block 검증자 set은 아니지만 이와 비슷하게 block을 생성하는 committee를 무작위로 배정하여 담합 및 공격을 방지하였다.

Block 생성 layer인 bor도 geth를 fork하여 개발하였기에 plasma의 가장 큰 단점인 smart contract를 지원하지 못하는 단점을 개선했다. Plasma의 경우 단순 송금 또는 ERC20 토큰 교환만 수행 가능했으나 bor는 EVM이 호환되기 때문에 solidity로 개발된 smart contract가 동작 가능하다.

Conclusion

Polygon PoS는 Polygon 프로젝트의 이더리움 확장 및 인프라 개발을 위한 최초 플랫폼이다. Polygon은 blockchain을 modular blockchain의 방향으로 인도 했으며 나아가 optimistic/zk rollup, data availability등의 체인 기능을 세분화한 polygon의 여러 프로젝트들의 시발점이 되었다. Hermez, Supernet, zkEVM등 다른 polygon의 프로젝트들이 현재 주목을 받고 있지만 Polygon PoS의 초당 65,000건 tx 처리, 2초 내의 블록 확정 시간을 통한 layer 2의 가능성을 보여준 것만으로도 polygon PoS는 박수 받을만 하다.

다음 글에서는 tendermint를 fork하여 cosmos app chain으로 구현된 heimdall에 대해서 source code 단에서 분석을 하고, 나아가 bor와 polygon contract, bridge 등을 확인해 볼 예정이다.

참고
https://wiki.polygon.technology
https://ethereum.org/en/developers/docs/scaling/plasma/
https://coinmarketcap.com/ko/currencies/polygon/

728x90
반응형

'Blockchain > Polygon' 카테고리의 다른 글

Polygon zkEVM의 데이터 교환 방식  (0) 2023.09.08