2023. 6. 14. 10:21ㆍBlockchain/Base
※ 원글 작성 : 22년 5월 4일
본 글은 Adam Back의 논문을 바탕으로 작성되었다.
블록체인 간 자산 이동의 방법은 많은 이론이 나오고 있다. HTLC를 이용한 atomic swap이나 2-way peg가 대표적일 것이다. 그 중 유명한 암호학자 Adam Back이 제출한 논문에 대해 확인해 보는 시간을 가질것이다.
2-way peg
비트코인 내의 SPV proof는 PoW된 결과를 보여주는 블록헤더들의 list와 list된 블록 중 하나에서 생성되었다는 암호화 증명으로 구성된다. 이 SPV proof의 증명을 사용하여 2-way peg를 구현한다.
Symmetric 2-way peg
한 체인에서 다른 체인으로의 "SPV peg"를 사용할 수 있다. 부모체인의 코인을 사이드체인으로 전송하기 위해 부모체인은 사이드체인의 SPV proof에 의해서만 unlock될 수 있는 output을 전달하며, 두 체인이 동기화를 하기 위해 2개의 대기 기간(waiting period) 정의가 필요하다.
- Confirmation period
부모체인에서 사이드체인으로 코인을 전달하기 전에 부모체인에 코인이 lock 되는 것이 확정되는 기간이다. 이 confirmation period의 목적은 다음 waiting period때 service attack이 더 어려워지도록 충분한 work가 이루어지게 하기 위해서이며, 논문에서 제안하는 confirmation period는 하루에서 이틀정도이다. - Contest period
부모체인에서 사이드체인으로 전달된 코인이 사이드체인에서 사용될 수 없는 기간이다. Contest period의 목적은 이전에 lock된 코인을 transfer하여 이중지불(double spending)을 방지하기 위해서이다. 이 지연시간 중 어느 시점에서든 lock이 되었다는 블록을 포함하지 않는 longest chain이 생기면 변환된 금액은 소급하고 pegging 가정은 무효화 된다(이 과정을 reorganisation proof라고 함)
부모체인에 lock된 코인들은 부모체인과의 추가 상호작용 없이 사이드체인 내에서 자유롭게 transfer 가능하다. 하지만 또 다른 체인으로의 pegging은 안되며 원래 부모체인으로만 다시 변환할 수 있다. 사이드체인에서 부모체인으로의 pegging도 마찬가지로 역순서로 진행하면 된다.
즉, symmetric한 2-way peg는 부모체인이나 사이드체인 모두 서로에게 pegging을 진행시에 SPV proof로 검증을 진행 후 lock/unlock 과정이 필요하다는 것이다.
Asymmetric 2-way peg
Symmetric과 반대로 한쪽만 SPV proof를 제출하는 방식이다. 사이드체인의 사용자가 모두 부모체인의 전체 validator일 시 모든 validator는 부모체인의 state를 알고 있기 때문에 부모체인에서 사이드체인으로의 코인 전송에는 SPV proof를 사용하지 않고, 반대의 경우에만 SPV proof를 제출하는 방식이다.
2-way peg 구현 방식
Amritraj Singh의 논문 "Public Blockchain Scalability: Advancements, Challenges and the Future"에서 2-way peg 방식에 대한 기본 설명과 실제 2-way peg를 사용하는 Loom, POA network, Liquid, RSK(RootStock)의 use cases, mechanism 등이 비교 분석이 되어 있다. 본 글에서는 2-way peg의 기본 개념만 확인하고 각 블록체인 플랫폼의 특징은 다루지 않는다.
Centralized 2-way peg
2-way peg를 구현하는 가장 간단한 방법은 신뢰할 수 있는 3rd party가 lock/unlock에 대한 요청을 진행하는 것이다. 위 그림의 프로세스는 아래와 같다.
- 사용자는 5개의 main coin을 신뢰 가능한 centralized entity에 의해 관리되는 lock-box 주소로 transfer 한다. Entity는 두 체인 간의 transfer를 규제한다.
- Entity는 사이드체인에서 5개의 side coin을 생성하고 생성된 자금을 사용자가 요청한 주소(사용자의 사이드체인 지갑 주소)로 보낸다.
- 사용자는 사이드체인에서 생성된 side coin을 요청 주소를 통해 사용할 수 있다.
- 사용자는 다시 side coin을 entity의 사이드 코인 lock-box에 요청하여 메인체인으로 코인을 다시 전송할 수 있다. 사용자는 수신받을 메인체인의 주소를 함께 포함하여 전달해야 한다.
- Entity는 사이드체인의 side coin을 destroy(burn)하고 동등한 가치의 코인을 사용자가 지정한 주소로 보낸다.
Multi-sig or Federated 2-way peg
중앙집중식의 2-way peg는 역시나 centralized entity가 SPOF가 될 수 있다. 이에 대한 개선사항으로 federated된 2-way peg의 개념도 있다.
Entity의 그룹(or notaries group; 공증인 그룹)이 함께 lock-box를 제어하는 방식이다. Entity의 그룹(이하 그룹)이 lock된 자금을 관리하고 블록체인 간의 transfer를 규제한다. 사이드체인으로의 transfer는 federation의 서명과 함께 그룹의 과반수가 찬성할 시에만 가능하다.
- 사용자는 5개의 main coin을 그룹이 유지/관리하는 lock-box의 주소로 전달한다. 그룹의 구성원들은 transfer과 완료되었음을 확인한 후 해당 거래에 서명한다.
- 그룹의 과반수가 서명하면 사이드체인에서 5개의 side coin을 생성하고 자금을 요청한 주소로 전달한다.
- 사용자는 마찬가지로 사이드체인 상에서 side coin을 사용할 수 있다.
- 자금을 다시 메인체인으로 transfer할 시에 동일한 federation에서 유지 관리하는 사이드체인의 lock-box 주소로 보낸다.
- Federation 그룹이 자금이 사이드체인의 lock-box에서 이상없이 수신했는지 verify 후 트랜잭션에 서명한다.
- 그룹의 과반수가 거래에 서명하면 federation은 side coin을 destroy하고, side coin의 금액과 비례한 main coin을 지정된 주소로 전송한다.
- 그룹의 과반수가 합의에 이르지 못할 시 사이드체인의 주소로 다시 보내진다.
2-way peg using SPV
앞서 Adam Back의 논문과 같은 방식이다. 같은 맥락이므로 구현된 그림만 추가한다.
Conclusion
각기 다른 체인간의 자산 교환은 블록체인들이 서로 연결되어 통합되는 과정에서 필수적인 요소라고 생각된다. 환전소에서 원화를 달러나 유로로 교환 가능하기 때문에 우리가 미국이나 유럽에 가서 생활할 수 있다. 플랫폼 간에 원활한 자산 교환을 위한 연구가 앞으로도 계속되어 어플리케이션이 한 플랫폼에 종속되지 않고 여러 곳에서 사용되는 시기를 맞이하면 좋을것 같다.
참고
https://blockstream.com/sidechains.pdf
https://digitalcommons.kennesaw.edu/cgi/viewcontent.cgi?article=1002&context=msse_etd
'Blockchain > Base' 카테고리의 다른 글
랜덤 변수에서 도메인까지, 블록체인 키와 계정 주소 (0) | 2024.11.14 |
---|---|
블록체인 기반 인증 서비스, DID (1) | 2023.12.18 |
Gossip protocol on Blockchain (0) | 2023.06.15 |
Blockchain에서의 Anchoring 기법 (0) | 2023.06.15 |