제로엑스와 탈중앙화거래소

in #coinkorea6 years ago

탈중앙화 거래소 제로엑스에 대해서

http://hackingdistributed.com/2017/08/13/cost-of-decent/ 블로그와 제로엑스 빗썸 상장검토보고서를 근간으로 하여 정리해 보았습니다.
거래 도식도

EtherDelta와 Ox와 같은 탈중앙화거래소는 주문을 내는(broadcasting orders) 같은 아키텍처를 가지고 있다. 사용자들의 주문은 일단 오프체인 매칭 서비스 서버에 보내지고 (제로엑스에서는 “relay”라는 표현을 씀) 그 서버는 블록체인 기반이 아닌 오프체인에서 주문을 장부에 올린다. 오프체인에서 주문 기록은 실시간이며 블록체인에 올리는 것보다 물론 훨씬 빠르다.

이더델타와 제로엑스는 자동적인 매칭 권한을 부여하지 않음으로써 오프체인 매칭 서비스의 신뢰문제를 최소화하고 있다. 대신에 반대주문(매수-매도)을 내고 디지털서명을 하고 매매가 체결되는 경우에 거래가 블록체인 위에 올라가게 된다. 거래는 매수자-매도자(maker-taker, 제로엑스)간의 자산 이전을 실행하는 스마트컨트랙트로 기록된다.

이더델타와 제로엑스는 개괄적인 설계도는 같은 모습이지만 제로엑스는 모두(relayer)가 거래에 참여할 수 있는 반면 이더델타는 특정한 사람이 행할 수 있다. 또한 이더델타와는 달리 제로엑스는 수수료와 거버넌스를 지불하고 유지하는데 자체 토큰(ZRX)을 사용한다는 점이 다르다.

0x 개요
ZRX 컨셉 및 특징 제로엑스는 이더리움 블록체인 내에서 돌아가는 거래소 프로토콜이며 코인간 거래는 스마트 컨트랙트 방식을 통해 P2P 방식으로 체결된다. 또한 Off-Chain 방식의 Orderbook을 사용하여 기존의 탈중앙화 거래소에 비해 빠른 거래가 가능하며 수수료도 더 저렴하다.

회색 직사각형과 원은 이더리움 스마트 컨트랙트 및 계좌를 나타내며, 이더리움 스마트 컨트랙트를 가리키는 화살 표는 함수 호출을 나타낸다. 화살표는 호출자에서 수신자에게 전달된다.

스마트 컨트랙트는 다른 스마트 컨트랙트 내의 기능을 호출 할 수 있다. 이더리움 블록체인 외부의 화살표는 정보의 흐름을 나타낸다.
https://bithumb.cafe/wp-content/uploads/2018/05/zrx.pdf

[ Flow ]
Maker는 토큰 A의 잔액에 액세스하기 위해 분산 교환 (DEX) 계약을 승인한다.
Maker는 원하는 환율, 만기 시간(그 이상으로 주문을 채울 수 없음)을 지정하고 비공개 키를 사용하여 주문 서에 서명하는 토큰 B에 대해 토큰 A를 교환하라는 명령을 내린다.
Maker는 임의의 통신 매체를 통해 주문을 브로드캐스트 한다.
Taker가 주문을 가로 챈 다음 주문을 채우기로 결정한다.
Taker는 Token B의 잔고에 접근하기 위해 DEX 컨트랙트를 승인한다.
Taker는 DEX 컨트랙트를 주문하기 위해 메이커 사인을 제출한다.
DEX 계약은 메이커 서명을 인증하고, 주문이 만료되지 않았는지를 확인하고, 주문이 아직 채워지지 않았는지 확인 한 다음 지정된 환율로 양 당사자간에 토큰을 전송한다.

[주문과 거래]
1.Point-to-Point Order Point-to-Point 주문을 통해 두 거래자는 메시지를 릴레이하는데 선호되는 통신 매체를 사용하여 서로간에 토 큰을 직접 교환 할 수 있다. 주문을 구성하는 데이터 패킷은 이메일, Facebook 메시지 또는 이와 유사한 서비스를 통해 전송 될 수 있는 수백 바이트의 16 진수이며, 주문은 지정된 수취인 주소로만 채워 질 수 있다.
2.Broadcast Orders 유동성 시장이 출현하려면 구매자와 판매자가 주문을 게시 할 수 있는 공공 장소가 있어야 하며, 이 주문은 이 후 주문서 즉 교환으로 집계가 된다. 거래소를 만들고 운영하는 것은 비용이 많이 들고, 지금까지 설명한 프로 토콜은 누군가가 그러한 비용을 감당할 인센티브를 제공하지 못한다. Broadcast Order는 모든 사람이 xchange로 행동하고, Orderbook (공개 또는 비공개)를 유지하고, 결과로 나오는 모든 유동성에 대해 거래 수수료를 부과하도록 허용 함으로써 이 문제를 해결한다. 거래소는 독점적 인프라를 구축하고 운영 해야하며 거래를 실행하고 사용자 자금을 처리해야하며, 중개인은 일반 메시지로 구성된 주문서를 호스팅 및 보급함으로 써 시장 참여자 간의 신호를 전달한다. 거래 참가자가 Relayer를 신뢰해야하기 때문에 중개인은 시장 참여자 를 대신하여 거래를 수행하지 않는다. 대신, Taker들은 자체 거래를 실행

