articles icon indicating copy to clipboard operation
articles copied to clipboard

[정리] if(kakao) 2021 : Klaytn 관련

Open sbyeol3 opened this issue 3 years ago • 1 comments

Klaytn을 이용하여 NFT 활용하기 : 발행부터 판매까지

클레이튼(Klaytn)

  • 그라운드X에서 개발한 블록체인 플랫폼, 이더리움 기반
  • 성능 측면 : 매 블록 당 4000 트랜잭션, 블록생성시간 1초
  • BFT 컨센서스 알고리즘 도입
  • 저렴한 트랜잭션 수수료

토큰 표준이 필요한 이유

클레이튼 계정 체계

  • 클레이튼 상에서 다양한 계정이 생성될 수 있음, 사용자 계정일 수도 있고 스마트 컨트랙트 계정일 수도 있음
  • 토큰 표준이 존재함으로써 쉽게 호출이 가능함. 누구나 쉽게 사용할 수 있는 스마트 컨트랙트...
  • NFT -> KIP-17, KIP-37

NFT 사용자 시나리오

  • 발행 전송 판매 전시
  • 발행-전송 : KIP-17 함수 사용
  • 판매 : 판매자와 구매자가 원하는 가격으로 매매할 수 있는 방법 (추가적인 서비스 레이어 기능 필요)
  • 전시 : NFT 정보의 효율적 검색, 나의 NFT 전시 등

NFT 마켓플레이스 요구사항

  • 추급권 : 최초 양도 이후 재판매될 때마다 수익의 일정부분 분배, 판매 즉시 추급권 적용
  • 판매 방식 : 고정가, 경매
  • 결제 수단 : KIP-7, KLAY
  • 환불 : 구매 후 일주일간 환불기능 제공

추급권

  • 대부분의 NFT 마켓플레이스에서 제공
  • 표준화 되어 있지는 않음 (호환성X)
  • 이더리움 2021.07.25 로열티에 대한 표준화 정립 진행 (클레이튼에서도 해당 표준에 대한 정립 필요)
스크린샷 2022-01-15 오후 9 23 55

다수의 추급권자는 어떻게 할 것인지에 대한 고려 부족

추급권 조회

  • RoyaltyRouter : 모든 추급권을 조회할 수 있는 컨트랙트, 추급권 조회를 위해 이 컨트랙트만 알면 됨

NFT 마켓플레이스 설계/구현

  • 고정값일 때 FixedPriceExchange > 환불 처리를 위한 Escrow 컨트랙트 필요

NFT 발행

  1. minter(== 작가)는 서버에게 토큰에 해당하는 미디어, 메타데이터, RoyaltyInfo를 제공
  2. 서버는 KIP-17 컨트랙트와 로열티인포 컨트랙트에 필요한 함수 호출 -> 새로운 NFT 발행

NFT 판매 등록 (KIP-7)

  1. 판매등록을 하기 전에 해당 토큰의 전송 권한을 exchange contract에 부여 (approve)
  2. 판매 등록 (가격과 주소 전달)

NFT 구매

스크린샷 2022-01-15 오후 9 38 35
  1. 구매자가 KIP-7으로 transfer 함수 호출 (판매 대금 전송)
  2. Received 함수 호출
  3. 로열티 라우터를 통해 추급권 정보를 얻어옴
  4. 이 정보를 바탕으로 정산 정보를 escrow에 전달
  5. exchange 컨트랙트는 판매자로부터 구매자에게 해당 NFT 전송
  6. 판매대금이 아직 escrow에 예치된 상태이고 일정 시간 후에 transfer가 호출되며 정산 진행

sbyeol3 avatar Jan 15 '22 12:01 sbyeol3

한줄로 구현하는 블록체인 어플리케이션

https://if.kakao.com/session/90

  • 이더리움은 가치전송 + 스마트 컨트랙트라고 불리는 코드블록을 블록체인에 올리도록
  • 코드블록들은 블록체인 위에서 정해진 규칙에 따라 상호작용

Klip

  • 디지털 자산 지갑 서비스, 카카오톡에 탑재
  • 클레이는 클레이튼에서 사용되는 화폐
  • Klip은 개발자가 사용하는 퍼블릭 API 제공
  • SDK > JS, AOS, iOS

Klip App2App

App2App : 서드파티 앱에서 유저 스마트폰 클립 호출, 클립을 통해 블록체인 요청을 보내는 것을 의미

  1. Prepare : 클립 서버에 블록체인 요청을 보낼 것을 승인받음 (응답값으로 key를 받음)
  2. Request : 1에서 받은 키를 바탕으로 클립을 띄워 블록체인 트랜잭션 전송
  3. Get Result : 요청 처리 결과를 받음

sbyeol3 avatar Jan 15 '22 12:01 sbyeol3