P2EP(Pay-to-EndPoint)를 통한 기밀성 개선
Blockstream Research

P2EP(Pay-to-EndPoint)를 통한 기밀성 개선

Matthew Haywood

어떤 자산이든 교환 매체로 운영되려면, 자산이 대체 가능해야 합니다. 즉 해당 자산의 단위는 모든 단위에 동일한 가치가 적용되고 쉽게 교환될 수 있어야 합니다. 비트코인 블록체인을 분석하면 거래 내역이 있기 때문에 기업은 특정 비트코인을 '오염된' 것으로 선언하고 결제에 사용할 수 없다는 꼬리표를 붙일 수도 있습니다. 비트코인의 출처와 소유권을 조사하고 추적하는 블록체인 분석 회사는, 사용자의 개인 정보를 침해하고 비트코인의 자유로운 공정 거래를 방해합니다. 기본 거래에 대한 개인 정보가 보호되지 않으면, 비트코인은 교환 가능성의 일부를 잃게 됩니다.

최근 커뮤니티 실무 그룹의 참석자들은 비트코인의 기본적인 거래 기밀성을 개선시키겠다는 목표를 세웠습니다. 실무 그룹의 이러한 목표는 다음과 같이 요약할 수 있습니다; 블록체인 분석 회사가 가장 일반적으로 사용하는 휴리스틱(heuristic)을 방어하는 보편적인 방법을 지갑 개발자들에게 제공하고, 이를 통해 비트코인의 교환 가능성을 개선시킨다.

실무 그룹은 커뮤니티 토론을 장려하고 지갑과 지불 처리 프로세서가 보다 높은 기밀성을 갖고 상호 작용할 수 있는 표준화된 방식을 제공하기 위한 노력을 진전시키고자 합니다.

블록체인 분석 도구 무력화하기

Meiklejohn 외의 2013년 논문은 비트코인 블록체인에서 주소를 연결하는 데 사용되는 주요 휴리스틱을 다룹니다. Meiklejohn 외는 블록체인 분석의 기본 원칙은 "거래에 대한 입력으로 사용되는 여러 가지 공개 키를 동일한 사용자가 제어하는 것”으로 간주한다는 것을 확인했습니다.

따라서 일반적인 비트코인 거래의 조합은 주소와 비트코인 소유자를 추적하고자 하는 분석 회사에게 시작점(entry point)을 제공합니다. 이것이 바로 워크숍이 무력화에 초점을 맞춘 원칙입니다.

'공통 입력 소유권' 가정을 무효화하기 위해 모든 거래를 제안된 솔루션 중 하나에 참여시킬 필요는 없습니다. 단순히 다른 소유자의 입력을 공유하는 거래가 충분히 존재한다는 것을 확인하는 것만으로도 무효화는 자연스럽게 이루어집니다. 이것이 블록체인 분석 정보의 빌딩 블록이기 때문에, 이러한 솔루션이 꽤 자주 사용된다면, 비트코인 분석의 전제가 대체적으로 깨질 수 있다고 한 단계 더 나아가 가정하는 것도 터무니 없는 것은 아닙니다.

이러한 접근 방식은 실무 그룹에게 보다 명확한 목표를 심어주었습니다.

둘 이상의 당사자가 소유한 입력이 있는 거래가 '공통 입력 소유권' 휴리스틱의 가정이 무효화될 정도로 충분히 자주 발생하도록 하는 방법을 제공한다.

중요한 필수 조건 확인하기

여러 가지 제안 중, 많은 제안이 유사한 문제를 공유하는 것으로 밝혀졌습니다. 이러한 문제는 각 제안을 자세히 설명하고 차례대로 비판할 필요 없이 다음과 같은 특징을 갖는 유효한 솔루션을 요구하도록 일반화될 수 있습니다:

●       P2P 참가자 간 상호 작용 과정이 수립되도록 합니다.

●       UTXO '스누핑' 공격(발신자가 반복적으로 미완결 요청을 보냄으로써 수신자의 UTXO를 배우려고 시도함)의 영향을 방지하거나 줄입니다.

●       무응답 공격의 영향을 줄입니다.

‘P2EP(Pay to EndPoint)’ 제안

다양한 아이디어를 반복하여 처리한 결과 'P2EP(Pay to EndPoint)' 제안이 도출되었습니다. 자체 트레이드오프가 없는 것은 아니지만, 이는 <'공통 입력 소유권' 휴리스틱을 무효한 가정으로 만들고 적절한 수준의 공격 저항으로 P2P 상호 작용에 대한 요구 조건을 해결한다>고 설정된 목표를 충족시키는 것으로 보입니다.

P2EP의 기본 전제는 수신자가 BIP 21 호환 URI를 사용하여 제시하는 엔드포인트로 조정된 상호 작용을 통해 발신자와 수신자 모두 거래에 입력을 제공하는 것입니다.

P2EP는 비트코인 프로토콜 변경을 필요로 하지 않고 P2EP가 생성한 거래는 일반 거래와 동일한 '지문'을 가지고 있기 때문에 쉽게 식별할 수 없습니다. 이는 P2EP를 사용한 거래에 수반되는 단계를 검토함으로써 가장 자세히 설명할 수 있을 것입니다.

1단계

수신자(판매자 또는 최종 사용자)는 자신의 P2EP 엔드포인트를 지정하는 추가 매개변수를 사용하여 BIP 21 형식의 URI를 생성합니다. BIP 21은 현재로서는 이해할 수 없는 변수들을 허용하기 때문에 기존의 지갑 구현을 중단시키지는 않을 것입니다. 엔드포인트 주소가 반드시 .onion 주소일 필요는 없고 호환 가능한 엔드포인트의 URI면 됩니다.

