Klaytn API Service (KAS)

이현정·2020년 11월 14일

개발팀

목록 보기
4/4

Klaytn API Service (KAS)

  • Klaytn API Service (KAS)는 블록체인 플랫폼인 클레이튼(Klaytn)을 API로 사용할 수 있는 서비스
  • 기존 클레이튼을 사용했을 때보다 훨씬 더 쉽게, 편하게, 빠르게 블록체인 애플리케이션을 개발 가능

기존 Klaytn : 트랜잭션을 보내려면 비싼 비용을 지불하고 고성능의 노드를 준비해 운영해야 했고, 여러 계정(Account)을 만들고 이들의 개인키-공개키 쌍을 일일이 관리해야 함

KAS : 노드를 설치, 운영하거나 계정 키를 관리할 필요가 없이 트랜잭션 전송과 관련된 모든 작업을 REST API 혹은 SDK로 실행 가능, 블록체인 계정을 그룹화하여 관리 가능, 메인 체인에 데이터를 앵커링하는 작업을 API로 간단히 수행 가능

  • KAS의 장점
  1. 블록체인 노드를 운영하고 관리하는 비용 절감
  2. 개발 속도와 편의성 증가
  3. 안전한 클레이튼 계정 키 관리
  4. 손 쉬운 데이터 앵커링


KAS 콘솔

KAS API를 사용하고 관리하기 위한 웹 애플리케이션

Klaytn Node API

클레이튼 엔드포인트 노드(Klaytn Endpoint Node, EN)가 제공하는 JSON-RPC API의 대부분을 KAS를 통해 쉽게 사용할 수 있도록 지원

별도의 고성능 노드를 구축하지 않아도 클레이튼 메인넷(Cypress)과 테스트넷(Baobab)에 접속하고 이들을 활용

클레이튼 노드?

클레이튼 블록체인을 이용하려면 블록체인 네트워크의 "일원"이 되어야 함
"나의 서버"를 블록체인 노드, 정확하게는 엔드포인트 노드(EN)라고 함

--> Klaytn Endpoint Node는 블록체인 노드 없이도 블록체인 네트워크에 접속해 블록체인에 데이터를 기록(트랜잭션 전송)하거나 블록체인 정보를 읽어오는 기능을 제공


Token History API

Token History API는 KLAY를 비롯해 KIP-7, KIP-17, ERC-20, ERC-721 컨트랙트로 발행한 토큰들의 정보, 토큰 컨트랙트 정보, 토큰을 전송한 기록을 조회하는 기능을 제공

-> 블록체인 애플리케이션 개발에 드는 시간과 비용을 크게 절감

토큰 ?

블록체인상의 가상화폐 또는 가상자산
거래의 매개 혹은 계약 이행의 증거로 사용


Wallet API

클레이튼 계정 키를 고객사 대신 보관, 관리하며 클레이튼의 다양한 트랜잭션을 API 호출로 클레이튼에 전송하는 기능을 제공

-> 직접 지갑을 구축하거나 계정 개인키를 관리하는 부담이 없으며, 간단한 트랜잭션을 보낼 때에는 트랜잭션에 서명하지 않고 API 호출만으로 트랜잭션을 바로 전송

계정 개인 키를 구조적으로 노출될 수 없는 형태로 보관하며 다중 서명 키를 지원

트랜잭션, 서명, 키, 지갑 ?

블록체인을 사용하는 주된 이유 중 하나는 영원히 변하지 않는 기록을 블록체인에 남기고 그 기록을 활용하는 것입니다. 이 "영원히 변하지 않는 기록"은 소위 트랜잭션(Transaction)이라는 이름으로 불리며, 사용자가 블록체인에 트랜잭션을 보내면 블록체인은 이 트랜잭션을 블록체인의 "블록"에 영원히 기록합니다.

이 때, 블록체인은 이 "기록"을 보낸 사람이 사용자 본인이 맞는지, 중간에 누가 이 기록을 가로채 변조하지 않았는지 등을 검증하여 모든 것이 정상임을 확인한 후에 트랜잭션을 블록에 기록합니다.

이렇게 사용자 본인이 보낸 트랜잭션이 맞는지를 확인하려면 이 트랜잭션을 사용자 본인이 보낸 것이 맞다는 것을 증명하는 서명(Signature)이 필요합니다. 그래서 사용자는 블록체인에 트랜잭션을 보내기 전에 트랜잭션에 자신의 서명을 첨부합니다.

그리고 마치 부동산 계약서에 서명할 때에 도장이 필요한 것처럼, 트랜잭션에 서명할 때에는 사용자의 블록체인 계정 키(AccountKey)가 필요하며 사용자는 이 키로 트랜잭션에 서명합니다.
또, 여러분이 인감 도장을 조심해서 보관하는 것처럼 사용자의 계정 키는 블록체인의 유일한 본인 인증 수단으로서 남에게 노출되지 않도록 별도의 장소에 보관해야 하는데 이것이 바로 "지갑"(Wallet)입니다.

즉, 여러분이 블록체인에 어떤 데이터를 기록하려면, 1) 먼저 블록체인 네트워크에 참여하기 위해 블록체인 노드(서버)를 준비하고, 2) 블록체인 노드에서 블록체인에 접속한 다음 블록체인에 사용자 계정을 만들고, 3) 데이터가 포함된 트랜잭션을 생성한 다음, 4) 여러분의 클레이튼 계정 키로 이 트랜잭션에 서명한 후, 5) 여러분의 계정으로 서명된 트랜잭션을 블록체인에 전송하며, 6) 그 후에 계정 키를 보안이 철저한 디지털 지갑에 보관해야 합니다.


Anchor API

프라이빗 체인(서비스 체인 포함)의 데이터를 클레이튼 메인 체인으로 앵커링하는 작업을 간단한 API 호출로 실행하는 기능을 제공

앵커링 ?

프라이빗 체인의 데이터 무결성을 확인하기 위해 프라이빗 체인의 블록 해시를 메인 체인에 보내는 트랜잭션을 "앵커링 트랜잭션"이라고 함

데이터 앵커링을 통해 프라이빗 체인 사용자들은 프라이빗 체인 데이터가 데이터가 바뀌지 않았음을 확인


KAS Basics

KAS 콘솔과 KAS API

KAS로 블록체인 애플리케이션을 개발하려면 KAS 콘솔과 KAS API를 함께 사용해야 함.

KAS API 호출 :
KAS 콘솔에서 API에서 사용할 클레이튼 계정들을 모아 보관, 관리하는 계정 저장소 만들기, API 인증 키를 생성하기

클레이튼에서 트랜잭션을 보낼 때 트랜잭션 수수료 대납 방식을 사용한다면 KAS 콘솔상에서 클레이튼의 트랜잭션 수수료 대납 계정을 만들고 이 계정 주소(EOA)를 API 호출 시 파라미터로 사용해야 함

서비스 체인 데이터를 메인 체인에 앵커링하는 트랜잭션을 보내야 한다면 KAS 콘솔에서 오퍼레이터 계정을 만들고 이들의 계정 주소(EOA)를 API 호출 시 사용해야 함

KAS 계정과 클레이튼 계정

KAS 계정 : KAS API를 사용하기 위한 계정이며 API 호출에 필요한 사전 설정, API 사용량 모니터링, 결제 등을 담당

클레이튼 계정 : 클레이튼 블록체인 플랫폼에 존재하는 계정(Account)이며 블록체인에 트랜잭션을 보내거나 블록체인에 있는 데이터에 접근하는 주체

0개의 댓글