블록체인에서의 배송 대 지불 PlatoBlockchain Data Intelligence. 수직 검색. 일체 포함.

블록 체인에서의 배달과 지불

블록 체인이 책에서 가장 오래된 문제를 해결하는 방법

사람들 간의 거래는 인류 그 자체만큼이나 오래되었습니다. 그것은 원시인 Ogg가 원시인 Ugg에게“나는 너에게 바위를주고, 너는 내게 열매를 준다”고 말했을 때 시작되었다. 그러나 거래에는 근본적인 문제가 있습니다. 신뢰. Ogg가 바위를 사용하여 Ugg를 때리고 두 바위를 잡는 것을 막는 이유 도망 가기 전에 열매? 구두 교환 합의를 어떻게 양측이 그들의 말을 지키도록하는 집행 메커니즘으로 변환합니까?

현대적인 예를 들자면 몇 년 전에 중고 시장에서 차를 팔았습니다. 나는 인터넷을 통해 구매자를 찾았고, 우리는 직접 만났고, 그는 차를 테스트했고 우리는 가격에 동의했습니다. 그래서 그는 자신의 은행에 가서 계산원 수표를 받으러갔습니다.이 수표는 좀 더 간결한 형태로 현금화되었습니다. 우리는 우체국으로 걸어 가서 자동차의 법적 소유권을 양도하는 공식 정부 양식에 서명하고 제출할 수 있습니다.

그래서 우리는 우체국 창가에 서서 어색한 교착 상태에 도달했습니다. 수표는 아직 그의 주머니에 있고 서명 된 양식을 들고 있습니다. 우리는 몇 시간 전에 만났고 서로를 믿을 이유가 없습니다. 먼저 양식을 제출 한 다음 도망가는 것이 아니라 그가 수표를 주길 바라나요? 아니면 그가 나에게 수표를 건네주고 내가 양식으로 주길 바라나요? 어느 쪽이든 누군가는 배신의 위험에 자신을 노출시키고 있습니다.

그런 다음 걱정을 그만두고 양식을 제출해야한다는 생각이 들었습니다. 왜? 두 가지 중 하나가 다음에 일어날 수 있기 때문입니다. 구매자가 수표를 건네 주면 모두가 행복하고 교환이 완료됩니다. 하지만 그가 대신 도망 치면 어떨까요? 이 경우 우체국 직원이 내가 방금 준 양식을보고 찢어 버릴 것입니다. 빙고, 우리는 안전한 거래소가 있습니다.

무슨 일이 있었는지 봤어? 우리의 딜레마는 중개자,이 경우 우체국 직원을 통해 해결되었습니다. 점원은 공정한 거래가 이루어 지거나 전혀 거래가 없는지 확인합니다. 그리고 어떤 중개인도이 서비스를 제공 할 수 없습니다. 양 당사자가 신뢰하는 사람이어야합니다. 정부 소유 우체국 직원의 경우 이는 정부 자체에 대한 우리의 신뢰에서 비롯됩니다. 우체국 직원이 뇌물을받을 수 있다면 나 또는 구매자가 현금과 자동차로 끝나는 상황을 설계 할 수 있습니다. 실제로 많은 나라, 이와 같은 부패는 번영에 막대한 영향을 미칠 수 있습니다.

원시인과 자동차는 한 가지입니다.하지만 우리의 초점을 거래가 중요한 금융 세계로 옮깁시다. 중심 역할. 물론 은행은 직원들에게 다른 사람의 주식으로 뛰쳐 나가도록 돈을 지불하지 않습니다. 그러나 금융 자산의 안전한 교환은 여전히 ​​중요한 문제로 남아 있습니다. 거래 참가자가 약속을 지키지 못할 수있는 만화 같은 방법이 적기 때문입니다. 예를 들어, 한 당사자가 파산 상태가되거나 시장 상황의 갑작스러운 변화로 인해 자산을 확보하지 못할 수 있습니다. 그들은 사무적인 실수 나 회계 사기 다른 상대방에서.

그 결과 "정착 위험”, 대부분의 금융 거래는 배송 대 결제 (DvP). 이것은 위에서 설명한 우체국 프로세스에 대한 멋진 용어입니다. DvP는 거래의 한 당사자가 약속 한 것을 제공하지 않는 경우 상대방이 제공 한 자산을 교환 할 수 있도록 보장합니다.

