💡KAS (Klaytn API Service)
KAS(Klaytn API Service) 는 클레이튼 블록체인 네트워크를 API로 제공하는 서비스이다.
앞서 Infura를 통해 원격 이더리움 노드에 접근하거나 geth를 사용해 이더리움 노드로 참여하고 Web3.js 라이브러리로 이더리움 네트워크와 상호작용하였다. KAS는 이러한 네트워크 참여 및 상호작용 과정을 REST API로 실행할 수 있게 해준다. KAS는 블록체인 노드를 운영할 필요가 없기 때문에 노드 운영 및 관리 비용을 절감하고, REST API로 클레이튼 트랜잭션에 대한 조회와 전송이 가능하기 때문에 편리하다는 장점이 있다. 또한 KAS Console을 통해 API 키와 주소를 관리하고, 체인에 기록된 트랜잭션과 토큰을 조회하고, 계정 저장소를 관리하는 등 다양한 기능을 제공한다.
✓ KAS APIs
KAS에는 네 종류의 API가 있다.
- Klaytn Node API
- Token History API
- Wallet API
- Anchor API
Klaytn Node API
이더리움에서는 블록체인 네트워크와 상호작용하기 위해서 geth나 parity를 이용해 네트워크에 노드로 참여해야했다. Infura는 네트워크에 참여하기 위한 노드를 API 형식으로 빌려주었다. Klaytn Node API는 클레이튼 네트워크와 상호작용하기 위해 별도의 블록체인 노드로 참여할 필요 없이, Klaytn Node API가 제공하는 클레이튼 엔드포인트 노드(Klaytn Endpoint Node)를 통해 클레이튼 네트워크에 접근할 수 있다. 클레이튼 엔드포인트 노드가 제공하는 JSON-RPC API를 KAS를 통해 쉽게 사용할수 있게 되는 것이다.
이더리움에서는 블록체인 네트워크에 접근하기 위해서는 자체적으로 노드를 가지고 있어야 했지만, Klaytn Node API는 Klaytn Node API에서 가지고 있는 노드를 사용하기 때문에 별도의 노드를 구축하지 않아도 네트워크와 상호작용 할 수 있다.
Token History API
블록체인상에서 토큰은 화폐 또는 자산의 역할을 수행한다. 토큰이 가치를 가지기 위해서는 언제, 누구에게 거래되었는지 추적될 수 있어야 한다. 추적을 통해 투명성과 불가역성을 바탕으로 토큰이 위변조되지 않았음을 보장할 수 있기 때문이다. 그러나 블록체인 상에서 거래되는 토큰을 모니터링하고, 필요할 때마다 토큰 정보를 파악하는 것은 쉽지 않다. 토큰 전송이 일어나는 모든 트랜잭션을 모니터링하고, 필요한 경우에는 이를 저장할 데이터베이스를 구축해야하기 때문이다.
Token History API는 이러한 불편함을 해소해준다. Token History API는 모든 클레이튼 계정에서 이루어지는 토큰 전송을 데이터베이스에 기록해두고, KLAY 및 FT(KIP-7, ERC-20), NFT(KIP-17, ERC-721) 토큰의 거래내역과 데이터를 조회하는 기능을 제공한다. 이를 통해 특정 클레이튼 계정에서 토큰을 언제, 얼마나 주고 받았는지 쉽게 파악할 수 있다. Klayscope는 KAS의 Token History API 를 이용한 대표적인 예시라고 볼 수 있다.
Wallet API
Wallet API 는 클레이튼 계정 키를 관리해주고, API를 호출하여 클레이튼 네트워크에 트랜잭션을 전송하도록 도와준다. 이더리움에서 트랜잭션을 블록체인 상에 기록하기 위해서는 일련의 과정을 거쳐야 했다.
1. geth나 parity 등을 이용해 이더리움 네트워크에 노드로 접속한다.
2. 노드에서 사용자 계정을 만든다.
3. 트랜잭션을 생성한다.
4. 트랜잭션을 사용자 계정(개인키)로 서명한다.
5. 노드를 통해 트랜잭션을 네트워크에 전송한다.
블록체인 어플리케이션을 개발할 때, 계정 키를 관리하기 위한 지갑을 직접 구축하고 관리하는 것은 매우 어렵다. Wallet API에서는 사용자 또는 bApp이 직접 관리하는 대신, KAS를 통해 계정 키를 생성 및 관리하고 트랜잭션을 생성할 경우 자동으로 서명하여 네트워크에 전송할 수 있도록 해준다.
Anchor API
데이터 앵커링(Data Anchoring)은 프라이빗 블록체인의 데이터를 주기적으로 퍼블릭 블록체인에 기록하는 것을 의미한다. 데이터 앵커링은 프라이빗 블록체인의 무결성을 확보하기 위한 방식 중 하나이다. 퍼블릭 블록체인은 누구나 체인에 기록된 데이터를 확인할 수 있는 반면, 프라이빗 블록체인은 데이터에 접근할 수 있는 사용자가 제한된다. 따라서 데이터에 위변조가 일어나도 대부분의 사용자가 이를 확인할 수 없다. 이러한 프라잆 블록체인의 무결성 문제를 해결하기 위해, 주기적으로 프라이빗 블록체인에 있는 데이터의 해시값을 퍼블릭 블록체인에 기록한다. 프라이빗 블록체인 사용자는 프라이빗 블록체인에서 데이터를 확인하고, 만약 두 값이 다르다면 프라이빗 블록체인에 기록된 데이터가 위변조 된 것이다. 이렇게 프라이빗 체인 데이터의 해시값을 퍼블릭 체인에 보내는 트랜잭션을 앵커링 트랜잭션(anchoring transaction) 이라고 한다.
그러나 프라이빗 체인 데이터를 퍼블릭 블록체인으로 전달하는 작업은 매우 복잡하고 번거롭다는 단점이 있다. KAS의 Anchor API는 이러한 번거로움 없이 API 호출을 통해 데이터 앵커링 트랜잭션을 보낼 수 있다. KAS를 통해 앵커링 트랜잭션을 보내는 오퍼레이터 계정을 생성하고 오퍼레이터를 통해 Anchor API를 호출하여 앵커링 트랜잭션을 실행할 수 있다.
'블록체인 > 블록체인이란?' 카테고리의 다른 글
51% 공격 (0) | 2022.08.04 |
---|---|
암호화폐 시가총액 시세와 같은 다양한 데이터를 API 형태로 제공하는 Coingecko (0) | 2022.08.03 |
클레이튼 네트워크의 블록탐색기, Klaytnscope (0) | 2022.08.03 |
이더스캔으로 이더리움 네트워크로부터 데이터 읽기 (0) | 2022.07.28 |
Web3란? (0) | 2022.07.28 |
댓글