x/eas — 체인 내부 EAS 브릿지
PCL이 EAS_POLICY를 검사하는 모든 지점(실행 전, 실행 중, 실행 후)에서 EAS attestation을 평가할 수 있도록 돕는 내부 helper입니다. dApp 호출자는 x/eas와 직접 상호작용하지 않으며, EAS 컨트랙트를 직접 읽습니다.
x/eas는 PCL이 EAS_POLICY를 검사하는 모든 지점, 즉 실행 전(RPC 제출 시점과 체인의 실행 전 검사), 실행 중(PCL preCall / postCall 훅과 정책 인식 Privacy 프리컴파일), 실행 후 단계에서 KYC/KYB attestation을 평가할 수 있도록 돕는 체인 내부 helper입니다. 개발자용 surface를 추가하지 않습니다 — attestation을 읽어야 하는 dApp은 다른 EVM 체인과 동일하게 0x...007의 EAS 컨트랙트 preinstall (또는 역방향 조회를 위해 0x...008의 Indexer)을 JSON-RPC로 직접 호출합니다.
주요 기능
체인 내부 attestation 읽기
EAS / Indexer 컨트랙트로 view 호출을 수행해 PCL의 EAS_POLICY 평가자가 실행 전·실행 중·실행 후 어느 단계에서든 체인 안에서 attestation 상태를 해결할 수 있게 합니다.
데이터 중복 없음
자체적인 attestation 상태를 저장하지 않습니다. 모든 읽기가 EAS / Indexer 컨트랙트로 가기 때문에, 체인 레이어는 항상 dApp과 동일한 데이터를 봅니다.
읽기 전용
attestation 생성/폐기는 지원하지 않습니다. 발급은 EAS 컨트랙트의 역할이며 표준 EVM 트랜잭션으로 호출합니다.
아키텍처
graph TD
PCL["PCL<br/>(EAS_POLICY evaluator)"] -->|asks for the most recently indexed UID| IDX["EAS Indexer<br/>0x…008"]
PCL -->|reads that one attestation| EAS["EAS contract<br/>0x…007"]
IDX -->|newest UID| PCL
EAS -->|attestation data| PCL
PCL -->|policy passes / fails| TX["The transaction"]
classDef evm fill:#0096AA,stroke:#0096AA,color:#fff;
classDef precompile fill:#FF8C50,stroke:#FF8C50,color:#fff;
class EAS,IDX,TX evm;
class PCL precompile; PCL은 EAS_POLICY를 평가할 때마다(실행 전, 실행 중, 실행 후) EAS Indexer에서 대상 주소가 정책의 스키마로 받은 attestation 중 가장 최근에 인덱싱된 것 하나를 찾고, EAS 컨트랙트에서 그 attestation을 읽습니다. 없거나 폐기되었거나 만료되었으면 그 정책은 실패합니다. 더 오래된 유효한 attestation은 인정되지 않습니다. 정책이 실패했을 때 트랜잭션이 거부되는지는 정책 구성에 따라 다릅니다(OR로 묶인 정책은 다른 조건으로 통과할 수 있습니다). dApp은 같은 컨트랙트를 직접 호출합니다.
dApp이 마루의 EAS와 상호작용하는 방법
- 쓰기 (발급, 폐기):
0x...007의 EAS 컨트랙트로 EVM 트랜잭션을 전송합니다. - 읽기 (단일 attestation):
0x...007의EAS.getAttestation(uid)를eth_call로 호출합니다. - 역방향 조회 ("지갑 X가 가진 attestation은?"):
0x...008의 Indexer(getReceivedAttestationUIDCount,getReceivedAttestationUIDs)를 사용합니다.
x/eas는 PCL용 내부 helper이므로 dApp 구축 시에는 신경 쓰지 않아도 됩니다. 정식 클라이언트 패턴은 querying-eas-data 페이지에서 확인할 수 있습니다.