본문 바로가기

정보글

Interledger의 구조

Interledger Architecture

중개자 아키텍처




원문출처



구글 번역

중개인은 여러 원장의 여러 자산에 대한 안전한 지불을 제공합니다. 이 아키텍처는 interledger 지불을위한 개념적 모델, 지불을 보장하기위한 메커니즘 및이 디자인을 구현하는 일련의 프로토콜로 구성됩니다.

Interledger 프로토콜 (ILP)는 Interledger 프로토콜 제품군의 핵심입니다. 대개, Interledger 스택 전체를 "ILP"라고도합니다. 그러나 기술적으로 Interger 프로토콜은 스택의 한 계층에 불과합니다.

중개자는 블록 체인, 토큰 또는 중앙 서비스가 아닙니다. interledger는 금융 시스템을 연결하는 표준 방법입니다. Interledger 아키텍처는 RFC 1122 , RFC 1123 및 RFC 1009에 설명 된 인터넷 아키텍처에 크게 영향을 받았습니다 .

핵심 개념

중개자

"Interledger 프로토콜 모음"은 모든 참여자 네트워크 (공용 또는 개인)간에 사용할 수 있습니다. 이 프로토콜을 사용하려면 모든 당사자가 연결해야하는 단일 네트워크가 없습니다.

"Interledger"는 일관된 글로벌 금융 인프라를 제공하고자하는 Interledger 프로토콜 제품군의 공개 인스턴스 이름입니다. 이상적으로는 중개인과 연결된 모든 사람이 자신이 선택한 기본 시스템과 통화를 사용하는 다른 모든 사람과 거래 할 수 있어야합니다.

발신자, 수신자, 커넥터

두 당사자는 온라인 사업을 할 때 돈을 보내는 사람은이다 보낸 사람 과 돈이입니다 얻는 하나의 수신기 . 발신자와 수신자가 일부 통화 시스템을 공유하지 않는 경우 하나 이상의 통화자를 연결해야합니다. interledger 아키텍처에서 커넥터 는 리시버에 도달 할 때까지 네트워크를 통해 통화를 전달합니다.


이러한 사양 내에서 우리 는 중개자의 모든 참가자에 대한 일반 용어로 노드 를 사용 합니다 . 노드는 송신자, 수신자 또는 커넥터 일 수 있습니다. 노드는 개인 또는 비즈니스 또는 단일 장치 또는 소프트웨어 프로그램을 나타낼 수 있습니다. 노드가 장치 또는 소프트웨어 프로그램을 나타내는 경우, 노드는 일반적으로 장치의 소유자 또는 소프트웨어를 실행하는 사람을 나타내는 다른 노드에 연결됩니다.

눈금이 개별 노드이고 모서리가 두 당사자 간의 계정 인 그래프로 Interledger를 구상 할 수 있습니다 하나의 계정을 가진 당사자는 해당 계정의 다른 쪽 당사자를 통해 송수신 할 수 있습니다. 두 개 이상의 계정을 가진 당사자 는 연결되어있는 사람과주고받을 수 있는 커넥터 입니다.

커넥터는 패킷을 전달하고 돈을 중계하는 서비스를 제공하며 그렇게 할 때 위험을 감수합니다. 교환기에서는 커넥터가 수수료를 청구하고 이러한 서비스로부터 이익을 얻을 수 있습니다. Interledger의 개방형 네트워크에서 커넥터는 속도, 신뢰성, 적용 범위 및 비용의 최상의 균형을 제공하기 위해 서로 경쟁해야합니다.

프로토콜 계층


다른 인터넷 프로토콜 스택과 마찬가지로 Interger 프로토콜 제품군은 여러 가지 책임을 지닌 프로토콜 계층으로 나뉩니다. 하위 수준 프로토콜은 상위 수준 프로토콜이보다 복잡한 기능을 제공하기 위해 사용하는 기본 기능을 제공합니다.

참고 : 그림에는 IL-RFC-31 : Interledger Dynamic Configuration Protocol 및 Route Broadcasting Protocol 같은 구성 프로토콜이 나와 있지 않습니다 . 이러한 프로토콜은 Interger 프로토콜 계층 위에 구축되어 지원되지만 전송 또는 응용 프로그램 계층 프로토콜로 간주되지 않습니다.

