Introduction

이 페이지는 Klaytn API Service (KAS)를 소개합니다.

Klaytn API Service (KAS)

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

일반적으로 블록체인 애플리케이션은 블록체인 플랫폼에 트랜잭션을 보내려는 목적으로 사용합니다. 지금까지는, 엔터프라이즈 환경에서 클레이튼 혹은 이더리움에 트랜잭션을 보내려면 비싼 비용을 지불하고 고성능의 노드를 준비해 운영해야 했고, 여러 계정(Account)을 만들고 이들의 개인키-공개키 쌍을 일일이 관리해야 했습니다.

하지만, KAS를 사용하면 여러분은 노드를 설치, 운영하거나 계정 키를 관리할 필요가 없이 트랜잭션 전송과 관련된 모든 작업을 REST API 혹은 SDK로 실행할 수 있습니다. 또 블록체인 계정을 그룹화하여 용도별로 묶어 관리할 수 있으며 서비스 체인을 운영할 경우 메인 체인에 데이터를 앵커링하는 작업도 API로 간단히 수행할 수 있습니다.

뿐만 아니라, 여러분의 토큰 컨트랙트(KIP-7, KIP-17, ERC-20, ERC-721)로 발행한 모든 토큰 정보와 이 토큰들을 다른 계정에게 전송한 트랜잭션 이력도 조회하는 기능도 제공합니다. 여러분이 KAS 사용으로 얻는 장점을 정리하면 아래와 같습니다.

1. 블록체인 노드를 운영하고 관리하는 비용 절감

2. 개발 속도와 편의성 증가

  • API 호출로 클레이튼에서 지원하는 모든 타입의 트랜잭션 전송 가능

  • KLAY, KIP-7, KIP-17, ERC-20, ERC-721 토큰 거래내역 조회

  • 토큰 컨트랙트 정보와 토큰 전송 기록을 열람하는 다양한 방법 제공

3. 안전한 클레이튼 계정 키 관리

  • 클레이튼 계정의 개인 키 유출이 불가능한 구조를 사용

  • 독자적인 클레이튼 지갑을 쉽게 개발 가능

  • 다중 서명 키 지원

4. 손 쉬운 데이터 앵커링

  • 간단한 설정 및 API 호출만으로 여러분의 서비스 체인 데이터를 클레이튼 메인 체인인 Cypress에 앵커링

  • 데이터 앵커링으로 서비스 체인 데이터의 신뢰도 향상

  • 다른 블록체인에도 적용 가능

KAS 콘솔

KAS 콘솔은 KAS API를 사용하고 관리하기 위한 웹 애플리케이션입니다. KAS 콘솔에서는 아래에서 소개할 KAS API를 호출할 때 필요한 API 인증 키를 생성하고 API 호출 권한을 설정하며 API에서 사용할 클레이튼 계정을 보관, 관리하는 등 다양한 작업을 할 수 있습니다.

이 문서 혹은 KAS에 관한 문의는 개발자 포럼을 방문해 도움을 받으십시오.

Klaytn Node API

개요

Klaytn Node API는 클레이튼 엔드포인트 노드(Klaytn Endpoint Node, EN)가 제공하는 JSON-RPC API의 대부분을 KAS를 통해 쉽게 사용할 수 있도록 지원합니다. 따라서, 여러분은 별도의 고성능 노드를 구축하지 않아도 클레이튼 메인넷(Cypress)과 테스트넷(Baobab)에 접속하고 이들을 활용할 수 있습니다. 기존에 JSON-RPC 호출을 위해 작성한 코드가 있다면, KAS 사용 시 API 호출 헤더에 인증 정보만 추가해 주면 코드 변경 없이 거의 그대로 사용이 가능합니다.

클레이튼 노드

