testnet
GitHub EN

Maroo에서 EAS로 신원 검증하기

intermediate integration 30 min

Hardhat을 사용하여 증명을 생성하고 Maroo CLI를 사용하여 이를 검증하는 전체 과정입니다.

학습 목표

  • Maroo에 EAS 스키마를 배포하는 방법
  • 온체인 증명을 생성하는 방법
  • `marood`를 사용하여 증명을 조회하는 방법

사전 요구사항

  • OKRW가 있는 Maroo 테스트넷 계정
  • 기본적인 Solidity/Ethers.js 지식

필요 도구

HardhatmaroodNode.js
이 튜토리얼에서는 KYC 제공자가 사용자에게 'IsVerified' 증명을 발급하는 상황을 시뮬레이션합니다. 그런 다음 Maroo CLI를 사용하여 이 증명을 읽어, dApp이나 백엔드 서비스가 사용자의 상태를 검증하는 방법을 시뮬레이션합니다.
1

1. 스키마 정의

먼저 스키마를 등록해야 합니다. 이 튜토리얼의 스키마는 간단한 bool isVerified입니다. 스크립트를 사용하여 글로벌 EAS 스키마 레지스트리에 이를 등록합니다.
scripts/register.js javascript
const { SchemaRegistry } = require("@ethereum-attestation-service/eas-sdk");
// ... 프로바이더/사이너 설정 ...

const schemaRegistry = new SchemaRegistry(SCHEMA_REGISTRY_ADDRESS);
const schema = "bool isVerified";
const resolverAddress = "0x0000000000000000000000000000000000000000"; // 리졸버 없음
const revocable = true;

const tx = await schemaRegistry.register({ schema, resolverAddress, revocable });
const uid = await tx.wait();
console.log("Schema UID:", uid);
2

2. 증명 생성

이제 발급자 역할을 수행합니다. 특정 수신자 주소가 검증되었음을 증명합니다.
scripts/attest.js javascript
const { EAS, SchemaEncoder } = require("@ethereum-attestation-service/eas-sdk");

const eas = new EAS(EAS_CONTRACT_ADDRESS);
eas.connect(signer);

const schemaEncoder = new SchemaEncoder("bool isVerified");
const encodedData = schemaEncoder.encodeData([{ name: "isVerified", value: true, type: "bool" }]);

const tx = await eas.attest({
  schema: SCHEMA_UID,
  data: {
    recipient: "0xRecipientAddress...",
    expirationTime: 0,
    revocable: true,
    data: encodedData,
  },
});

const newAttestationUID = await tx.wait();
console.log("Attestation UID:", newAttestationUID);
3

3. CLI를 통한 검증

마지막으로 Maroo CLI를 사용하여 증명이 존재하고 유효한지 확인합니다. 이는 데이터가 Cosmos 레이어에서 접근 가능함을 확인시켜 줍니다.
terminal bash
marood query eas get-attestation \
  0xEASContractAddress... \
  0xYourAttestationUID...
팁: 출력에서 'revocation_time' 필드를 확인하세요. 0이면 증명이 여전히 유효한 것입니다.

마무리

EVM 도구와 Cosmos 인프라 간의 간극을 성공적으로 메웠습니다. 표준 이더리움 도구를 사용하여 증명을 생성하고 Maroo의 네이티브 CLI를 사용하여 이를 검증했습니다.
소스: maroo
ESC
검색어를 입력하세요