다음 섹션에서는 프로토콜 제품군의 각 계층에 대한 일반적인 기능을 설명합니다. 프로토콜의 데이터 형식에 대한 자세한 설명은 IL-RFC-33 : 프로토콜 간의 관계를 참조하십시오 .

원장 프로토콜

Interledger 프로토콜 스위트는 "원장 프로토콜"이라고 불리는 레벨 위에 있습니다. 이 레벨은 Interger가 연결하는 기존의 자금 시스템을 나타냅니다. 엄격하게 Interger 프로토콜 제품군의 일부는 아니지만 Interger 모델에 없어서는 안될 부분입니다.

Interledger 프로토콜을 사용하여 두 노드간에 지불이 이루어지기 때문에 지불 의무가 증가하고 때로는 서로 상계합니다. 미결제 잔액이 노드가 계속 기꺼이 유지할 수있는 한도에 도달하기 전에 그들은 공통점이있는 일부 화폐 시스템에서 해당 잔액 을 정산 해야합니다 .

중개인을 위해 모든 결제 시스템 원장을 호출합니다 여기에는 은행, 블록 체인, 피어 투 피어 지불 방식, ACH (automated clearing house), 모바일 자금 기관, 중앙 은행 운영 RTGS (real-time gross settlement) 시스템 등이 포함될 수 있습니다.

따라서 Interger를 사용하여 비즈니스를 수행하기 전에 각 참가자 쌍은 의무를 해결할 방법을 선택하고 정착하기 전에 얼마나 많은 시간 동안 빚진 금액을 기꺼이 갚아야하는지에 대한 제한을 설정해야합니다. 이 협정의 세부 사항은 그들이 한 가지 규칙을 지키는 동안 다른 중재자에게 중요하지 않습니다.

하나의 계정에 대한 정산은 다른 계정의 상태에 의존해서는 안됩니다.

중개인의 한 계좌 정산이 다른 계좌 또는 관계의 상태에 따라 좌우되는 경우 2008 년 글로벌 금융 위기 당시와 비슷한 계단식 위험 및 실패의 위험을 초래할 수 있습니다. 노드는 가능한 경우 담보부 지불 채널과 같은 결제 기술을 사용하여 그러한 위험으로부터 자신을 보호 할 수 있습니다. 이러한 유형의 계약은 상대방이 지불하지 않을 위험없이 고속 정산을 제공 할 수 있습니다. 다양한 원장 유형 및 결제 전략에 대한 자세한 내용은 IL-RFC-22 : 해쉬 된 Timelock 계약을 참조하십시오 .

노드는 자신의 의무를 절대로 정하지 않을 수도 있습니다. 이 구성은 소프트웨어 또는 장치의 다른 부분을 나타내는 여러 노드가 모두 동일한 개인 또는 비즈니스가 소유하고 외부 세계와의 모든 트래픽이 단일 "홈 라우터"커넥터를 통과 할 때 유용 할 수 있습니다. 이것은 interleger 의 현재 구현 중 하나 인 moneyd 의 모델입니다 .

Interledger의 대부분의 구현은 서로 다른 원장 계층 프로토콜 간의 차이점을 추상화하면서 의무를 자동으로 해결하기 위해 플러그인 아키텍처를 사용합니다. 이에 대한 예는 IL-RFC-24 : JavaScript Ledger Plugin Interface 버전 2를 참조하십시오 .

Interledger 프로토콜의 피어는 서로 안전하게 통신하는 방법이 필요합니다. 기존의 대부분의 원장은 계정 보유자간에 양방향 인증 통신을 구현하지 않기 때문에이 기능을 제공하기 위해 링크 프로토콜이 필요합니다. 링크 프로토콜은 일반적으로 두 가지 유형의 정보를 전달합니다.

  • Interledger 프로토콜 데이터의 패킷.
  • 미결제 잔액 정산에 대한 정보.

IL-RFC-23 : 양방향 전송 프로토콜 (Bilateral Transfer Protocol) 은 WebSocket을 통해이 정보를 전달 하고 다양한 기본 원장과 호환 되는 링크 계층 프로토콜을 정의합니다 .

링크 프로토콜은 기본 원장에서 발생하는 정산을 전달해야하기 때문에 링크 프로토콜 구현을 원장 플러그인에 통합 할 수 있습니다.

interledger 프로토콜