그리고 금융 세계에서 배달 대 지불은 어떻게 구현됩니까? 신뢰할 수있는 중개자를 통해 추측했습니다. 이들은 다른 은행, 청산 소 또는 중앙 증권 예금. 오늘날 대부분의 거래는 디지털 방식으로 이루어지기 때문에 실제 인증서 나 현금의 이전을 관리하는 문제가 아닙니다. 오히려 DvP는 중개자가 데이터베이스의 여러 기록을 동시에 업데이트하고 /하거나 다른 기관에 지침을 전송함으로써 달성됩니다.

블록 체인에 의한 배송 대 지불

데이터베이스에 대해 이야기하면 우리는 블록 체인 주제에 대해 깔끔하게 이해할 수 있습니다. 블록 체인을 사용하면 원장 또는 데이터베이스를 여러 당사자간에 공유하고 동기화 할 수 있습니다. 그러나 일반 데이터베이스와 달리 블록 체인 데이터베이스는 서로 치열한 경쟁을 벌이더라도 여러 사용자가 안전하고 직접 수정할 수 있습니다. 기업 IT에서 일한다면 그 문장의 의미에 대해 생각해보고 싶을 것입니다.

블록 체인에서 배달과 지불이 어떻게 작동하는지 이해하려면 먼저 비트 코인의 거래 모델을 이해해야합니다. 여기에서 다른 블록 체인 디자인은 트랜잭션에 다른 모델을 사용한다는 점에 유의해야하며, 나중에 이러한 차이점에 대해 자세히 설명하겠습니다.

비트 코인 거래에는 일련의 입력과 출력이 있습니다. 각 입력은 이전 거래의 하나의 출력에 연결되며, 이전 출력의 모든 비트 코인이 유입됩니다. 거래 입력의 비트 코인은 그 안에 기록 된 수량에 따라 출력에 재분배됩니다. 또한 각 트랜잭션 출력에는 소유자가 해당 개인 키를 보유하는 새 소유자의 공개 식별자가 포함됩니다. 비트 코인 거래는 다음 경우에만 유효합니다.

  • 거래 입력의 총 비트 코인 수량은 출력에 기록 된 수량보다 크거나 같습니다. 모든 차액은 블록 단위로 거래를 확인하는 "채굴 자"가 수수료로 수집하여 거래가 확인을 위해 입찰 할 수있는 시장 메커니즘을 만듭니다.
  • 트랜잭션은 해당 트랜잭션이 "지출"하는 모든 이전 출력의 소유자에 의해 승인됩니다. 이 승인은 새 거래 콘텐츠의 암호화 서명을 통해 표현됩니다. 이전 출력에 대한 서명은 공개 식별자와 일치하는 개인 키를 사용해서 만 생성 할 수 있습니다.

이 두 규칙은 모두 비 신뢰 당사자간에 공유되는 재무 원장에서 중요합니다. 첫 번째가 없으면 누구나 허공에서 비트 코인을 만들 수 있습니다. 그리고 두 번째가 없으면 모든 사람이 다른 사람의 비트 코인을 사용할 수 있습니다. 그러나 우리는 또한 개별 트랜잭션 내에서가 아니라 전역 적으로 적용되는 세 번째 규칙이 필요합니다.

  • 각 트랜잭션 출력은 하나의 후속 트랜잭션에서만 사용할 수 있습니다. 이것은 다음과 같은 공격을 방지합니다. 이중 지출 동일한 비트 코인이 한 명 이상의 수신자에게 전송됩니다.

이 규칙을 시행하기 위해 블록 체인은 서로 충돌하지 않는 유효한 트랜잭션의 시간순 로그를 포함하며이 로그는 네트워크의 모든 노드에서 독립적으로 확인됩니다.

비트 코인 거래 모델은 모든 금융 자산을 나타내도록 쉽게 확장 할 수 있습니다. 비트 코인이 포함 된 거래 출력 대신 자산 식별자와 수량을 보유 할 수 있습니다. 비트 코인 거래를 다루는 모든 규칙이 여전히 적용되어 참가자가 (a) 허공에서 자산을 생성하고, (b) 다른 사람의 자산을 소비하고, (c) 동일한 자산을 두 번 소비하는 것을 방지합니다. 비 암호 화폐 자산의 경우, 채굴자가 차이를 수집 할 수 있도록 허용하기보다는 입력 및 출력 수량이 정확하게 균형을 이루도록 주장하는 경향이 있습니다.