클레이튼 블록체인을 이용하려면 블록체인 네트워크의 "일원"이 되어야합니다. 블록체인 네트워크에 참여한다는 것은 블록체인 데이터를 실시간으로 계속해서 동기화해야 함을 의미합니다. 다시 말해, 블록체인 네트워크에 참여하면 블록체인 전체 데이터를 여러분의 서버에 복사해 가져오며 블록체인에 새 블록이 연결될 때마다 여러분의 서버에 복사한 블록체인 데이터도 새롭게 업데이트합니다. 이 때, 이 "여러분의 서버"를 블록체인 노드, 정확하게는 엔드포인트 노드(EN)라고 합니다. 엔드포인트 노드는 클레이튼 블록체인에 데이터를 전송(트랜잭션 전송)하거나 블록체인 데이터를 읽어오기 위해 필요하며 블록체인 네트워크와의 빠른 데이터 동기화를 위해 고성능 하드웨어 스펙을 갖춰야 합니다.

왜 Klaytn Node API를 사용해야 하나요?

Klaytn Node API는 여러분이 블록체인 노드 없이도 블록체인 네트워크에 접속해 블록체인에 데이터를 기록(트랜잭션 전송)하거나 블록체인 정보를 읽어오는 기능을 제공합니다. 본래, 이러한 기능은 여러분의 고성능 서버를 블록체인 노드로 운영하면서 블록체인 데이터를 계속 동기화하며 블록체인 네트워크의 "일원"이 되어야만 이용할 수 있었습니다. 하지만, Klaytn Node API를 사용하면 고성능 서버로 블록체인 노드를 운영하지 않아도 API 호출만으로 블록체인과 상호작용할 수 있어 서버 설치, 설정, 유지에 드는 자원을 절약할 수 있습니다.

Klaytn Node API에 관한 더 자세한 내용은 다음을 확인하십시오. 이 문서 혹은 KAS에 관한 문의는 개발자 포럼을 방문해 도움을 받으십시오.

Token History API

개요

Token History API는 KLAY를 비롯해 KIP-7, KIP-17, ERC-20, ERC-721 컨트랙트로 발행한 토큰들의 정보, 토큰 컨트랙트 정보, 토큰을 전송한 기록을 조회하는 기능을 제공합니다. 지금까지는, 클레이튼 계정이 보유한 KLAY/토큰 정보가 어떻게 변화하고 있는지 파악하려면 많은 시간과 비용을 들여 별도의 모니터링 시스템과 DB를 구축해야 했습니다. 특히, 이를 직접 구현하려면 토큰 전송이 일어나는 모든 트랜잭션을 모니터링해야 하는 부담도 있었습니다.

하지만, Token History API는 API 호출만으로 특정 클레이튼 계정이 KLAY/토큰을 다른 계정으로부터 언제 얼마나 받았고 또 얼마나 주었는지를 한 번에 파악할 수 있어 블록체인 애플리케이션 개발에 드는 시간과 비용을 크게 절감할 수 있습니다.

토큰

토큰이란 일반적으로 블록체인상의 가상화폐 또는 가상자산을 의미하며 스마트 컨트랙트로 관리(토큰 발행, 전송, 삭제)되는 블록체인 애플리케이션에 자주 쓰이는 요소입니다. 이미 여러 애플리케이션에서 토큰은 거래의 매개 혹은 계약 이행의 증거로 사용됩니다.

토큰으로 구현된 포인트, 마일리지, 인증서, 상품권 및 교환권 등은 블록체인의 투명성과 불가역성을 바탕으로 위변조되지 않았음이 보장됩니다. 토큰은 기존의 어느 특정 주체가 기록하고 제어하는 중앙형 시스템으로 구현된 것들과 근본적으로 다르며 발행, 사용, 교환/유통 측면에서 기존 비즈니스의 한계를 극복하고 새로운 사업 기회를 가져다줍니다.

하지만 토큰을 효과적으로 사용하는 것은 생각보다 어려운 일입니다. 토큰이 애플리케이션에 가치를 부여하려면 토큰이 언제 누구에게 전달되었는지 추적할 수 있어야 하기 때문입니다. 모든 기록은 블록체인에 안전하게 보관되어 있지만, 그 기록을 꺼내어 내가 원하는 형태로 볼 수 있다는 것은 또 다른 이야기입니다. 이를 위해 Token History API는 블록체인 데이터를 가공하여 계정을 기준으로, 혹은 토큰을 기준으로 거래내역을 확인할 수 있는 API를 제공합니다.