Interledger Protocol 버전 ​​4 (ILPv4)는 전체 Interger 프로토콜 제품군의 핵심 프로토콜입니다. 이 프로토콜의 패킷은 보낸 사람에서 하나 이상의 커넥터를 통해 수신자에게 체인의 모든 참가자를 전달합니다. 이 프로토콜은 다양한 통화 및 기본 원장 시스템과 호환됩니다.

이 수준은 통화 금액, 전달 및 지급 단계의 각 단계가 시간 내에 도착하는지 또는 만료되는지 여부와 관련됩니다. 이 프로토콜은 여러 중개자를 사용하여 발신자와 수신자를 연결하는 경로를 찾습니다. 이 경로를 통해 전달되는 패킷들은 암호화 포함 조건그 이행 수신자 만 (및 송신기)로 알려져있다. 모든 것이 잘되고 수신자가 자금을 원할 경우 수신자는 이행을 제공하여 경로의 각 계정에서 자금 이동을 시작합니다. 이렇게하면 성취는 돈이 의도 된 수령인에게 전달되었음을 증명합니다.

이 레이어는 서로 위아래로 레이어를 추상화하므로이 레이어에는 하나의 프로토콜 만있을 수 있습니다. Interger 프로토콜의 이전 버전을 포함한 다른 프로토콜은 호환되지 않습니다. 현재 프로토콜은 IL-RFC-27 : Interledger Protocol 버전 ​​4에 의해 정의됩니다 .

전송 프로토콜

전송 계층 프로토콜은 송신자와 수신자 간의 종단 간 통신에 사용됩니다 커넥터는 관련되지 않아야합니다. 이 계층은 다음을 담당합니다.

  • Interledger Protocol 계층에서 사용되는 조건 및 이행 정의
  • 원하는 결과를 얻기 위해 패킷 그룹화 및 재시도
  • 지불의 실제 환율 결정
  • 패킷을 전송할 수있는 속도에 맞게 조정
  • 데이터 암호화 및 암호 해독

예를 들어, IL-RFC-29 : STREAM에 정의 된 STREAM 프로토콜을 참조하십시오 STREAM은 많은 개별 Interledger 패킷으로 구성된 송신자와 수신자 간의 양방향 연결을 작성합니다.

응용 프로그램 프로토콜

응용 프로그램 수준의 프로토콜은 지불을 완료하는 데 기술적으로 필요한 최소한의 정보 이외의 세부 정보를 전달합니다. 예를 들어, 애플리케이션 프로토콜은 참가자가 거래를 수행하는 데 관심이 있는지 여부를 확인하고 합법적으로 허용 할 수 있습니다.

이 계층의 프로토콜은 다음을 담당합니다.

  1. 도착 계정 검색 ( "정확히 어디에서 돈을 보내야합니까?")
  2. 목적지 금액 협상 ( "수수료 및 환율에 따라 많은 금액이 도착하면 괜찮습니까?")
  3. 전송 프로토콜 선택 및 관련 세부 정보 통신 ( "우리는 STREAM을 사용합니까? 우리는 어떤 공유 비밀을 사용해야합니까?")
  4. 선택적으로, ILP 패킷 데이터에서 전달되어야하는 다른 정보. ( "이 인보이스 식별자를 사용하여 동영상 구독에 대한 결제 금액을 인정합니다.")

응용 프로그램 계층 프로토콜의 예로는 HTTPS를 통해 대상 ILP 주소 및 관련 세부 정보를 전달하고 STREAM을 전송 계층 프로토콜로 사용하는 SPSP (Simple Payment Setup Protocol)가 있습니다.

Interledger 클리어링 시스템의 응용 프로그램 레벨 이상으로 다양한 메시징 프로토콜을 정의 할 수 있습니다.

전통적인 금융 인프라와의 비교

Interledger의 계층은 전통적인 은행 간 시스템의 여러 계층과 유사합니다.

  • Interledger의 Application 계층은 뱅킹 용어 로 메시징 과 비슷한 목적을 수행합니다 .
  • Interledger의 Transport 와 Interledger 레이어 는 뱅킹 의 클리어링 시스템 과 비슷 하지만 약간의 차이점이 있습니다. 자세한 내용은 IL-RFC-32 : 피어링, 클리어링 및 정산을 참조하십시오 .
  • Interledger의 Link 프로토콜 에는 은행 업무와 동일한 직접적인 기능이 없지만 Interledger Protocol 계층을 사용할 수 있도록 인증 된 메시징 기능을 제공하며 기본 원장의 정산 이벤트를 Interger 프로토콜 계층의 저울과 연관시킵니다.
  • 기본 원장 시스템은 은행 용어 로 정산 하는 것과 동일 합니다.

