NFT 및 IPFS
APoT는 NFT(Non-Fungible Token) 민팅과 IPFS(InterPlanetary File System) 저장소를 통해 디지털 콘텐츠의 소유권을 증명하는 기능을 제공합니다. 이 페이지에서는 이러한 기능을 활용하는 방법에 대해 설명합니다.
NFT 및 IPFS 프로세스
APoT에서 NFT 민팅과 IPFS 저장소를 활용하는 프로세스는 다음과 같습니다:
- 워터마킹 API를 호출할 때
mintNft및storeIpfs옵션을 설정합니다. - 워터마킹 작업이 완료되면 NFT 정보 및 IPFS 링크가 응답에 포함됩니다.
- NFT 및 IPFS API를 사용하여 세부 정보를 조회하거나 관리할 수 있습니다.
NFT 모델
NFT 관련 응답은 다음과 같은 속성을 포함합니다:
- Name
tokenId- Type
- string
- Description
NFT의 고유 식별자입니다.
- Name
contract- Type
- string
- Description
NFT 컨트랙트 주소입니다.
- Name
blockchain- Type
- string
- Description
NFT가 민팅된 블록체인 네트워크입니다.
- Name
owner- Type
- string
- Description
NFT 소유자의 지갑 주소입니다.
- Name
metadata- Type
- object
- Description
NFT 메타데이터입니다.
- Name
marketplaceUrl- Type
- string
- Description
NFT를 볼 수 있는 마켓플레이스 URL입니다.
- Name
mintedAt- Type
- integer
- Description
NFT가 민팅된 시간(유닉스 타임스탬프)입니다.
IPFS 모델
IPFS 관련 응답은 다음과 같은 속성을 포함합니다:
- Name
ipfsHash- Type
- string
- Description
IPFS에 저장된 콘텐츠의 해시입니다.
- Name
ipfsUrl- Type
- string
- Description
IPFS 게이트웨이를 통해 콘텐츠에 접근할 수 있는 URL입니다.
- Name
metadata- Type
- object
- Description
IPFS에 저장된 메타데이터입니다.
- Name
storedAt- Type
- integer
- Description
IPFS에 저장된 시간(유닉스 타임스탬프)입니다.
NFT 정보 조회하기
이 엔드포인트는 특정 토큰 ID에 대한 NFT 정보를 조회합니다.
경로 매개변수
- Name
tokenId- Type
- string
- Description
조회할 NFT의 토큰 ID입니다.
요청
curl -G https://api.apot.io/nft/12345 \
-H "Authorization: Bearer {token}"
응답
{
"tokenId": "12345",
"contract": "0x1234567890abcdef1234567890abcdef12345678",
"blockchain": "ethereum",
"owner": "0xabcdef1234567890abcdef1234567890abcdef12",
"metadata": {
"name": "예시 이미지",
"description": "APoT로 워터마킹된 예시 이미지입니다.",
"image": "ipfs://bafybeiemxf5abjwjbikoz4mc3a3dla6ual3jsgpdr4cjr3oz3evfyavhwq/image.jpg",
"attributes": [
{
"trait_type": "Author",
"value": "홍길동"
},
{
"trait_type": "Creation Date",
"value": "2023-03-15"
}
]
},
"marketplaceUrl": "https://opensea.io/assets/ethereum/0x1234567890abcdef1234567890abcdef12345678/12345",
"mintedAt": 1679468067
}
IPFS 정보 조회하기
이 엔드포인트는 특정 IPFS 해시에 대한 정보를 조회합니다.
경로 매개변수
- Name
ipfsHash- Type
- string
- Description
조회할 IPFS 해시입니다.
요청
curl -G https://api.apot.io/ipfs/bafybeiemxf5abjwjbikoz4mc3a3dla6ual3jsgpdr4cjr3oz3evfyavhwq \
-H "Authorization: Bearer {token}"
응답
{
"ipfsHash": "bafybeiemxf5abjwjbikoz4mc3a3dla6ual3jsgpdr4cjr3oz3evfyavhwq",
"ipfsUrl": "https://gateway.ipfs.io/ipfs/bafybeiemxf5abjwjbikoz4mc3a3dla6ual3jsgpdr4cjr3oz3evfyavhwq",
"metadata": {
"author": "홍길동",
"creationDate": "2023-03-15",
"description": "예시 이미지입니다.",
"watermarked": true,
"watermarkTypes": ["saforus", "c2pa"],
"fileId": "2ca0b132-cf83-4158-9353-121ff62a351e"
},
"storedAt": 1679468067
}
NFT 민팅 방식
APoT에서는 두 가지 주요 민팅 방식을 제공합니다:
- 파일 메타데이터 => NFT => IPFS
이 방식에서는 파일 메타데이터를 NFT로 민팅한 후 IPFS에 저장합니다.
장점:
- NFT 마켓플레이스에서 거래 가능
- OpenSea 등에서 소유권 증명 가능
- 블록체인을 통한 강력한 소유권 보장
고려사항:
- 민팅에 시간과 비용(가스비)이 소요됨
- 블록체인 네트워크 상황에 따라 처리 시간이 달라질 수 있음
- 파일 메타데이터 => IPFS
이 방식에서는 파일 메타데이터를 직접 IPFS에 저장합니다.
장점:
- 빠른 처리 속도
- 추가 비용이 발생하지 않음
- 고유한 IPFS 해시를 통한 콘텐츠 식별
고려사항:
- NFT 마켓플레이스에서 거래 불가능
- 소유권 증명이 상대적으로 약함
파일 메타데이터 워터마킹 방식
APoT는 다음과 같은 워터마킹 방식을 지원합니다:
-
C2PA (EXIF): 국제 표준을 준수하는 메타데이터 포맷을 사용하여 파일에 출처 정보를 삽입합니다.
-
Saforus 워터마크: 독자적인 알고리즘을 사용하여 이미지에 보이지 않는 워터마크를 삽입합니다.
두 가지 방식을 함께 사용하면 더 강력한 소유권 증명이 가능합니다. 각 방식은 서로 다른 강점이 있으며, 검증 과정에서 두 워터마크의 정보가 일치하지 않을 경우 변조 가능성을 감지할 수 있습니다.