그렇다면이 모델을 사용하여 안전한 배송 대 지불 거래를 어떻게 생성할까요? Alice와 Bob이 Alice의 £ 10를 Bob의 $ 15로 교환하기로 동의했다고 가정 해 보겠습니다. 편의상 우리는 Alice가 이미 단일 트랜잭션 출력에 정확히 10 파운드가 있고 Bob도 15 달러를 가지고 있다고 가정합니다. (그렇지 않은 경우 쉽게 자금을 이동하여 그렇게 할 수 있습니다.)

우선, 양 당사자는 두 개의 입력과 두 개의 출력으로 트랜잭션을 작성합니다. 두 입력은 각각 Alice의 £ 10와 Bob의 $ 15를 포함하는 이전 출력을 소비합니다. 출력의 경우 첫 번째는 Alice의 식별자와 $ 15를 포함하고 두 번째는 £ 10을 포함하는 Bob에게갑니다. 두 통화의 입력 및 출력 수량이 균형을 이루기 때문에 거래는 위의 첫 번째 조건을 충족합니다. 두 번째를 수행하기 위해 Alice와 Bob은 트랜잭션에 서명해야합니다. 트랜잭션은 각각에 속한 이전 출력을 소비하기 때문입니다.

거래는 이제 블록 체인에 포함하여 완료 할 수 있지만, 이중 지출 문제를 고려해야합니다. Alice가 더 나은 거래를 제안한 다른 거래 상대방과 동일한 £ 10를 교환하는 충돌 거래를 생성했다면 어떻게 될까요? 여기에서 블록 체인이 각 출력을 한 번만 사용할 수 있도록 보장하는 세 번째 규칙이 적용됩니다. Alice와 Bob과의 교환이 블록 체인에있는 후에 경쟁 트랜잭션이 전송되면 단순히 확인되지 않습니다. 그리고 경쟁 거래가 먼저 확인되면 Alice와 Bob의 교환이 대신 실패합니다. 어느 쪽이든, 블록 체인은 Alice와 Bob의 거래소뿐만 아니라 다른 모든 거래에 대한 배송 대 지불을 보장합니다. Bob이 Alice의 £ 10를받지 못하면 Alice는 $ 15를받지 못합니다.

부분 거래의 힘

따라서 블록 체인은 두 당사자가 함께 모여 교환 거래를 구축하고 서명하며 전체적으로 성공하거나 실패 할 수있는 방법을 제공합니다. 이를 통해 프로세스를 관리하기 위해 신뢰할 수있는 중개자가 필요없이 공유 원장에서 지불과 배달을 할 수 있습니다. 블록으로 거래를 확인하는 채굴 자들은 여전히 ​​약간의 힘을 가지고 있지만 전통적인 중개자보다 훨씬 적습니다. 그들이 할 수있는 최악의 경우는 특정 거래 확인을 거부하는 것입니다. 전체적으로, 그리고 이것은 DvP를 위반하지 않습니다. 또한 실제로 거래를 생성하는 당사자간에 채굴을 공유하면 모든 사람이 자신을 확인할 수있는 기회를 갖게되므로이 위험은 완전히 사라집니다.

여태까지는 그런대로 잘됐다. 그러나 비트 코인 스타일의 블록 체인에는 더 많은 트릭이 있습니다. 트랜잭션은 해당 트랜잭션이 소비하는 각 이전 출력의 소유자가 서명해야합니다. 기본적으로이 서명은 트랜잭션 내의 전체 입력 및 출력 목록을 잠급니다. 암호화는 입력 또는 출력을 약간만 수정해도 서명이 유효하지 않게됩니다. 위의 예를 따르기 위해 Alice가 트랜잭션에 서명 한 후 Bob이 Carol로 대체되면 트랜잭션이 완전히 실패합니다.

