양방향 마이크로 결제 채널의 무효화 트리 정보

무슨 이야기?



비트코인은 단위 시간당 처리할 수 있는 트랜잭션 수에 한계가 있습니다.
소위 확장성 문제입니다. 이를 해결하기 위해 트랜잭션 처리를 블록 체인 외부에서 수행하는 마이크로 지불 채널이라는 접근법이 있습니다.
invalidation tree는 양방향 마이크로 지불 채널의 기본 구조입니다.

원래 논문은
A Fast and Scalable Payment Network with Bitcoin Duplex Micropayment Channels

전제 지식


  • 단방향 마이크로 지불 채널 지식
  • 트랜잭션 시간 잠금 지식
  • 멀티 시그 지식
  • (segwit 지식)

  • 준비



    각각 1BTC 보유하고 있는 Alice 와 Bob 가, 양방향(Alice ⇔ Bob)으로 자금의 교환을 하는 것을 생각합니다. 양방향으로 상호작용을 하려면, 단방향 마이크로페이먼트 채널을 2개 만들면 좋을 것입니다. 이곳에서
    Cab : Alice ⇒ Bob の単方向チャネルCba : Bob ⇒ Alice の単方向チャネル
    로 정의합니다. 각 채널에서 자금의 초기 상태는 다음과 같습니다.
    Cab: Alice(1BTC), Bob(0BTC)Cba: Alice(0BTC), Bob(1BTC)
    여기서, Alice ⇒ Bob 에 1BTC 지불, Bob ⇒ Alice 에 0.5BTC 지불을 하면 다음과 같이 변화합니다.
    Cab: Alice(0BTC), Bob(1BTC)Cba: Alice(0.5BTC), Bob(0.5BTC)
    현재 Alice의 보유 자금은 0.5BTC, Bob은 1.5BTC입니다. 할 수 없습니다.

    양방향 마이크로 지불 채널



    invalidation tree는 간단히 설명하면 단방향 채널을 재설정하는 메커니즘입니다.
    위의 Cab, Cba를 다음과 같이 재설정합니다.
    Cab: Alice(0.5BTC), Bob(0BTC)Cba: Alice(0BTC), Bob(1.5BTC)
    이 때 이전 채널을 invalidate (사용 안 함)해야합니다.
    invalidation tree 에서는, 타임 락을 이용해 invalidate 하고 있습니다.


    A Fast and Scalable Payment Network with Bitcoin Duplex Micropayment Channels 부터

    그림에서 invalidation tree의 깊이는 d = 3입니다.
    d 는 1 에서도 문제 없습니다. d가 크면 리셋 횟수의 상한이 증가합니다.

    ●는 Alice, ○는 Bob, ←이런 녀석이 멀티 시그입니다.
    사각형은 트랜잭션이고 T는 잠금 시간입니다.
    그림 오른쪽 가장자리의 micropayment channels는 단방향 지불 채널입니다.
    그 결과 가장 오른쪽 은 멀티 시그이지만 가상으로 하나의 파티에 자금이 보유하고 있는 형태가 됩니다.

    그림에서 세 번 재설정이 발생했으며 총 네 번의 경로가 발생했습니다.
    1회째 : 100 - 100 - 100
    2회째 : 99 - 100 - 100
    3회째 : 99 - 99 - 100
    네 번째 : 99 - 99 - 99
    가장 짧은 시간 잠금이 있는 99 - 99 - 99 경로만 유효합니다.

    예를 들어, 100 - 100 - 99 와 같은 패스는 조합할 수 없습니다. T = 100 잠금 시간 트랜잭션 출력은 T = 99 잠금 시간 트랜잭션이 참조 할 수 없기 때문입니다 (UTXO 사용).

    좋은 웹페이지 즐겨찾기