왜 Token History API를 사용해야 하나요?

Token History API는 토큰 전송 기록을 추적하는 도구입니다. Token History API는 KLAY, FT(KIP-7, ERC-20), NFT(KIP-17, ERC-721) 토큰의 정보와 기록을 조회하는 기능을 제공합니다. KIP-7, KIP-17 토큰은 KAS에서 자동으로 전송 기록을 추적하며 ERC-20, ERC-721 토큰은 라벨링이라는 과정을 거치면 KAS에서 토큰 전송 기록을 추적합니다. 여러분은 토큰 전송 기록을 조회하여 특정 계정의 KLAY 전송 기록을 확인하거나 계정이 소유하고 있는 NFT 정보를 조회할 수 있습니다.

FT와 NFT는 각각 KIP-7, KIP-17를 따르는 컨트랙트로 구현되며, 컨트랙트는 Token History API를 사용하기 전에 클레이튼에 배포해야 합니다.

Token History API를 사용하면 블록체인 애플리케이션 개발에 투입되는 시간과 비용을 크게 절감할 수 있습니다. 지금 이 순간에도 많은 블록체인 애플리케이션이 토큰 전송 내역을 기록하고 관리하는 데 소중한 자원을 쏟아붓고 있습니다. Token History API는 모든 토큰 전송 트랜잭션을 계정 기준으로 데이터베이스에 저장하며, 여러분이 토큰 전송 기록을 요청할 때마다 데이터베이스 기록을 반환합니다. "Preset"이라는 조회 필터를 사용하면 전체 트랜잭션 기록에서 여러분이 필요한 정보만을 골라 사용할 수 있으며, 트랜잭션 전송 기록을 사용하면 다른 애플리케이션 요청도 처리할 수 있습니다.

따라서, 여러분은 간단한 API 호출만으로 KLAY/FT 전송내역을 조회하고 NFT 소유권을 조회할 수 있으며 이러한 기능들을 바탕으로 여러분은 더 유용한 블록체인 기반 서비스를 제공할 수 있습니다.

Token History API에 관한 더 자세한 내용은 다음을 확인하십시오. 이 문서 혹은 KAS에 관한 문의는 개발자 포럼을 방문해 도움을 받으십시오.

Wallet API

개요

Wallet API는 클레이튼 계정 키를 고객사 대신 보관, 관리하며 클레이튼의 다양한 트랜잭션을 API 호출로 클레이튼에 전송하는 기능을 제공합니다. Wallet API를 사용하면 여러분은 블록체인 애플리케이션을 개발할 때 직접 지갑을 구축하거나 계정 개인키를 관리하는 부담이 없으며, 간단한 트랜잭션을 보낼 때에는 트랜잭션에 서명하지 않고 API 호출만으로 트랜잭션을 바로 전송할 수 있습니다.

Wallet API는 계정 개인 키를 구조적으로 노출될 수 없는 형태로 보관하며 다중 서명 키를 지원합니다. 또 트랜잭션 수수료 대납이 API 호출로 이뤄지며 대납 계정을 KAS 콘솔에서 생성, 관리하여 개발 시간이 단축됩니다. 또 필요한 경우, KAS에서 트랜잭션 수수료를 먼저 납부해주고 추후 이 수수료를 여러분 계정에 청구하는 방식(GlobalFeePayer)을 사용할 수도 있습니다.

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

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

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

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

그리고 마치 부동산 계약서에 서명할 때에 도장이 필요한 것처럼, 트랜잭션에 서명할 때에는 사용자의 블록체인 계정 키(AccountKey)가 필요하며 사용자는 이 키로 트랜잭션에 서명합니다.

또, 여러분이 인감 도장을 조심해서 보관하는 것처럼 사용자의 계정 키는 블록체인의 유일한 본인 인증 수단으로서 남에게 노출되지 않도록 별도의 장소에 보관해야 하는데 이것이 바로 "지갑"(Wallet)입니다.

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