하지만 앨리스가 누구와 교환을 수행하는지 상관하지 않는다면 어떻게 될까요? 대부분의 경우 그녀는 왜 신경을 써야합니까? Alice가 Bob과 특별히 일하기로 결정하지 않는 한, 그녀를 진정으로 염려하는 거래는 두 부분뿐입니다. 첫째, 그녀의 £ 10 산출물이 다른 수량이나 자산이 아닌 소비된다는 사실입니다. 둘째, 그녀는 대가로 새로운 산출물로 $ 15를받습니다. 시스템의 모든 돈이 깨끗한 한, Alice는 15 달러가 어디서 나오는지, 아니면 그녀의 교환을 용이하게하기 위해 다른 일이 일어날 지에 대해 신경 쓰지 않습니다.

아마도 단일 파티는 $ 15와 함께 앨리스의 £ 10에 대한 스트레이트 스왑을 수행 할 것입니다. 하지만 Bob과 Carol은 각각 $ 7.50 만 교환하고 싶을 것입니다. 이 경우, 그들은 각각 £ 5를 모으는 두 개의 출력과 함께 두 개의 입력을 트랜잭션에 추가합니다. 또는 Carol은 실제로 $ 15를 950 루블로 교환하고 싶고 모스크바의 Sasha는 950 루블을 가지고 있으며 £ 10를 찾고 있습니다. 이 경우 각 파티는 여전히 자신의 퍼즐 조각에만 관심을 갖는 3 방향 교환이 발생할 수 있습니다. Alice가 시작한 트랜잭션은 다양한 방법으로 완료 될 수 있습니다. 하지만 앨리스의 관점에서 볼 때, 이것들은 모두 그녀에게 15 파운드의 대가로 10 달러를주는 동일한 목적을 달성하며, 모두 그녀를 똑같이 행복하게 만듭니다.

교환 시나리오

블록 체인은 이것을 어떻게 촉진합니까? 부분 거래 및 부분 서명을 통해. Alice는 단일 입력 (그녀의 £ 10)과 단일 출력 ($ 15)으로 트랜잭션을 시작합니다. 그녀는 임의의 수의 다른 입력 또는 출력을 추가 할 수 있음을 나타내는 디지털 서명으로 트랜잭션의 이러한 부분을 잠급니다. 그녀는이 부분적인 거래를 Bob에게 넘기고 "당신이 할 수있는 일을보십시오"라고 말합니다. 아마도 그녀는 그것을 Carol과 다른 잠재적 인 상대방이나 신디케이트 구축 자에게도 넘겨 줄 것입니다. 이들 각각은 자신의 입력 및 출력 쌍을 추가하여 교환의 균형을 맞추거나 다시 전달할 수있는 더 큰 부분 트랜잭션을 생성 할 수 있습니다. 누군가가 무엇을하든, 거래는 입력 및 출력 자산이 균형을 이룬 후에 만 ​​실행될 수 있습니다 (즉, 블록 체인에서 확인을 통해 결제).

블록 체인 거래는 디지털 데이터 덩어리 일 뿐이므로 이러한 부분 거래는 이메일이나 다른 통신 매체를 통해 전송 될 수 있습니다. 잠재적 인 거래에 참여한 사람들이 알고 있기 때문에 공개적으로 게시 할 수도 있습니다. 블록 체인이 그들을 처리 할 것입니다. Alice의 서명은 누군가가 그녀에게 $ 10를 교환 할 경우에만 £ 15를 지출하도록 보장합니다.

마지막으로, Alice가 제안을 비활성화하기로 선택하면, 그녀가해야 할 일은 다른 거래에서 동일한 £ 10를 지출하는 것뿐입니다. 블록 체인은 동일한 출력이 두 번 소비되는 것을 허용하지 않기 때문에 기존의 부분 트랜잭션을 쓸모 없게 만듭니다. 블록 체인의 다른 모든 참가자는 이것을보고 교환을 완료하는 데 시간을 낭비하지 않습니다.

DvP에서 스마트 계약으로

