제로엑스 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
23번째 줄: 23번째 줄:
  
 
=== 스마트 컨트랙트 ===
 
=== 스마트 컨트랙트 ===
교환 프로토콜은 공개적으로 액세스 할 수 있고 무료로 사용할 수 있는 이더리움 스마트 컨트랙트 내에서 구현된다.<ref name="제로엑스각주"></ref> 교환 프로토콜은 [[솔리디티]] 프로그래밍 언어로 구현되며, ‘Fill’과 ‘Cancel’이라는 두 가지 기능을 포함한다. <ref name="제로엑스각주"></ref> 전체 컨트랙트는 약 100줄의 코드이며 주문을 완료하기 위해 약 90k의 가스 비용이 소요된다.<ref name="제로엑스각주"></ref>
+
교환 프로토콜은 공개적으로 액세스 할 수 있고 무료로 사용할 수 있는 이더리움 스마트 컨트랙트 내에서 구현된다.<ref name="제로엑스각주"></ref> 교환 프로토콜은 솔리디티 프로그래밍 언어로 구현되며, ‘Fill’과 ‘Cancel’이라는 두 가지 기능을 포함한다. <ref name="제로엑스각주"></ref> 전체 컨트랙트는 약 100줄의 코드이며 주문을 완료하기 위해 약 90k의 가스 비용이 소요된다.<ref name="제로엑스각주"></ref>
 
==== 서명 인증 ====
 
==== 서명 인증 ====
 
교환 스마트 컨트랙트는 ecrecover 함수를 사용하여 주문 발송자 서명을 인증할 수 있다.<ref name="제로엑스각주2"></ref> Ecrecover 함수는 해시와 해시 서명을 인수로 사용하여 서명을 생산한 공개키를 반환한다. Ecrecover에 의해 반환된 공개키가 제조업체 주소와 같은 경우 서명은 인증된다.
 
교환 스마트 컨트랙트는 ecrecover 함수를 사용하여 주문 발송자 서명을 인증할 수 있다.<ref name="제로엑스각주2"></ref> Ecrecover 함수는 해시와 해시 서명을 인수로 사용하여 서명을 생산한 공개키를 반환한다. Ecrecover에 의해 반환된 공개키가 제조업체 주소와 같은 경우 서명은 인증된다.
 
==== Fills & Partial Fills ====
 
==== Fills & Partial Fills ====
교환 스마트 컨트랙트는 이전의 주문에 대한 각각의 참조를 저장하여 단일 주문이 여러 번 저장되는 것을 방지한다. 이 참조는 매핑 내에 저장된다. 이 경우는 32바이트의 데이터 청크를 256비트의 부호 없는 정수로 매핑하는 데이터 구조이다.<ref name="제로엑스각주2"></ref> 명령과 관련된 매개 변수를 Keccak SHA3 함수에 전달하고, 해당 순서를 식별하는데 사용되는 고유한 32바이트 해시가 생기게 된다. 주문이 채워질 때마다 매핑은 주문 해시와 저장된 누적 값을 저장한다. 구매자는 교환 스마트 컨트랙트의 저장 기능을 호출할 때 valueFill이라는 추가 인수를 지정하여 부분적으로 주문을 저장할 수 있다. 다양한 부분 저장의 합계가 주문의 전체 가치를 초과하지 않는 한 하나의 주문에서 여러 부분의 저장이 실행될 수 있다.
+
교환 스마트 컨트랙트는 이전의 주문에 대한 각각의 참조를 저장하여 단일 주문이 여러 번 저장되는 것을 방지한다. 이 참조는 매핑 내에 저장된다. 이 경우는 32바이트의 데이터 청크를 256비트의 부호 없는 정수로 매핑하는 데이터 구조이다.<ref name="제로엑스각주2"></ref> 명령과 관련된 매개 변수를 Keccak SHA3 함수에 전달하고, 해당 순서를 식별하는데 사용되는 고유한 32바이트 해시가 생기게 된다. 주문이 채워질 때마다 매핑은 주문 해시와 저장된 누적 값을 저장한다. Taker는 교환 스마트 컨트랙트의 저장 기능을 호출할 때 valueFill이라는 추가 인수를 지정하여 부분적으로 주문을 저장할 수 있다. 다양한 부분 저장의 합계가 주문의 전체 가치를 초과하지 않는 한 하나의 주문에서 여러 부분의 저장이 실행될 수 있다.
 
