지캐시(Zcash·ZEC)의 실드 거래는 거래 금액과 송수신자 정보를 공개하지 않으면서도 이중지불과 허위 자산 발행을 막도록 설계됐다. 거래에 필요한 정보만 공개하고 나머지는 암호화하는 방식이다.
지캐시의 실드 거래에는 널리파이어(nullifier), 영지식증명, 가치 커밋먼트(value commitment), 바인딩 서명(binding signature)이 사용된다. 각각 사용 여부, 사용 권한, 거래 전후의 가치 균형을 확인하는 역할을 맡는다.
지캐시에서 자산은 ‘노트(note)’라는 단위로 관리된다. 실드 거래에서는 노트의 금액과 수신자 같은 내용이 공개되지 않고, 대신 노트의 내용을 직접 공개하지 않고 그 값과 유효성을 암호학적으로 고정한 노트 커밋먼트가 블록체인에 기록된다.
노트 커밋먼트는 봉인된 상자와 비슷하다. 상자 안의 내용은 보이지 않지만 한 번 정해진 값이 다른 내용으로 바뀌었는지는 확인할 수 있어, 거래 대상이 처음 약속된 자산인지 검증할 수 있다.
첫 번째 관문은 널리파이어다. 사용자가 노트를 쓸 때 노트 자체가 아니라 해당 노트에서 파생된 고유값을 공개하며, 같은 노트를 다시 사용하면 같은 널리파이어가 나타난다.
네트워크는 이미 등록된 널리파이어가 다시 제출됐는지 확인한다. 동일한 값이 다시 나오면 해당 거래를 거부해, 어떤 노트가 사용됐는지와 소유자가 누구인지는 공개하지 않고 이중지불만 차단한다.
두 번째 관문은 영지식증명이다. 사용자는 자신이 실제 노트를 보유하고 있고 해당 자산을 사용할 권한이 있으며 거래 규칙을 지켰다는 사실을 증명한다.
이 과정에서 노트의 정확한 금액이나 식별 정보는 공개되지 않는다. 네트워크는 자산의 세부 내용을 확인하지 않고도 거래가 정당한지 검증할 수 있다.
세 번째 관문은 금액 검증이다. 거래 금액이 숨겨져 있으면 보유한 자산보다 많은 자산을 만들어내는 시도가 생길 수 있기 때문에 거래 전후의 가치 관계를 별도로 확인해야 한다.
가치 커밋먼트는 실제 금액을 공개하지 않은 채 해당 금액을 암호학적으로 고정한다. 예를 들어 10 ZEC를 가진 사용자가 20 ZEC를 만들어 보내려 하면 거래 전후의 계산이 맞지 않아 검증을 통과할 수 없다.
가치 커밋먼트와 영지식증명은 거래 전후의 가치 균형을 검증하고, 바인딩 서명은 이 균형이 해당 거래 내용에 묶이도록 한다. 검증 조건이 맞지 않으면 거래가 유효한 서명을 만들 수 없어 거부된다.
결국 지캐시의 실드 거래는 세 가지 질문에 답해야 한다. 이미 사용한 자산인지, 실제로 사용할 권한이 있는지, 거래 과정에서 금액이 부풀려지지 않았는지다.
비트코인(BTC)이 공개 장부에서 자산의 이동과 사용 여부를 확인한다면, 지캐시는 거래 세부 내용 대신 검증에 필요한 암호학적 정보만 공개한다. 프라이버시를 확보하면서도 거래 유효성 검사를 유지하는 구조다.
이 구조는 지캐시의 프라이버시 기능이 단순히 거래 정보를 숨기는 데 그치지 않는다는 점을 보여준다. 보호 거래의 신뢰성은 사용된 노트의 중복 여부, 사용 권한, 거래 가치의 보존을 각각 확인하는 절차에 기반한다.
지캐시는 실드 거래 검증 시스템의 취약점 가능성과 대응 방안을 후속 기술 분석에서 다룰 예정이다. 앞서 지캐시의 오처드 취약점 보완과 새 거래 구조도 보안과 프라이버시 검증을 함께 살펴봐야 하는 배경으로 이어진다.

