저자:
(1) 싱가포르 난양기술대학교 Daniel Reijsbergen;
(2) Aung Maw, 싱가포르 기술 디자인 대학, 싱가포르, 싱가포르;
(3) 싱가포르 난양기술대학교 Jingchi Zhang;
(4) 호주 멜버른 디킨 대학교 Tien Tuan Anh Dinh;
(5) 안위타만 다타(Anwitaman Datta), 난양기술대학교, 싱가포르, 싱가포르.
개요 및 소개
PIEChain 개요
PIEChain 구현
실증 계획
확장
참고자료
최근 몇 년 동안 다양한 블록체인 플랫폼이 등장했지만 그 중 다수는 사일로에서 운영됩니다. 따라서 블록체인 상호 운용성을 활성화하려면 안정적인 크로스체인 통신이 필요합니다. 일반적으로 트랜잭션은 되돌릴 수 없기 때문에 블록체인 상호 운용성은 어렵습니다. 따라서 하나의 트랜잭션이 커밋되면 프로토콜은 모든 관련 트랜잭션도 커밋되도록 보장해야 합니다. Cosmos 및 Polkadot과 같은 기존 상호 운용성 접근 방식은 자체 하위 체인 간의 상호 운용성만 지원하거나 기존 블록체인에 대한 침입적인 변경이 필요하다는 점에서 제한됩니다. 이러한 한계를 극복하기 위해 우리는 Kafka 기반의 일반적인 크로스체인 통신 프레임워크인 PIECHAIN을 제안합니다. 우리는 실용적인 사례 연구를 위해 PIECHAIN을 활용합니다. 즉, 여러 체인에 토큰을 보유한 사용자가 다른 체인에서 판매되는 티켓에 입찰하는 크로스체인 경매입니다. PIECHAIN은 크로스체인 통신을 위한 일반 프레임워크를 최초로 공개적으로 실용적으로 구현한 것입니다.
블록체인은 적대적인 환경을 위해 설계된 복제된 변조 방지 데이터베이스입니다. 이는 다수의 노드로 구성되며 그 중 일부는 악성일 수 있으며 추가 전용 원장을 유지합니다. 원장은 일부 전역 상태를 수정하는 트랜잭션을 저장합니다. 암호화폐[7]와 같은 표준적인 예에서 전역 상태는 사용자 계정과 기본(대체 가능) 토큰이며 원장은 한 계정에서 다른 계정으로 토큰을 전송하는 트랜잭션을 포함합니다. 또 다른 신흥 애플리케이션에서 블록체인은 디지털 예술 작품이나 콘서트 티켓과 같은 자산을 고유하게 나타내는 대체 불가능한 토큰(NFT)을 저장합니다. 많은 블록체인은 또한 사용자가 자신의 상태와 상태를 수정하는 코드를 정의할 수 있는 스마트 계약을 지원합니다. 스마트 계약은 원장에 저장되며 모든 블록체인 노드에 의해 복제되고 일관성이 유지됩니다. 최근 몇 년 동안 많은 독립적인 블록체인 플랫폼이 등장하여 롱테일 생태계가 탄생했습니다. 한편으로는 Ethereum 및 Hyperledger와 같이 매우 인기 있는 소수의 범용 블록체인 플랫폼이 있습니다. 반면, 특정 애플리케이션을 위해 설계된 수천 개의 소규모 블록체인이 있으며, 대부분은 개발 초기 단계에 있습니다. 여기에는 의료, ID 관리 및 IoT용 블록체인과 함께 2023년 초 기준으로 10,000개 이상의 암호화폐[3]가 포함됩니다. 일반적으로 이러한 블록체인은 상호 운용되지 않습니다. 즉, 사일로에 존재합니다. 따라서 블록체인 상호 운용성, 즉 사용자가 서로 다른 블록체인에서 정보나 자산을 교환할 수 있는 능력은 연구 커뮤니티에서 점점 더 많은 관심을 끌고 있는 주제입니다. 11].
안전한 블록체인 상호 운용성 프레임워크를 설계할 때 주요 과제 중 하나는 원자성을 보장하는 것입니다. 즉, 합의된 트랜잭션 집합의 모든 단계가 성공적으로 종료되거나 전혀 종료되지 않도록 하는 것입니다. 블록체인 트랜잭션은 (원칙적으로) 되돌릴 수 없기 때문에 이는 기존 데이터베이스보다 블록체인에서 더 복잡합니다. 예를 들어, 체인 A의 NFT에 대한 지불이 체인 B에서 이미 이루어진 경우, 원자성은 체인 B의 트랜잭션을 되돌릴 수 없기 때문에 체인 A의 트랜잭션을 계속 진행해야 합니다. 원자성을 보장하는 일반적인 접근 방식 중 하나는 스마트 계약의 거래와 관련된 모든 토큰을 에스크로하고 모든 당사자가 서명한 커밋 메시지를 통해서만 토큰을 릴리스하는 것입니다[6]. 블록체인 상호 운용성의 또 다른 중요한 과제는 에스크로된 토큰이 영원히 동결될 수 없도록 생명성을 보장하는 것입니다. 활성을 보장하려면 노드가 모든 당사자가 에스크로에서 자산을 인출할 수 있도록 허용하는 중단 메시지를 보낼 수 있어야 합니다.
원자성과 활성성을 모두 보장하려면 상호 운용성 프레임워크는 한 블록체인에 커밋 메시지를 보내고 다른 블록체인에는 중단 메시지를 보내는 적대적 노드를 허용할 수 있어야 합니다. 비동기식 네트워크(즉, 메시지 지연에 제한이 없는 네트워크)의 경우 이는 신뢰할 수 있는 제3자(TTP) 없이는 달성할 수 없는 것으로 알려져 있습니다[10]. 이 문제를 극복하기 위한 두 가지 주요 접근 방식이 있습니다[6]. 첫 번째 접근 방식은 동시성 가정을 중단에 대한 휴지 기간과 결합하는 것입니다. 즉, 일단 생성된 커밋 투표는 중단에 대한 휴지 기간이 끝나기 전에 영향을 받는 모든 블록체인에 추가될 수 있다고 가정합니다. 이 접근 방식은 예를 들어 해시된 시간 고정 계약에 적용됩니다[5]. 두 번째 접근 방식은 유효한 커밋 또는 중단 메시지가 생성될 수 있지만 둘 다 생성될 수는 없도록 TTP를 다른 블록체인으로 대체하는 것입니다[6], [9].
두 가지 유형의 접근 방식 모두 과학 문헌에서 제안되었지만 공개적으로 사용 가능한 구현이 없거나 [5], [6], [9] 적용 범위가 제한되어 있습니다(예: 다른 블록체인에서 지원 자산 생성). [11] 또는 토큰 스왑 [8]. 별도의 개발 과정에서 Cosmos 및 Polkadot과 같이 기본적으로 상호 운용성을 지원하는 여러 블록체인 플랫폼이 등장했습니다. 그러나 이러한 플랫폼은 자체 하위 체인 간의 상호 운용성만 지원하거나 기존 블록체인에 대한 침해적인 변경이 필요합니다. 이는 기존 블록체인 플랫폼을 수정하지 않고도 인터페이스할 수 있는 일반적이고 실용적인 상호 운용성 프레임워크의 필요성을 불러일으킵니다. 우리의 목표는 그러한 프레임워크를 제공하는 것입니다.
기여 및 참신함 : 우리는 이 목표를 달성하기 위해 PIECHAIN을 제시합니다. 실제로 동기화를 가정하기 어렵기 때문에 PIECHAIN은 TTP를 대체하기 위해 크로스체인 서비스를 사용합니다. 크로스체인 서비스는 효율성을 위해 Apache의 Kafka 프로토콜을 사용하는 이벤트 로그를 사용하여 통신합니다. PIECHAIN의 실질적인 관련성을 입증하기 위해 우리는 현실적인 사례 연구를 위한 크로스체인 서비스인 크로스체인 경매를 구현했습니다. 우리는 스마트 계약을 지원하는 가장 인기 있는 블록체인 플랫폼인 Ethereum, Hyperledger Fabric, Quorum과 PIECHAIN을 인터페이스했습니다. 마지막으로 사례 연구를 위한 GUI를 개발했습니다. 경매 사례 연구는 GitHub의 PIEChain 코드 저장소에서 코드를 찾을 수 있는 세 가지 사례 연구(두 개의 경매 및 플래시 대출 [6]) 중 하나입니다.
PIECHAIN의 주요 엔터티는 다음과 같습니다(그림 1 참조).
사용자가 보유한 자산(예: 토큰, 키)을 저장하는 블록체인입니다. 사용자는 여러 블록체인에 자산을 보유할 수 있습니다. 각 블록체인에는 읽기 및 쓰기 액세스 권한이 있는 사람을 결정하는 자체 프로토콜이 있습니다. 블록체인은 일반적으로 허가형(즉, 고정된 노드 세트에 읽기 및 쓰기 액세스 권한이 있음) 또는 무허가형(즉, 모든 사람이 읽기 액세스 권한이 있고 트랜잭션을 생성할 수 있음) 중 하나입니다. 충분한 성능(예: 처리 속도)이 있으면 블록체인에 트랜잭션을 추가할 수 있습니다. 사용자가 다른 블록체인에서 자산을 교환할 수 있게 해주는 크로스체인 서비스(CC-SVC). 각 CC-SVC는 크로스체인 통신을 용이하게 하기 위해 사용자 클라이언트와 상호 작용하는 서버로 구성됩니다. 실제로 CC-SVC는 사용자에게 참여 비용을 청구하며 다양한 블록체인과 상호 작용할 수 있습니다. 다음에서 각 CC-SVC는 서버에서 Kafka 원장으로 전송되는 자산의 원자 교환과 관련된 이벤트 세트에 해당합니다. 실제로는 단일 서버가 여러 CC-SVC를 운영할 수 있습니다.
CC-SVC에서 생성된 이벤트의 추가 전용 로그 역할을 하는 Kafka 네트워크. 이벤트는 기본 블록체인에서 이루어진 거래에 해당합니다. Kafka 네트워크는 이벤트 업로드에 대해 CCSVC에 요금을 부과하는 고정된 노드 집합에 의해 운영됩니다.
PIECHAIN에서는 CC-SVC가 반신뢰되며, 상업적 아웃소싱 서비스 제공업체와 마찬가지로 유지해야 할 평판을 통해 정직하게 행동하도록 동기를 부여받는다고 가정합니다. Kafka 네트워크 운영자는 신뢰할 수 없지만 기본 블록체인과 상호 작용하지 않기 때문에 잘못된 행동을 할 동기가 없습니다. 이를 통해 보안보다 효율성을 우선시하는 프로토콜(Kafka)을 실행할 수 있습니다. 대체 설계는 CC-SVC를 신뢰할 수 없게 만들고 Kafka 네트워크를 신뢰할 수 있게 만드는 것입니다. 이 경우 각 Kafka 노드는 각 기본 블록체인에 대해 (라이트) 클라이언트를 실행하여 해당 체인에 트랜잭션이 포함되었는지 확인합니다. 이 경우 이벤트 로그는 PBFT[2]와 같은 보다 안전한 프로토콜을 사용해야 합니다. 그러한 디자인은 향후 작업으로 남겨둡니다.
섹션 II-A의 엔터티를 고려하면 PIECHAIN의 프로세스 흐름은 Herlihy 등이 제안한 크로스체인 거래와 동일한 구조를 갖습니다. [6]. 크로스체인 거래는 여러 사용자가 서로 다른 블록체인에서 자산을 교환하기로 합의한 것이며 5단계로 구성됩니다(그림 2 참조).
청산 단계: CC-SVC는 거래와 관련된 자산을 에스크로하고 이전하는 데 사용되는 다양한 블록체인에서 스마트 계약을 생성합니다.
에스크로 단계: 사용자는 나가는 자산을 스마트 계약으로 전송하여 에스크로합니다.
전송 단계: 자산이 잠정적으로 교환됩니다. 즉, 스마트 계약의 실행 논리가 지정됩니다.
검증 단계: 각 사용자는 실행 로직의 결과가 만족스러운지 확인합니다.
커밋 단계: 모든 당사자가 만족하면 커밋을 통해 거래가 체결되고 그렇지 않으면 중단을 통해 거래가 체결됩니다. 커미트먼트는 스마트 계약의 실행 로직이 실행되고 거래에 지정된 대로 자산이 교환되는 것을 의미합니다. 낙태는 각 스마트 계약의 자산이 원래 소유자에게 반환되는 것을 의미합니다.
커밋하기 위해 사용자는 CC-SVC에서 Kafka 원장으로 전송되는 커밋 투표를 대화식으로 구성합니다. 중단하려면 단일 사용자가 CC-SVC에 중단 메시지를 보냅니다. 각 CC-SVC에 대해 커밋 또는 중단 메시지를 Kafka 원장에 추가할 수 있지만 둘 다 추가할 수는 없습니다. Kafka 원장에 대한 커밋 투표의 포함 증명은 다양한 블록체인의 모든 스마트 계약에서 허용됩니다. 이는 커밋 투표가 구성되면 모든 자산 전송이 실행되거나 전혀 실행되지 않음을 보장합니다.
PIECHAIN의 실제 적용 가능성을 설명하기 위해 우리는 이를 일반적으로 사용되는 여러 블록체인 플랫폼에 인터페이스하고 과학 문헌[6]의 애플리케이션(디지털 자산에 대한 크로스체인 경매)을 구현하는 데 사용했습니다. 블록체인 지원은 섹션 V에서 논의한 것처럼 다른 사례 연구로 확장됩니다.
기본 블록체인을 PIECHAIN과 연결하려면 CC-SVC가 해당 체인의 트랜잭션을 검증할 수 있어야 합니다. 우리의 구현은 Ethereum(프라이빗 Ethereum의 작업 증명 및 권한 증명 버전 모두), Hyperledger Fabric 및 Quorum과 같은 블록체인 플랫폼을 지원합니다. 후자의 두 개는 허가형 블록체인을 지원하는 반면, 이더리움은 허가형 메인 체인을 가지고 있지만 동일한 기능을 가진 프라이빗 체인도 지원합니다.
우리의 사례 연구에서 경매인은 한 블록체인에서 자산을 판매하고 다른 블록체인에서는 자산 형태로 대금을 받습니다. [6]에서와 같이 티켓 판매자의 예를 사용합니다. 티켓은 전용 블록체인의 NFT인 반면, 다른 블록체인은 더 일반적으로 사용되는 대체 가능한 토큰(예: Ether)을 지원합니다. 전자의 블록체인을 티켓 블록체인, 후자를 코인 블록체인이라고 합니다. 이는 둘 이상의 코인 블록체인을 사용하는 설정으로 쉽게 일반화됩니다. 다음에서는 단일 가격 경매를 고려합니다(즉, 가장 높은 입찰을 한 입찰자가 입찰을 지불하고 자산을 받습니다). 프로토콜의 5단계는 다음과 같습니다.
경매인은 티켓 블록체인과 코인 블록체인에 대한 스마트 계약을 생성하는 CC-SVC를 모집합니다.
경매인은 자신의 자산(티켓의 NFT)을 티켓 계약으로 전송하고, 입찰자는 자신의 코인 블록체인에 있는 계약으로 입찰을 전송합니다.
실행 논리가 결정됩니다. 경매인은 어느 당사자가 티켓을 받고 어느 입찰이 경매인에게 전달되는지 지정하여 각 티켓과 코인 계약을 업데이트합니다. (티켓 체인의 계약은 코인 블록체인의 데이터를 읽을 수 없기 때문에 이 논리를 티켓 계약에 미리 지정할 수 없습니다.)
각 사용자(즉, 경매인과 입찰자)는 전송 프로토콜의 결과가 자신에게 동의하는지, 즉 티켓이 실제로 올바른 당사자에게 전송되었는지 여부를 결정합니다.
모든 사용자는 커밋 투표를 구성합니다. 이것이 구성되면 전송 단계에서 지정된 전송을 실행하기 위해 각 계약으로 전송됩니다.
PIECHAIN에서 경매에는 릴레이어와 서명자라는 두 가지 (논리적) 유형의 CC-SVC가 필요합니다. 중계자는 코인체인의 이벤트(입찰)를 수신하고 이를 티켓 블록체인에 중계합니다. 서명자는 커밋 투표를 생성하는 데 도움을 줍니다.
데모를 위해 우리는 크로스체인 경매를 설명하기 위해 React 프레임워크를 사용하여 그래픽 사용자 인터페이스(GUI)를 개발했습니다. GUI는 그림 3에 설명된 알려진 경매 목록을 표시하는 대시보드 페이지, 그림 5에 설명된 개별 경매에 대한 세부 보기, 새 경매 생성 페이지(표시되지 않음) 등 세 가지 기본 페이지로 구성됩니다. 경매인의 관점은 입찰자의 관점과 동일합니다. 대시보드 보기에서 예비 경매인은 "새 경매 만들기" 버튼을 클릭하여 경매를 시작할 수 있습니다. 경매인은 CC-SVC, 경매할 자산, 다른 블록체인에서 입찰을 수락할 자산, 서로 다른 블록체인 간의 토큰 환율을 선택합니다. 블록체인(미리 수정해야 함) 및 경매가 종료되는 시간입니다. 다음으로 중계 CC-SVC는 관련 계약을 생성하고 자산 체인의 계약 주소를 경매인에게 보냅니다. 그러면 경매인은 계약 주소를 추가하고 "기존 경매 추가" 버튼을 클릭하여 대시보드에 경매를 추가할 수 있습니다. 동시에 잠재적인 입찰자에게 계약 주소를 광고합니다.
입찰자가 자산 계약 주소를 알게 되면 이를 대시보드에 추가할 수도 있습니다. 입찰자가 경매를 추가한 후 경매 패널의 "보기" 버튼을 누르면 세부 보기 페이지로 이동하여 경매를 더 자세히 볼 수 있습니다. 이 페이지에서 입찰자는 경매 생성 및 종료 시간, 입찰 목록 등 경매에 대한 중요한 정보를 볼 수 있습니다. 최고 입찰가는 별표로 표시됩니다. 경매가 아직 진행 중인 경우 입찰자는 블록체인을 지정하여 입찰을 추가할 수 있습니다.
입찰이 이루어진 곳과 입찰할 토큰의 양. 그런 다음 해당 코인 계약에 대한 거래가 이루어지고 해당 정보가 중계 CC-SVC로 전송됩니다. 사용자는 CC-SVC를 통해 진행한 입찰을 중단할 수도 있습니다.
경매가 완료된 후 중계 CC-SVC는 모든 참가자에게 알리고 스마트 계약에 상품의 임시 이전을 지정합니다. 그런 다음 CC-SVC는 모든 참가자의 클라이언트에게 커밋 투표 생성에 참여하도록 요청합니다. (참여하지 않으면 벌금이 부과됩니다 [4].) 커밋 투표가 생성되면 모든 계약에 전송되어 자산의 최종 이전을 시작합니다. 이 시점에서 GUI에는 경매가 종료되었음을 표시합니다.
데모의 정확한 흐름은 다음과 같습니다.
한 사용자(경매인)는 웹 브라우저 기반 GUI를 열고 이를 사용하여 선택한 자산에 대한 경매를 시작합니다. 이 과정에서 경매 생성 페이지의 모든 기능이 시연됩니다. 자산은 Hyperledger Fabric에서 실행되는 전용 티켓 체인에 존재합니다. 계약은 관련된 모든 블록체인에서 생성됩니다(그림 2의 1단계).
서로 다른 시스템에서 브라우저 창을 사용하는 최소 두 명의 다른 사용자가 새로 생성된 경매의 세부 정보 페이지로 이동하여 자산에 대한 개별 입찰을 제출합니다(그림 2의 2단계). 적어도 한 명의 입찰자는 (비공개) Ethereum을 사용하고 다른 입찰자는 Quorum을 사용합니다.
일정 시간이 지나면 경매가 종료되고 낙찰가가 결정됩니다(그림 2의 3단계). 이로 인해 경매인은 "경매 종료" 이벤트를 릴레이 CCSVC로 보냅니다. 이러한 유형의 이벤트를 듣고 있는 서명자는 이벤트를 인지하고 커밋 투표를 구성합니다(그림 2의 4단계). 그런 다음 커밋 투표는 Kafka로 전송되고 릴레이 노드에 의해 경매 계약 및 코인 체인 계약으로 전달됩니다. 이 시점에서 자산은 낙찰자에게 이전되고 낙찰자는 경매인에게 이전됩니다(그림 2의 5단계).
데모 전반에 걸쳐 그림 4에 표시된 것처럼 터미널 창을 사용하여 각 단계 후에 기본 블록체인의 상태를 쿼리합니다. 이를 통해 청중은 백그라운드에서 일어나는 변화를 관찰하고 흐름의 흐름과 상호 작용할 수 있습니다. 데모: 예를 들어 배경 상태가 어떻게 변하는지 확인하기 위해 새로운 작업을 요청합니다.
데모의 흐름을 설명하기 위해 임시 데모 슬라이드와 경매인과 입찰자가 단일 컴퓨터를 사용하여 작업을 수행하는 경우의 화면을 설명하는 비디오 2를 온라인에서 찾을 수 있습니다. (이것은 PIECHAIN의 제한사항은 아니지만, 영상녹화를 더욱 쉽게 해줍니다.)
CC-SVC 프레임워크와 지원되는 블록체인의 인터페이스를 사용하면 PIECHAIN을 다른 사용 사례로 쉽게 확장할 수 있습니다. 그 중 하나는 [6]에 설명된 크로스체인 플래시 대출입니다. 플래시 대출을 위한 GUI는 차익 거래 기회가 일반적으로 신속하게 해결되므로 실제 관련성이 제한되어 있으므로 CC-SVC와의 상호 작용은 일반적으로 거래 봇에 의해 수행됩니다. 그러나 시간이 허락한다면 다양한 관련 계약 상태에 대한 플래시 대출 단계의 영향에 대한 시각화를 표시할 것입니다.
[1] Rafael Belchior, Andre Vasconcelos, S ´ ergio Guerreiro 및 Miguel ´ Correia. 블록체인 상호 운용성에 관한 설문조사: 과거, 현재, 미래 동향. ACM 컴퓨팅 설문조사(CSUR), 2021.
[2] 미구엘 카스트로와 바바라 리스코프. 실용적인 비잔틴 내결함성. OsDI, 99권, 173~186페이지, 1999년.
[3] 코인로어. https://www.coinlore.com/all 동전, 2023.
[4] Daniel Engel, Maurice Herlihy 및 Yingjie Xue. 실패는 (문자 그대로) 선택 사항입니다. 분산형 금융의 원자적 약속과 선택 사항입니다. SSS 2021, 2021에서.
[5] 모리스 헐리히. 원자 교차 체인 교환. ACM PODC, 245~254페이지, 2018년.
[6] 모리스 헤를리히(Maurice Herlihy), 바바라 리스코프(Barbara Liskov), 리우바 슈리라(Liuba Shrira). 크로스체인 거래 및 적대적 상거래. VLDB 저널, 2021.
[7] 나카모토 사토시. 비트코인: P2P 전자 현금 시스템, 2008.
[8] Sri AravindaKrishnan Thyagarajan, Giulio Malavolta 및 Pedro Moreno-Sanchez. 범용 원자 스왑: 모든 블록체인에서 코인을 안전하게 교환합니다. IEEE S&P, 2022.
[9] Victor Zakhary, Divyakant Agrawal 및 Amr El Abbadi. 블록체인 전반에 걸친 원자적 약속. VLDB 기부금 절차, 13(9), 2021.
[10] Alexei Zamyatin, Mustafa Al-Bassam, Dionysis Zindros, Eleftherios Kokoris-Kogias, Pedro Moreno-Sanchez, Aggelos Kiayias 및 William J Knottenbelt. SoK: 분산 원장 간의 통신. 금융 암호화폐, 2021.
[11] Alexei Zamyatin, Dominik Harz, Joshua Lind, Panayiotis Panayiotou, Arthur Gervais 및 William Knottenbelt. Xclaim: 신뢰할 수 없고 상호 운용 가능한 암호화폐 기반 자산입니다. IEEE S&P, 2019.
이 문서는 CC 4.0 라이선스에 따라 arxiv에서 볼 수 있습니다.