왜 Wallet API를 사용해야 하나요?

Wallet API는 위에서 언급한 모든 기능을 API로 제공합니다. 여러분은 고성능 하드웨어 리소스와 복잡한 소프트웨어 구현을 포함하는 위 6가지 단계를 거치는 대신, 그저 KAS에 가입한 다음 KAS로 Wallet API를 호출하면 됩니다.

Wallet API는 여러분이 블록체인 노드를 직접 운영하지 않아도(내부적으로 Klaytn Node API 이용) API 호출로 블록체인과 상호작용, 즉 블록체인에 트랜잭션을 전송하거나 블록체인에 이미 기록한 데이터를 읽거나 블록체인에 스마트 컨트랙트를 배포하거나 블록체인에 배포한 스마트 컨트랙트를 실행하게 합니다. 또 Wallet API는 일반적인 트랜잭션 전송 시 여러분 대신 자동으로 트랜잭션에 서명하며 서명에 사용되는 여러분의 계정 키 또한 안전하게 관리합니다.

이렇게, Wallet API는 API 호출 코드 몇 줄만으로 클레이튼에 트랜잭션을 전송하고 사용자 대신 클레이튼 계정 키를 안전하게 관리하는 강력한 기능을 제공하여 여러분의 블록체인 애플리케이션 개발을 훨씬 더 쉽고 빠르게 만듭니다.

다중 서명을 하려면 직접 서명 API를 호출해야 합니다.

Wallet API는 크게 계정 생성과 관리, 트랜잭션 전송 기능을 제공합니다. 이 문서 혹은 KAS에 관한 문의는 개발자 포럼을 방문해 도움을 받으십시오.

Anchor API

개요

Anchor API는 프라이빗 체인(서비스 체인 포함)의 데이터를 클레이튼 메인 체인으로 앵커링하는 작업을 간단한 API 호출로 실행하는 기능을 제공합니다. 여러분이 서비스 체인을 운영할 때 서비스 체인 데이터가 위변조되지 않았다는 것을 증명하려면, 서비스 체인의 정보를 메인 체인에 전달해야 합니다. 이렇게 서비스 체인 데이터를 메인 체인에 전달, 기록하는 작업인 데이터 앵커링을 수행하려면 기존에는 복잡한 설정과 관리가 필요했습니다.

Anchor API를 사용하면 이러한 번거로움 없이 API 호출만으로 데이터 앵커링 트랜잭션을 보낼 수 있으며, 트랜잭션 전송 수수료를 KAS에서 먼저 대납해줄 수 있기 때문에 수수료 대납용 계정과 KLAY를 준비할 필요 없이 추후 수수료에 해당하는 비용만 지불하시면 됩니다. 또, Anchor API를 사용하면 클레이튼 서비스 체인 뿐만 아니라 다른 종류의 프라이빗 체인도 클레이튼 메인 체인에 데이터를 앵커링할 수 있습니다.

데이터 앵커링(Data Anchoring)

블록체인의 가장 큰 특징 중 하나는 "데이터의 불변성"입니다. 더 정확히 말하자면, 데이터가 영원히 변하지 않는다는 뜻이 아니라 내가 블록체인에 기록한 데이터가 "조금이라도 변한다면" 이 변화를 반드시 "눈치챌 수 있는" 시스템이 바로 블록체인입니다. 그 이유는 블록체인은 모든 데이터를 해시(Hash)한 형태로 저장하기 때문입니다. 블록체인의 모든 데이터는 해시 트리(Hash Tree) 형태로 저장되기 때문에 데이터 일부에 아주 작은 변화가 생기더라도 사용자는 데이터 해시값을 조회해 이를 알 수 있습니다. 클레이튼 같은 퍼블릭 블록체인은 누구나 해시값을 조회할 수 있기 때문에 블록체인에 기록된 데이터는 "불변"하다고 말할 수 있는 것입니다.