interledger 프로토콜 흐름

중개자는 패킷 을 중계하여 돈을 이동 합니다 . interledger 프로토콜에서 "준비"패킷은 돈의 가능한 움직임을 나타내며이를 해제하기위한 조건이 있습니다. 패킷이 커넥터 체인을 통해 앞으로 이동하면 보낸 사람과 커넥터는 둘 사이의 계정에 대해 균형 변경을 준비합니다. 또한 커넥터는 통화 변환 및 수수료를 뺀 금액을 조정합니다.

준비 '패킷이 수신기에 도달 할 때 수신 할 금액이 허용되는 경우, 수신기는 마지막 커넥터와 수신기 사이의 계좌 잔액의 변화를 확인하는 "수행"패킷 조건을 충족. 커넥터는 발신자의 돈이 첫 번째 커넥터에 지불 될 때까지 "fulfill"패킷을 체인으로 다시 전달하여 계획된 잔액 변경을 확인합니다.


도중에 어떤 단계에서든, 커넥터 또는 수신자는 지불을 거절 할 수 있고, "거절"패킷을 체인으로 되돌려 보낼 수 있습니다. 이는 수신자가 돈을 원하지 않거나 커넥터가 전달하지 못하는 경우에 발생할 수 있습니다. 준비된 지불은 조건이 충족되지 않고 만료 될 수도 있습니다. 이 모든 경우 잔액이 변경되지 않습니다.


이 흐름은 IL-RFC-27 : Interledger Protocol 버전 ​​4 에 자세히 설명되어 있습니다.

패킷 화 된 돈

패킷이 실세계 지불의 전액을 나타낼 필요는 없습니다. Interledger Protocol 위에 구축 된 전송 프로토콜 은 많은 소규모 패킷을 단일 값의 단일 지불로 결합하여 원하는 결과를 얻기 위해 필요에 따라 개별 패킷을 거부하고 다시 시도 할 수 있습니다. 이런 식으로 작은 패킷을 사용하면 (데이터 크기가 아닌 표시된 금액) 네트워크에 여러 가지 이점이 있습니다.

  • 작은 패킷은 발신자가 커넥터의 자금을 잠글 수있는 곳에서 "무료 옵션 문제"를 줄인 다음 환율이 자신들의 이익을 위해 움직이는 지 여부에 따라 약속 된 거래를하거나하지 않습니다.
  • 소액 패킷은 더 많은 거래에서 작은 커넥터 (적은 자금을 사용할 수있는 커넥터)를 필요로하며 커넥터를 운영하기위한 진입 장벽을 낮 춥니 다. 이는 전체 금액보다 적은 금액으로 이동하는 것이 여전히 유용 할 수 있기 때문입니다.
  • 소액의 소포는 참가자가 자신의 잔액을 더 자주 정산하도록하여, 큰 지불금을 보낼 때조차도 두 참가자 간의 미결제가 낮게 유지 될 수 있습니다.

Interledger Protocol에는 "small"이라는 특정 정의가 없으며 패킷의 크기 제한도 없습니다. 각 커넥터는 중계 할 의사가있는 최소 및 최대 패킷 크기를 선택할 수 있습니다. 결과적으로 모든 경로의 최대 패킷 크기는 해당 경로의 커넥터 중에서 가장 작은 최대 패킷 크기입니다. 가능한 많은 네트워크와 호환되도록하려면 가능한 한 많은 커넥터의 최소값과 최대 값 사이에 맞는 패킷 크기를 선택해야합니다.

구애

Interledger 주소 ( ILP 주소 라고도 함 )는 발신자, 수신자 및 커넥터를 처리하는 보편적 인 방법을 제공합니다. 이 주소는 여러 프로토콜 계층에서 사용되지만 가장 중요한 기능은 인터 로더 프로토콜 계층에서 라우팅을 사용 가능하게하는 것입니다. 중개자 주소는 가장 왼쪽 세그먼트가 가장 중요한 계층 적, 점 분리. 자열입니다. 예 주소가 같을 수 있습니다 g.us.acmebank.acmecorp.sales.199또는 g.crypto.bitcoin.1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2.

