증명(Attestation) 구조
마루에서 EAS 증명이 어떻게 구성되는지 데이터 레이아웃을 설명합니다.
마루의 증명(Attestation)은 Solidity에 정의된 표준 EAS 구조를 따릅니다. 발급자, 수신자, 만료일, 실제 인코딩된 데이터 페이로드 등의 메타데이터를 담습니다. x/eas 모듈은 이 구조를 EVM ABI에서 사용 가능한 JSON/Protobuf 형식으로 디코딩합니다.
핵심 필드
- UID: 고유한 32바이트 식별자 해시입니다.
- Schema: 데이터 형식을 정의하는 스키마의 UID입니다.
- Recipient: 증명을 받는 주소입니다.
- Attester: 증명을 발급하는 주소입니다.
- Time: 생성 시각의 Unix 타임스탬프입니다.
- ExpirationTime: 만료 시각의 Unix 타임스탬프이며, 만료가 없으면
0입니다. - RevocationTime: 폐기되지 않았으면
0, 폐기되었으면 폐기 시각의 Unix 타임스탬프입니다. - Data: 스키마와 일치하는 ABI 인코딩 페이로드입니다.
취소 가능성(Revocability)
증명에는
Revocable 불리언 플래그가 포함됩니다. 참(true)인 경우, 발급자는 나중에 증명을 취소하여 RevocationTime을 설정할 수 있습니다. 이는 추후 철회가 필요한 신원 자격 증명(예: 만료된 여권)에 중요합니다.데이터 인코딩
Data 필드는 16진수 문자열로 반환됩니다. 표준 ABI 디코딩 라이브러리(ethers.js, viem, go-ethereum)로 페이로드를 올바르게 디코딩하려면 스키마 문자열(예: uint256 score, bool isVerified)을 알아야 합니다.