제로엑스
0x
제로엑스(0x, 零艾可斯币)는 탈중앙화된 분산형 암호화폐 거래소인 덱스(DEX)를 만들 수 있는 프로토콜 기반의 암호화폐이다. 제로엑스의 창시자는 미국의 윌 워렌(Will Warren)이다. 기존의 중앙화된 암호화폐 거래소가 잦은 해킹 사건으로 암호화폐를 도난당하면서, 탈중앙화 거래소에 대한 관심과 필요성이 커지고 있다. 제로엑스의 고문으로 활동하는 프레드 어삼(Fred Ehrsam)은 미국 최대의 암호화폐 거래소인 코인베이스의 공동 설립자이다. 제로엑스는 탈중앙화 거래소를 위한 프로토콜 코인이다.
제로엑스는 이더리움 블록체인에서 분산된 거래를 위한 개방형 프로토콜이다. 점점 더 정교해지는 디앱을 구동하기 위해 다른 프로토콜과 결합 될 수 있는 기본 빌딩 블록 역할을 한다. 제로엑스 프로토콜을 이용하면 스마트 컨트랙트를 통해 ERC 20 코인을 P2P로 거래를 할 수 있다. 또한 여러 디앱도 제로엑스 프로토콜을 이용하여 토큰 거래를 할 수 있다. 각 디앱은 퍼블릭 유동성 풀(Public Liquidity Pool), 혹은 각 개인이 개발한 유동성 풀 (Liquidity Pool)을 만들어 이 위에서 발생하는 거래수수료를 얻을 수 있다. 이 거래수수료가 제로엑스 코인으로 지불된다. 또한 제로엑스 토큰은 제로엑스 프로토콜의 업데이트 메커니즘을 통해 프로토콜을 업데이트하고 개선하는 분산 거버넌스에서도 사용된다.
특징
제로엑스는 이더리움 블록체인에서 분산된 거래를 위한 개제로엑스(0x)는 이더리움 블록체인에서 ERC 20 토큰을 거래할 수 있게 해 주는 무허가형 개방 프로토콜이다. 제로엑스는 탈중앙화 거래소를 위한 암호화폐로서, 저렴한 수수료와 빠른 처리 속도가 장점이다. 기존의 탈중앙화 거래소는 모든 거래가 블록체인에 기록되기 때문에, 매수 또는 매도 주문을 넣을 때마다 블록체인에 기록하기 위한 수수료가 발생했다. 또한 주문을 취소하는 것도 하나의 트랜잭션으로 보고 수수료가 부과되었다. 이러한 단점을 극복하고자 제로엑스는 매수 또는 매도 주문은 거래소 자체의 데이터베이스에만 기록하고 블록체인에 올리지 않으며, 실제로 체결되는 거래 기록만 블록체인에 반영하는 오프체인 방식을 채택했다. 이를 통해 불필요한 거래 수수료를 절감하고 거래 처리 속도를 향상시키는 결과를 가져왔다.형 프로토콜이다.[1] 점점 더 정교해지는 디앱을 구동하기 위해 다른 프로토콜과 결합 될 수 있는 기본 빌딩 블록 역할을 한다.[2] 제로엑스 프로토콜을 이용하면 스마트 컨트랙트를 통해 ERC 20 코인을 P2P로 거래를 할 수 있다. 또한 여러 디앱도 제로엑스 프로토콜을 이용하여 토큰 거래를 할 수 있다.[2] 각 디앱은 퍼블릭 유동성 풀(Public Liquidity Pool), 혹은 각 개인이 개발한 유동성 풀 (Liquidity Pool)을 만들어 이 위에서 발생하는 거래수수료를 얻을 수 있다.[3] 이 거래수수료가 제로엑스 코인으로 지불된다. 또한 제로엑스 토큰은 제로엑스 프로토콜의 업데이트 메커니즘을 통해 프로토콜을 업데이트하고 개선하는 분산 거버넌스에서도 사용된다.
메시지 포맷
각 주문은 주문 매개 변수와 관련 서명을 포함하는 데이터 패킷이다. 주문 매개 변수들은 Keccak SHA3 기능을 통해 32 바이트로 연결되고 해시된다. 주문 발신자는 ECDSA 서명을 생성하기 위해 비공개 키를 사용하여 오더 해시를 생성한다.
Point-to-Point Order
Point-to-Point Order 주문을 통해 두 거래자는 메시지를 릴레이 한다. 이때 선호되는 통신 매체를 사용하여 토큰을 직접 교환할 수 있다. 주문을 구성하는 데이터 패킷은 이메일, Facebook 메시지 또는 이와 같은 서비스를 통해 전송될 수 있는 수백 바이트의 16 진수이다. 이 주문은 지정된 수취인 주소로만 채워질 수 있다.
Broadcast Orders
유동성 시장을 건설하기 위해서는 구매자와 판매자가 주문을 게시할 수 있는 공공장소가 있어야 한다. 그리고 이 주문은 이후 주문서, 즉 교환으로 집계가 된다. 거래소를 설립하고 운영하는 것은 비용이 많이 들고 기존의 프로토콜은 해당 비용을 감당할 인센티브를 제공하지 못한다. Broadcast Order는 모든 사람이 xchange로 행동하고, Orderbook(공개 또는 비공개)를 유지하고, 결과로 나오는 모든 유동성에 대해 거래 수수료를 부과함으로써 이 문제를 해결한다. 거래소는 독점적 인프라를 구축하고 운영해야 하며 거래를 실행하고 사용자 자금을 처리한다. 그리고 중개인은 일반 메시지로 구성된 주문서를 호스팅 및 보급함으로써 시장 참여자 간의 신호를 전달한다. 거래 참가자가 중개인를 신뢰할 수 있어야하기 때문에 중개인은 시장 참여자를 대신하여 거래를 수행할 수 없다. 대신, 구매자들은 자체 거래를 실행한다.
스마트 컨트랙트
교환 프로토콜은 공개적으로 액세스 할 수 있고 무료로 사용할 수 있는 이더리움 스마트 컨트랙트 내에서 구현된다. 교환 프로토콜은 솔리디티 프로그래밍 언어로 구현되며, ‘Fill’과 ‘Cancel’이라는 두 가지 기능을 포함한다. 전체 컨트랙트는 약 100줄의 코드이며 주문을 완료하기 위해 약 90k의 가스 비용이 소요된다.
서명 인증
교환 스마트 컨트랙트는 ecrecover 함수를 사용하여 주문 발송자 서명을 인증할 수 있다. Ecrecover 함수는 해시와 해시 서명을 인수로 사용하여 서명을 생산한 공개키를 반환한다. Ecrecover에 의해 반환된 공개키가 제조업체 주소와 같은 경우 서명은 인증된다.
Fills & Partial Fills
교환 스마트 컨트랙트는 이전의 주문에 대한 각각의 참조를 저장하여 단일 주문이 여러 번 저장되는 것을 방지한다. 이 참조는 매핑 내에 저장된다. 이 경우는 32바이트의 데이터 청크를 256비트의 부호 없는 정수로 매핑하는 데이터 구조이다. 명령과 관련된 매개 변수를 Keccak SHA3 함수에 전달하고, 해당 순서를 식별하는데 사용되는 고유한 32바이트 해시가 생기게 된다. 주문이 채워질 때마다 매핑은 주문 해시와 저장된 누적 값을 저장한다. 구매자는 교환 스마트 컨트랙트의 저장 기능을 호출할 때 valueFill이라는 추가 인수를 지정하여 부분적으로 주문을 저장할 수 있다. 다양한 부분 저장의 합계가 주문의 전체 가치를 초과하지 않는 한 하나의 주문에서 여러 부분의 저장이 실행될 수 있다.
만료 시간
주문이 서명된 시점의 판매자에 의해 주문 만료 시간이 지정된다. 만료 시간은 유닉스 epoch 이후의 절대시간을 나타내는 부호 없는 정수값이다. 이 값은 일단 서명 되면 변경이 불가능하다. 이더리움 가상 머신 내의 시간은 새로운 블록이 채워질 때마다 설정되는 블록 타임 스탬프에 의해 결정된다. 따라서 주문의 만료 상태는 구매자가 주문을 작성하려는 의도를 전달하는 시간에 의존하지 않고 채굴 기능이 마이너에 의해 EVM에서 실행되는 시간에 따라 달라지게 된다. 마이너는 현재 블록의 블록 타임 스탬프를 이전 블록의 타임 스탬프보다 이전으로 설정할 수 없다.
주문 취소
관련 판매자는 잔여 주문 및 만료되지 않은 주문을 교환 스마트 컨트랙트의 취소 기능을 통해 취소할 수 있다. 취소 기능은 주문의 해시를 주문의 최댓값(valueA)에 매핑하여 후속 저장를 방지하는 것이다. 주문 취소는 가스를 소비하므로 취소 기능은 대체 메커니즘으로만 사용된다. 일반적으로 제조업체는 주문 만료 시간을 주문을 업데이트하려는 빈도와 일치하게끔 설정함으로써 체인 연결을 피할 것으로 예상된다. 이 방법의 문제점은 구매자가 동일한 주문을 저장하려고 하는 것과 동시에 주문을 취소하려고 하는 상황이 생길 수 있다는 것이다. 두 거래가 채굴되는 순서에 따라 두 당사자 거래 중 하나가 실패하여 가스를 낭비한다. 트랜잭션이 채워지는 순서와 관련된 불확실성은 때로는 부정적인 결과를 낳을 수 있다. 이 불확실성은 이더리움 블록체인이 현저한 트랜잭션 보류를 경험할 경우 증가한다.
프로토콜 토큰
암호경제 프로토콜은 경제적인 인센티브를 창출하며 합리적인 경제 에이전트 네트워크를 형성한다. 반면 제로엑스는 기본적으로 암호화된 프로토콜이 아니다. 제로엑스는 구매자와 판매자 사이의 신호 전달을 용이하게 하기 위해 사용되는 네트워크 프로토콜(암호 경제 프로토콜)이다. 하지만 교환 기능을 통합한 디앱의 개방형 표준으로 사용된다. 개방형 표준을 수립하고 유지하는 것은 모든 부분에 있어 운영 오버 헤드를 추가하는 조율의 문제이다. 각 당사자가 서로 상이한 요구와 재정적 인센티브를 가질 때 특히 조정이 까다로워질 수 있다. 프로토콜 토큰은 재정적인 인센티브를 조정하고 하나의 기술 표준을 중심으로 여러 부분들을 조직하고 있다. 채택에 대한 인센티브를 조정하는 것이 유용할 수는 있지만 프로토콜 토큰을 사용하면 훨씬 더 어려운 문제를 해결할 수 있다. 즉, 분산된 거버넌스를 통해 스마트 컨트랙트의 변하지 않는 시스템 내에서 구현되는 프로토콜의 미래를 보장할 수 있다.
기술적 특징
오프체인 주문과 온체인 결제
제로엑스 프로토콜의 핵심 기술은 코인 주문이 오프체인으로 전송되어 비용을 절감하고 블록체인의 블록이 커지는 것을 방지하는 것이다. 기존 블록체인 장부 시스템에서는 거래가 일어나거나 특별한 이벤트가 발생할 때 블록이 계속 생성되는데 반해 제로엑스는 이런 용량을 감소시키는 기술을 적용하고 있다.
제로엑스 프로토콜의 이점
윌 워렌(Will Warren)은 캘리포니아 대학교 기계 공학 학사, 동대학의 구조 공학 박사를 중퇴하였고 UCSD 로보틱스 랩, Los Alamos 연구실에서 연구원을 거쳐 2016년 10월 오엑스 프로젝트의 공동 창업자이자 대표이사로 재직 중에 있다. 공동 창업자 아미르 반딜리(Amir Bandeali)와 스마트 계약 연구 개발을 하고 있다. 아미르 반딜리(Amir Bandeali)는 아이비리그의 일리노이 공대 금융 과학 학사를 졸업하고 Chopper Trading, DRW 무역회사에서 중개인으로 근무하였고 2016년 10월부터 오엑스 프로젝트의 공동 창업자이자 CTO로 재직 중에 있다. 그리고 아마존과 구글 출신의 알렉스 쑤(Alex XU)는 2017년 7월부터 오엑스 프로젝트의 운영을 총괄하고 있다.
현재 대부분의 거래소들이 중앙화되었고 이로 인해 거래소는 많은 문제점을 가지고 있다. 그 중 보안, 특히 해킹의 위험이 가장 큰데 제로엑스는 탈중화 거래소이기 때문에 그 가능성이 다른 거래소에 비해 현저히 낮다. 중앙화된 거래소는 블록체인에서 주문서를 작성하려면 새로운 블록체인에 기록되고 그 거래 과정과 거래가 끝나는 지점까지 모든 과정이 블록체인에 기록된다. 결국 이러한 과정들이 전체적인 트랜잭션의 시간을 증가시키며 네트워크 수수료 또한 증가시킨다. 기존의 탈중앙화 거래소들도 이러한 문제들을 여전히 가지고 있다. 제로엑스 프로토콜은 탈중앙화 거래소로서 Off-Chain Orderbook을 구축하여 거래가 완료되는 시점에만 블록체인으로 기록함으로써 속도나 결제 수수료 측면에서 이러한 문제들을 해결하고자 한다. 제로엑스 토큰은 프로토콜이자 토큰이기 때문에 이더리움 기반 플랫폼에서 디앱의 시장성이 확대 될수록 제로엑스 토큰의 사용성이 확대될 것이다. 뿐만 아니라 해당 프로토콜의 영향력 또한 점점 커질 것으로 기대해 볼 수 있다. 더불어 제로엑스는 다양한 디앱의 공유 인프라로 작동할 수 있는 공개 계약 방식의 시스템을 사용하고 있다. 장기적으로 볼 때 폐쇄된 기술 표준은 오픈소스 기술 표준에 비해 뒤처지는 경향이 있다. 공개 표준을 따르며 개방 경제를 지원하는 제로엑스 포로토콜이 플랫폼으로써의 역할을 하고 다양한 디앱을 끌어들임으로써 탈중앙화된 분산형 암호화폐 거래소인 덱스(DEX) 생태계 건설에 기여할 수 있다.