[ 제로엑스 프로토콜의 이점 ]

  1. Trustless exchange 제로엑스 프로토콜 코인은 이더리움 기반의 분산형 네트워크를 기반으로 구축되어 중단 지점이 없기 때문 에, 각 거래는 원자적인 단위에서 안전하게 거래된다.
  2. Shared liquidity 표준API를 공유함으로써 중개인은 유용성 풀을 쉽게 모을 수 있으며, 유용성에 대한 네트워크 효과를 창 출하여 더 많은 거래의 중계가 상태가 온라인 상태가 되면서 복합적으로 작용한다
  3. Open source 제로엑스 프로토콜은 오픈소스이며, 무료로 이용할 수 있다. 거래 상대방과 직접 거래하거나 중계인에게 제로엑스 토큰을 지불하여 유동성 풀에 접근할 수 있다.
  4. Side deal, 복수 중개자로 인한 유동성

[로드맵 (Road Map, 2018)]
Q1
거버넌스 연구 개발 -
재사용 가능한 Relayer UI 구성요소 개발
0x 2.0.0 Mainnet 배포

Q2
거래 탐색기 v1 출시
거버넌스 백서 출시

0x-specific flaws

  1. Decentralized governance(탈중앙화, 온체인화는 좋은 것인가?): ZRX 토큰은 두 가지 기능을 수행한다. i) 시장참가자들로 하여금 릴레이 수수료를 지불하는 것을 허용한다.
    ii) 거버넌스의 탈중앙화를 위한 프로토콜과 DEX 컨트랙트을 발전시키는데 사용된다.
    그런데 이더리움을 이용하지 않고 왜 반드시 제로엑스 토큰을 사용해야만 하는지는 분명치 않다. 불행히도 제로엑스 백서나 제로엑스 깃허브 0x's github repository 소스코드를 봐도 이러한 내용이 나와있지 않다. 거버넌스 프로세스가 제로엑스 토큰을 이용하는 유일한 이유인 것 같음.
    백서에는 사용자의 개별적인 동의를 요구하지 않고 스마트컨트랙트와 프로토콜을 무중단 업데이트(non-disruptive update) 하는 것이 거버넌스 설계 목표라고 명시하고 있음.

이것은 거버넌스 프로세스의 보안에 대한 의문을 불러일으킴
예를 들면 제로엑스는 사용자의 자산을 보유하고 있는 탈중앙화거래소의 업데이트를 승인하는데 단순한 다수결제도를 사용한다면 공격자는 51% 공격( 51% 토큰을 보유함으로써)을 행할 수 있다.
안전하면서 탈중앙화된 거버넌스를 설계하는 것은 어려우면서도 섬세한 상충적인 메커너즘을 고려해야 한다. 탈중앙화는 만병통치약이 아니며 복잡성과 이로 인한 보안문제에 대한 댓가를 치를 각오가 되어 있어야 한다.
2.Side deals: 제로엑스는 두 종류의 주문이 가능하다.
broadcast order : 중개자(relayer)를 필요로 하는 주문으로 공개된 주문 목록에서 거래소에 메시지를 보내서 체결된다. 중개자는 브로드캐스팅 서비스 댓가를 수수료로 요구함. 덱스는 매수-매도자로 계좌로부터 중개자의 계좌로 전송 ii)P2p 주문 (point-to-point order):

그러나 취소하는 데는 돈이 안들고 계약이 채워지지 않으면 중개자는 어떤 수수료도 취할 수 없게 됨. 이러한 결점은 “공유지의 비극(tragedy of the commons)”을 초래함
이더델타는 사이드 딜이 크게 문제가 안되는 이유는 p2p 거래를 지원하지 않으며 주문을 내기 위한 수수료가 스마트 컨트랙트에 기록되기 때문이다.
반면 제로엑스의 방식에는 잇점도 있음
두 가지의 주문 방식을 허용함으로써 보다 유동성을 풍부하게 하고 중개자간의 경쟁은 사용자에 대한 수수료 절감 효과로 이어짐
반면에 이더델타는 원칙상 중개자들이 개별 컨트랙트를 하게 되어있어 유동성 증가의 효과를 불러일으키지 못함

3.Market griefing(시장위협행위): 제로엑스의 감사recognized in audits of 0x 에서 드러난 것으로 주문(maker)이 체인에 기록되지 않아 자금이동이 되지않은 사건이다. 만약 이런 일이 일어난다면 체인위의 체결자(taker)는 가스비용을 지불해야 하고 체결자에게 비용과 시간을 부담하게 만드는 결과가 된다.
합법적, 비합법적 담합이 일어날 수 있고 이를 악용할 수 있게 됨
주문 생성시 채굴자가 개입할 수 있는 문제나 채굴자와의 충돌도 이러한 공격을 더 심화시킨다

제시하는 완화책을 사용하는 것은 이슈를 완전히 해결하지 않음 ==> 블록 생성 바로 전이나 생성되는 도중에 변경할 수 있음
탈중앙화거래소의 거래량과 수익이 충분히 높지 않으면 기술적, 경제적 장벽이 어려움 충분하지 않으며 안전에 대한 잘못된 생각과 온체인 거래소의 아키텍처에 대한 근거없는 자신감을 유발시킬 수 있음.

덧)스팀잇으로 발생하는 모든 수익은 청년들의 창업 지원금으로 쓰여집니다.

Sort:  

(jjangjjangman 태그 사용시 댓글을 남깁니다.)
[제 0회 짱짱맨배 42일장]3주차 보상글추천, 1,2주차 보상지급을 발표합니다.(계속 리스팅 할 예정)
https://steemit.com/kr/@virus707/0-42-3-1-2

3주차에 도전하세요

그리고 즐거운 스티밋하세요!

탈중앙화 거래소 다들 잘되길 바랍니다. https://94bit.com/decentralized-exchange-dex-data/

Coin Marketplace

STEEM 0.30
TRX 0.12
JST 0.033
BTC 64230.75
ETH 3149.35
USDT 1.00
SBD 3.85