==== 만료 시간 ====
 
==== 만료 시간 ====
주문이 서명된 시점의 판매자에 의해 주문 만료 시간이 지정된다. 만료 시간은 유닉스 epoch 이후의 절대시간을 나타내는 부호 없는 정수값이다.<ref name="제로엑스각주2"></ref> 이 값은 일단 서명 되면 변경이 불가능하다. 이더리움 가상 머신 내의 시간은 새로운 블록이 채워질 때마다 설정되는 블록 타임 스탬프에 의해 결정된다. 따라서 주문의 만료 상태는 구매자가 주문을 작성하려는 의도를 전달하는 시간에 의존하지 않고 [[채굴]] 기능이 [[마이너]]에 의해 [[EVM]]에서 실행되는 시간에 따라 달라지게 된다. 마이너는 현재 블록의 블록 타임 스탬프를 이전 블록의 타임 스탬프보다 이전으로 설정할 수 없다.<ref name="제로엑스각주2"></ref>
+
주문이 서명된 시점의 Maker에 의해 주문 만료 시간이 지정된다. 만료 시간은 유닉스 epoch 이후의 절대시간을 나타내는 부호 없는 정수값이다.<ref name="제로엑스각주2"></ref> 이 값은 일단 서명 되면 변경이 불가능하다. 이더리움 가상 머신 내의 시간은 새로운 블록이 채워질 때마다 설정되는 블록 타임 스탬프에 의해 결정된다. 따라서 주문의 만료 상태는 Taker가 주문을 작성하려는 의도를 전달하는 시간에 의존하지 않고 채굴 기능이 마이너에 의해 EVM에서 실행되는 시간에 따라 달라지게 된다. 마이너는 현재 블록의 블록 타임 스탬프를 이전 블록의 타임 스탬프보다 이전으로 설정할 수 없다.<ref name="제로엑스각주2"></ref>
 
==== 주문 취소 ====
 
==== 주문 취소 ====
관련 판매자는 잔여 주문 및 만료되지 않은 주문을 교환 스마트 컨트랙트의 취소 기능을 통해 취소할 수 있다. 취소 기능은 주문의 해시를 주문의 최댓값(valueA)에 매핑하여 후속 저장를 방지하는 것이다. 주문 취소는 가스를 소비하므로 취소 기능은 대체 메커니즘으로만 사용된다. 일반적으로 제조업체는 주문 만료 시간을 주문을 업데이트하려는 빈도와 일치하게끔 설정함으로써 체인 연결을 피할 것으로 예상된다. 이 방법의 문제점은 구매자가 동일한 주문을 저장하려고 하는 것과 동시에 주문을 취소하려고 하는 상황이 생길 수 있다는 것이다. 두 거래가 채굴되는 순서에 따라 두 당사자 거래 중 하나가 실패하여 가스를 낭비한다. [[트랜잭션]]이 채워지는 순서와 관련된 불확실성은 때로는 부정적인 결과를 낳을 수 있다. 이 불확실성은 이더리움 블록체인이 현저한 트랜잭션 보류를 경험할 경우 증가한다.
+
관련 Maker은 잔여 주문 및 만료되지 않은 주문을 교환 스마트 컨트랙트의 취소 기능을 통해 취소할 수 있다. 취소 기능은 주문의 해시를 주문의 최댓값(valueA)에 매핑하여 후속 저장를 방지하는 것이다. 주문 취소는 가스를 소비하므로 취소 기능은 대체 메커니즘으로만 사용된다. 일반적으로 제조업체는 주문 만료 시간을 주문을 업데이트하려는 빈도와 일치하게끔 설정함으로써 체인 연결을 피할 것으로 예상된다. 이 방법의 문제점은 Taker가 동일한 주문을 저장하려고 하는 것과 동시에 주문을 취소하려고 하는 상황이 생길 수 있다는 것이다. 두 거래가 채굴되는 순서에 따라 두 당사자 거래 중 하나가 실패하여 가스를 낭비한다. 트랜잭션이 채워지는 순서와 관련된 불확실성은 때로는 부정적인 결과를 낳을 수 있다. 이 불확실성은 이더리움 블록체인이 현저한 트랜잭션 보류를 경험할 경우 증가한다.
  
 
=== 프로토콜 토큰 ===
 
=== 프로토콜 토큰 ===

해시넷에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 해시넷:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)