동형 결제 주소와 계약 기반 결제 프로토콜
초록
본 논문은 고객이 직접 결제 주소를 생성하고, 거래 자체가 영수증 역할을 하도록 설계된 비트코인 기반 전자 결제 프로토콜을 제안한다. 상점이 서명된 결제 명세서를 제공할 필요가 없으며, 상점 서버가 침해돼도 결제 안전성이 유지된다. 핵심은 ElGamal 계열 암호의 동형성을 이용해 “pay‑to‑contract” 주소를 결정적으로 파생하는 것이다.
상세 분석
이 프로토콜은 전통적인 고객‑상점 결제 흐름을 근본적으로 뒤집는다. 기존 방식에서는 상점이 사전에 생성한 주소와 서명된 청구서를 고객에게 전달하고, 고객은 이를 검증한 뒤 결제한다. 그러나 이 과정은 상점 서버가 해킹당하거나 통신이 위조될 경우 위험에 노출된다. 논문은 이러한 문제를 해결하기 위해 “고객이 주소를 직접 생성”한다는 아이디어를 도입한다. 핵심은 암호학적 동형성이다. ElGamal‑계열(예: ECC, DH) 키쌍은 공개키와 비밀키가 곱셈(또는 덧셈) 연산에 대해 닫혀 있어, 기존 공개키에 계약 데이터(해시값)를 곱함으로써 새로운 파생키를 만들 수 있다. 구체적으로, 상점의 고정 공개키 P와 계약 해시 h를 이용해 파생 주소 P’ = P · h (또는 P + h) 를 계산한다. 이 주소는 오직 해당 계약과 상점에만 유일하게 매핑되며, 상점은 사전에 이 파생키에 대한 비밀키를 알 필요가 없다. 고객은 계약 내용을 직접 해시하고, 파생 주소를 만든 뒤 비트코인 트랜잭션을 전송한다. 트랜잭션 자체가 블록체인에 영구히 기록되므로, 결제 시점과 수취인(파생 주소 소유자)이 명확히 증명된다. 따라서 별도의 영수증 발행이나 서명 검증 절차가 불필요해진다. 또한, 주소 파생 과정이 결정적이므로 “인덱스‑기반 지갑”을 설계할 수 있다. 고객은 문자열(예: “order‑1234”)을 입력하면 해당 문자열의 해시와 상점 공개키를 조합해 주소를 자동 생성한다. 이는 다중 주문을 관리하거나 자동 결제 시스템을 구현할 때 큰 장점을 제공한다. 보안 측면에서 중요한 점은 파생 주소가 원본 공개키와 독립적인 비밀키를 요구하지 않으므로, 상점 서버가 손상돼도 기존 주소와 파생 주소가 서로 연결되지 않는다. 공격자는 파생 주소만 알 수 있을 뿐, 해당 주소의 비밀키를 역산하기 위해서는 이산대수 문제를 풀어야 하므로 실질적인 위험이 없다. 또한, 거래가 원자적으로 이루어지므로 “지불‑대‑영수증”이 한 번에 처리된다. 이와 같은 설계는 블록체인 투명성을 유지하면서도 프라이버시와 무결성을 동시에 강화한다.