내가 가진 것처럼 이전에 논쟁, 비트 코인 스타일 블록 체인은 공유 관계형 데이터베이스에서 동기화 및 보안을 관리하는 방법으로 볼 수 있습니다. 비트 코인 및 데이터베이스 트랜잭션은 모두 원자 적으로 처리되므로 전체적으로 성공하거나 실패합니다. 비유의 핵심은 블록 체인의 트랜잭션 출력과 데이터베이스의 행 사이의 동등성입니다. 일부 출력을 사용하고 일부를 생성하는 블록 체인 트랜잭션은 일부 행을 삭제하고 일부를 대신 생성하는 데이터베이스 트랜잭션과 동일합니다. (기존 행을 수정하는 데이터베이스 작업은 해당 행을 삭제하고 그 자리에 새로 업데이트 된 행을 만드는 것과 동일합니다.이 동등성은 인기있는 행의 기초가됩니다. MVCC 비트 코인 스타일의 블록 체인을 분산 된 형태로 볼 수있는 데이터베이스의 동시성 제어 방법.)

따라서 우리의 재무 데이터가 데이터베이스에 보관되어 있고 각 행에는 소유자의 식별자, 자산 식별자 및 자산 수량의 세 가지 정보가 포함되어 있다고 가정 해 보겠습니다. 블록 체인을 사용하면이 원장이 서로를 전혀 신뢰하지 않더라도 참가자간에 안전하게 공유 할 수 있습니다. 데이터베이스 언어로 다음을 보장합니다.

  • 트랜잭션에 의해 삭제 된 행의 자산 수량은 생성 된 행의 자산 수량과 일치합니다.
  • 트랜잭션에 의해 삭제 (또는 수정) 된 모든 행에 대해 해당 행의 소유자가 트랜잭션에 서명해야합니다.
  • 한 트랜잭션에서 데이터베이스 행을 삭제 한 경우 다른 트랜잭션이 다시 삭제하지 못하도록합니다.

첫 번째 규칙, 즉 거래가 자산 수량을 보존해야한다는 규칙을 살펴 보겠습니다. 우리는 이것을 "트랜잭션 제약"의 일반적인 개념으로 확장 할 수 있습니다. 트랜잭션 제약은 (a) 트랜잭션에 의해 삭제 된 행, (b) 생성 된 행의 두 세트의 각 트랜잭션을 보는 블랙 박스의 형태를 취합니다. 블랙 박스의 임무는이 두 세트를보고 거래가 유효한지 '예'또는 '아니오'로 대답하는 것입니다. 특정 경우에는 두 세트의 총 자산 수량이 정확히 일치하는 경우에만 예라고 대답합니다.

트랜잭션 제약 조건을 적용 할 수있게되면 규칙 집합을 포함하도록 확장 할 수 있습니다. 예를 들면 "이 자산의 단위는이 세 개의 다른 자산이 동시에 에스크로에 잠겨있는 경우에만 생성 될 수 있습니다."또는 "이 자산은 비가 충분하지 않다고보고하는 해당 행이있는 경우에만 이전 할 수 있습니다."일 수 있습니다. 블록 체인의 분산 아키텍처 관점에서 볼 때 박스 내부의 논리는 그것이 보는 모든 트랜잭션에 대해 명확하고 일관된 평가를 제공 할 수있는 한 아무런 차이가 없습니다.

결과적으로 트랜잭션 제약은 블록 체인 참여자가 수행 할 수있는 데이터 변환을 제한하는 일반적인 방법으로 작용할 수 있습니다. "스마트 계약"에 대한 이러한 접근 방식은 저장 프로 시저 에 사용 이더리움 및 그 에리스 유도체. 향후 기사에서는 단순성, 확장 성 및 동시성 측면에서이 두 가지 패러다임의 장단점에 대해 자세히 알아볼 것입니다.

여러분의 시간과 재능으로 트위터에 나를 따라와. 참조 : 비트 코인 대 블록 체인 논쟁 종료.

기술 부록

부분 DvP 트랜잭션을 작성하려면 서명 유형 of SINGLE|ANYONECANPAY. 사용하는 경우 멀티 체인Walk Through California 프로그램, preparelockunspent, createrawexchangeappendrawexchange API 호출 당신을 위해 세부 사항을 처리하십시오. 참조 시작 가이드 사용 방법에 대한 간단한 예는 페이지를 참조하십시오.

의견을 적어주세요 링크드 인에.

출처 : https://www.multichain.com/blog/2015/09/delivery-versus-payment-blockchain/

타임 스탬프 :

더보기 멀티 체인