URI의 예 (BIP 21의 예제에서 수정) :

bitcoin:175tWpb8K1S7NmH4Zx6rewF9WQrcZv245W?p2ep=3j4tau93wkc8mh32.onion

2단계

발신자는 제공된 엔드포인트가 사용 가능한지 확인함으로써 수신자와 상호 작용을 시작합니다. 사용 불가능한 경우, 거래는 정상적으로 전송되고 수신자의 BIP 21 일반 비트코인 주소로 지불됩니다. 수신자의 엔드포인트가 사용 가능하면 발신자는 UTXO 소유권의 증거로서 수신자에게 서명된 거래를 제공합니다.

3단계

이후 수신자는 다수의 거래를 발신자에게 보내 서명을 받습니다. 수신자가 실제로 소유한 UTXO는 이러한 거래 중 하나에만 포함되고, 나머지는 사용 가능한 UTXO 풀에서 선택될 수 있습니다. 이후 이러한 거래는 발신자에게 직렬 또는 병렬로 전송될 수 있습니다. 두 방법 모두 기밀성, 상호 작용 속도와 관련하여 장단점이 있기 때문에 실제 방법에 대해서는 토론과 구현이 필요합니다.

직렬: 차례로 전송된 각 거래는 수신자의 거래가 될 가능성이 있습니다. 이러한 가능성은 수신자가 선택하고 서명한 거래 건수, 임의로 순서가 정해진 방식에 달려 있습니다. 발신자가 수신자의 UTXO를 사용하는 수신자에게 서명된 거래를 보내면 일련의 교환이 종료됩니다.

병렬: 수신자가 생성한 모든 거래는 발신자에게 한번에 발행됩니다. 그러면 발신자는 일련의 거래를 갖게 되고, 이 중 하나만을 수신자의 거래로 간주할 수 있습니다. 발신자가 올바른 거래를 추측할 확률은 수신자가 선택하고 보낸 거래 건수에 비례합니다. 발신자는 모든 거래에 한 번에 서명하고 반환합니다.

수신자가 두 방법 중 하나를 사용하여 전송한 제안된 거래 건수는 현재 100개이고, 이는 거래의 어느 한 쪽에 기밀성과 데이터 전송/처리 부하 간의 균형을 제공합니다.

위의 UTXO 교환 방법을 대체하기 위해 Bulletproofs를 사용할 수 있는 잠재적 가능성도 있습니다

4단계

위의 두 경우 모두 수신자가 자신의 UTXO에 상응하는 서명된 거래를 확보하면 해당 거래에 서명하고 전송할 수 있는데, 이제 여기에는 발신자와 수신자 모두의 입력이 포함됩니다.

어떤 이유로든 P2EP 프로세스가 실패하는 경우, 해당 거래는 일반 거래로 전송됩니다.

P2EP 거래의 예 검사하기

Alice가 Bob에게 1 BTC을 보내려면:

●       Alice는 거래에 3 BTC를 입력합니다.

●       Bob은 동일한 거래에 5 BTC를 입력합니다.

●       Alice는 (거스름돈으로) 2 BTC를 받습니다.

●       Bob은 6 BTC(거스름돈 + Alice가 보내는 1 BTC)를 받습니다.

위의 거래는 '공통 입력 소유권' 휴리스틱을 깨고 다양한 방식으로 해석될 수 있습니다. 예를 들어, Alice는 Bob에게 6 BTC를 지불하는 것으로, 3 BTC와 5 BTC의 입력을 사용하여 총 8 BTC를 직접 입력하고, 2 BTC를 거스름돈으로 다시 받는 것으로 해석될 수 있습니다.

P2EP의 장단점

장점:

●       '공통 지갑 소유권' 가정을 무력화합니다. 최소한의 적용이라도 누적 효과를 통해 일반적인 'P2EP 이외' 거래의 기밀성이 개선됩니다.

●       부분 집합의 합계 분석을 무력화합니다.

●       수신자의 UTXO를 사용하면 'UTXO 블롯'을 줄이는 데 도움이 될 수 있습니다.

●       수신자는 P2EP를 사용하여 자신의 UTXO 세트를 통합할 수 있습니다.

●       일반 거래와 동일한 모양을 갖기 때문에, 액면가가 고정된 기존의 CoinJoin 거래와 달리 거래 유형에 대한 분명한 '지문'이 없습니다.

●       가벼운 지갑(lightweight wallet)도 발신 지갑 역할을 할 수 있습니다.

●       발신자와 수신자에게 더 큰 기밀성이 제공됩니다.

단점:

●       지불이 P2EP 거래로 처리되려면 수신자와 발신자 모두 온라인 상태여야 합니다.

●       P2EP의 상호 작용적 특성으로 인해 거래 전송이 약간 지연됩니다.

●       수신자는 '핫 월렛(hot wallet)'이 있어야 거래에 서명할 수 있습니다.

●       거래 규모가 커지면 발신자가 내는 수수료가 늘어날 수 있습니다. 발신자와 수신자가 UTXO 통합에 가치를 둔다면, 수수료는 수신자와 협상하여 차감될 수 있습니다.

●       기존 거래에 비해 지갑 처리 시간(wallet processing)이 증가합니다.

●       수신자가 풀 노드에 액세스할 수 있어야 합니다.

P2EP의 다음 단계는?

P2EP는 초기 단계에 있으며 공식적인 제안을 하기 전에 커뮤니티 검토와 개선이 필요합니다.

결제 분할이나 간단한 코인 스왑 같은 다른 형태의 거래를 포함하도록 아이디어가 확대될 수 있습니다.