ILP 주소의 형식과 라우팅에 적용되는 방법에 대한 자세한 내용은 IL-RFC-15 : ILP 주소를 참조하십시오 .

Interledger의 두 당사자가 피어 - 투 - 피어 연결이 아닌 "부모 / 자식"연결을 갖는 경우, 자식은 계층 구조에서 부모 주소 아래에있는 interledger 주소를 요청할 수 있습니다. 자세한 내용은 IL-RFC-31 : ILDCP (Interledger Dynamic Configuration Protocol)를 참조하십시오 .

중개인 보안

Interledger는 조건부 전송 을 사용 하여 여러 홉에서, 심지어는 신뢰할 수없는 커넥터를 통해 지불을 안전하게합니다. 주어진 패킷을 포워딩하는 데 얼마나 많은 커넥터가 관련되어 있더라도 상관없이 모든 사람은 직접적인 동료를 신뢰해야합니다. 커넥터는 위험이 있지만이 위험은 관리 할 수 ​​있으며 주로 커넥터의 선택한 피어를 기반으로합니다.

Hint : 조건부 전송 또는 권한 유지 는 2 단계 확약 과 동등한 재정적 인 조치 입니다.

각 당사자는 즉각적인 동료 외의 위험으로부터 격리되므로 긴 경로는 본질적으로 짧은 경로보다 위험하지 않습니다. 이렇게하면 더 긴 경로가 더 짧은 경로와 경쟁하여 주어진 발신자로부터 주어진 수신자에게 돈을 전달하면서 발신자에게 위험을 줄일 수 있습니다.

원래 Interbelger 백서는 원 자성을보다 강하게 보장 하는 원자 모드 를 제시 했지만 원자 모드를 구현하려면 개방형 네트워크로 일반화 할 수없는 추가 계약이 필요합니다. Interledger 프로토콜 제품군의 사양은 백서에서 범용 모드를 호출하는 것과 관련이 있습니다 .

조건 및 이행

Interledger는 준비 패킷의 조건으로 SHA-256 해시 기능 의 다이제스트를 사용합니다 (이 선택은 번개 네트워크 의 설계에서 영감을 얻었습니다 .) fulfill 패킷에는 준비 패킷에 지정된 해시에 대한 유효한 32 바이트 사전 이미지가 들어 있습니다. 커넥터는 Interledger Protocol 계층의 이행을 확인합니다.

지불을위한 송신자와 수신자는 전송 계층 프로토콜을 사용하여 각 패킷에 대한 조건과 이행을 정의합니다 .

커넥터 위험 및 완화

Interledger 커넥터는 지불 촉진으로 발생하는 수익과 교환 할 때 약간의 위험을 감수합니다. 중개인 지불 플로우에서 커넥터는 수신자 측 계정에서 수신 의무가 발생하기 전에 수신 측 계정에서 발신 의무를 부담합니다. 각 커넥터는 fulfill패킷을 받으면 fulfill보낸 사람 쪽 계정의 상대방 에게 패킷을 배달 할 시간을 갖습니다 fulfill패킷을 제 시간 에 배달하지 못하면 커넥터 가 손실 될 수 있습니다.

Interledger 패킷의 경로에있는 일부 커넥터가 시간상 패킷을 수신 fulfill하고 다른 커넥터는 그렇지 않은 경우 수신자는 패킷이 수신되었음을 알게되지만 보낸 사람은 알 수 없습니다. 일반적으로 하나의 Interledger 패킷은 더 큰 거래 또는 지불 스트림의 일부이므로 다음 패킷에 대한 응답을받을 때 보낸 사람이 어떤 일이 발생했는지 알 수 있습니다. 보낸 사람은 또한 만료 된 패킷을 다시 시도 할 수 있습니다 (MAY). 재시도에 관한 송신자와 수신자의 정확한 동작은 전송 계층에 의해 정의됩니다. 예를 들어 STREAM 전송 계층 프로토콜에 대한 설명 은 IL-RFC-29 : STREAM 을 참조하십시오 .

fulfill패킷을 제 시간 에 배달하지 못하는 것이 커넥터의 주된 위험 요소이며 커넥터가 이러한 위험을 완화하고 관리하기 위해 채택해야 할 추가 전략이 있습니다. 자세한 내용은 IL-RFC-18 : 커넥터 위험 완화를 참조하십시오 .