하지만, 프라이빗 블록체인은 사정이 조금 다릅니다. 프라이빗 블록체인은 퍼블릭 블록체인과는 달리 특정 사용자만 블록체인 정보에 접근할 수 있으며 따라서 일부 사용자만 해시값을 조회할 수 있습니다. 그렇다면 프라이빗 블록체인을 기반으로 운영되는 서비스 혹은 애플리케이션은 블록체인 데이터에 접근할 수 있는 누군가에 의해 데이터 위변조가 일어나도 다수의 사용자는 이를 눈치채기 어렵습니다. 데이터 앵커링은 바로 이러한 문제를 해결하기 위해 도입된 개념입니다. 데이터 앵커링이란 블록체인 노드에 접근할 권한이 제한되어 있거나 노드 수가 적어 프라이빗 체인의 보안이 저하되는 것을 보완하고자 프라이빗 체인의 블록 해시를 클레이튼 메인 체인으로 주기적으로 전송해 기록하는 작업입니다. 프라이빗 체인의 데이터가 퍼블릭 체인인 클레이튼 메인 체인으로 주기적으로 전송되므로, 프라이빗 체인 사용자들은 클레이튼에서 프라이빗 체인 데이터의 해시값을 조회해 프라이빗 체인 데이터에 위변조가 일어났는지를 확인할 수 있습니다.

이렇게, 프라이빗 체인의 데이터 무결성을 확인하기 위해 프라이빗 체인의 블록 해시를 메인 체인에 보내는 트랜잭션을 "앵커링 트랜잭션"이라고 하며 이 트랜잭션을 이용해 프라이빗 체인의 데이터를 메인 체인에 자동으로 저장할 수 있습니다. 그리고 이 데이터 앵커링을 통해 프라이빗 체인 사용자들은 프라이빗 체인 데이터가 데이터가 바뀌지 않았음을 확인할 수 있습니다.

왜 Anchor API를 사용해야 하나요?

Anchor API는 이 데이터 앵커링 트랜잭션을 보내는 작업을 API 호출 몇 줄로 가능하게 합니다. 기존 클레이튼 환경에서는 앵커링 트랜잭션을 보내는 과정이 복잡했습니다. 하지만 Anchor API를 사용하면 앵커링 트랜잭션을 보내는 블록체인 계정인 "오퍼레이터(Operator)" 생성부터 앵커링 트랜잭션 전송에 이르는 모든 과정이 매우 간단하고 편리합니다. KAS 콘솔에서 쉽게 오퍼레이터를 생성하고, 이 오퍼레이터 정보를 API 호출 시 입력하면 앵커링 트랜잭션을 바로 실행할 수 있습니다. 이를 통해 프라이빗 체인 또는 서비스 체인 운영 주체는 데이터 앵커링에 드는 비용과 시간을 절약하면서도 데이터의 무결성을 증명할 수 있습니다.

Anchor API에 관한 더 자세한 내용은 다음을 확인하십시오. 이 문서 혹은 KAS에 관한 문의는 개발자 포럼을 방문해 도움을 받으십시오.

이 문서에 관하여

이 개발자 가이드는 여러분이 KAS를 사용해 블록체인 애플리케이션(BApp)을 개발하는 데 필요한 정보를 안내합니다.

페이지

설명

KAS와 KAS API를 소개합니다.

KAS 콘솔과 KAS API 사용에 필요한 기본 지식을 소개합니다.

KAS 회원 가입부터 API 호출하는 방법까지를 소개합니다.

각 KAS API를 사용하는 방법을 안내합니다.

API Reference와 API Change Log을 소개합니다.

KAS의 개인정보처리방침을 소개합니다.

KAS의 서비스 이용약관을 소개합니다.

이 문서는 API 또는 개발에 관한 기본적인 정보를 포함하고 있습니다. 이 정보는 변경될 수 있으며 이 문서를 따라 구현한 소프트웨어는 반드시 최종적으로 운영 체제 소프트웨어와 함께 테스트되어야 합니다.

이 문서 혹은 KAS에 관한 문의는 개발자 포럼을 방문해 도움을 받으십시오.

Last updated