유효한 서명이 아직 신뢰할 수 있는 영수증은 아니다
요약
본 글은 암호학적 서명 검증과 신뢰 구성(Trust Configuration)의 차이점을 설명합니다. 로컬 검증기는 서명의 유효성만 확인하며, 키가 예상 발행자에게 속한다는 '신원'에 대한 신뢰는 별도의 독립적인 출처에서 확립되어야 합니다.
핵심 포인트
- 서명은 개인 키 통제권만 증명할 뿐, 발행자의 신원을 보장하지 못한다.
- 로컬 검증기는 서명의 관계를 확인하지만, 신뢰 구성은 외부의 검토된 출처가 필요하다.
- 검증 과정에서는 서명 유효성 외에 키 레지스트리 및 예상 대상(audience) 등 다중 클레임을 확인해야 한다.
- 오프라인 검증만으로는 모든 체인 의존적 주장이 독립적으로 재확립되었다고 볼 수 없다.
로컬 검증기는 실행 영수증에 대해 valid: true를 반환합니다.
이는 암호학적 질문에 답합니다. 즉, 영수증의 서명이 검증기에게 제공된 공개 키와 일치하는지, 그리고 서명된 필드들이 지원되는 검사를 통과하는지를 말입니다.
하지만 별개의 신원(identity) 질문에는 답하지 못합니다. 검토자는 이 키가 예상되는 발행자에게 속한다는 것을 왜 신뢰해야 하는가?
서명은 개인 키에 대한 통제권을 증명할 뿐입니다. 검토자는 여전히 그 키와 자신이 신뢰하고자 의도한 발행자 사이에 독립적으로 확립된 연결 고리가 필요합니다.
이것이 바로 다운로드된 번들에 포함된 키 레지스트리(key registry)가 발견 데이터(discovery data)로 취급되어야 하는 이유입니다. 만약 검증기가 영수증에 포함된 키를 자체 신뢰 소스로 받아들인다면, 누군가는 새로운 키를 생성하고 위조된 영수증에 서명하여 해당 검증기의 서명 확인을 통과시킬 수 있습니다.
신뢰 구성(trust configuration)은 별도의 검토된 출처에서 와야 합니다. 이는 예상되는 발행자와 키, 배포 대상(deployment audience), 그리고 키의 유효성 또는 폐지 상태를 식별해야 합니다.
priorseal-sdk를 사용한 로컬 검증 호출의 형태는 다음과 같습니다:
import { verifyReceiptLocally } from 'priorseal-sdk/verifier';
const result = await verifyReceiptLocally(receipt, {
...
애플리케이션은 영수증, 독립적으로 확인된 키 레지스트리, 그리고 예상되는 대상을 제공합니다. 검증기는 네트워크 요청을 수행하지 않습니다. 지원하는 범위 내에서 서명과 영수증 간의 관계를 확인합니다.
결과는 여러 클레임을 구분하여 유지합니다:
valid: 제공된 신뢰 구성으로 검증이 통과했는지 여부를 보고합니다.outcome: 영수증에 기록된 실행 결과를 보고합니다.complianceStatus: 평가 가능한 경우, 상호 연관된 실행이 승인되었는지 여부를 보고합니다.requiredExternalChecks: 오프라인 검증기가 완료할 수 없는 검사(예: ERC-1271 상태 또는 EVM 앵커 포함) 목록을 나열합니다.
외부 확인이 필요한 로컬 결과는 해당 확인 작업이 처리될 때까지 명백히 불완전한 상태로 남아 있어야 합니다. 오프라인 검증(Offline verification)이 모든 체인 의존적 주장(chain-dependent claim)이 독립적으로 재확립되었음을 의미하지는 않습니다.
이 원칙은 Insight와 PriorSeal을 연결할 때도 동일하게 적용됩니다. Insight의 오라클 평가(oracle assessment)와 PriorSeal의 승인 및 실행 영수증(authorization and execution receipt)은 별개의 신뢰 루트(trust root)를 유지합니다. 커밋먼트(commitment)는 특정 다이제스트(digest)가 승인에 포함되었음을 보여줄 수 있지만, 그것이 PriorSeal이 Insight 평가의 발행자임을 의미하지는 않습니다.
녹색 '검증됨(Verified)' 배지를 표시하기 전에, 검증자가 실제로 무엇을 확립했는지 질문해야 합니다:
- 서명이 일치했습니까?
- 서명 키가 독립적으로 신뢰되었습니까?
- 영수증이 예상된 대상(audience)을 목표로 했습니까?
- 검증자가 필요한 모든 확인 작업을 완료했습니까?
서명은 강력한 증거입니다. 그 의미는 주변의 신뢰 구성(trust configuration)에 따라 달라집니다.
참고 자료 (References)
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기