엔터프라이즈 프록시

엔터프라이즈 프록시의 필요성

Klaytn 엔터프라이즈 프록시(EP)는 Klaytn에서 블록체인 애플리케이션(BApp)을 운영하는 사업체를 대신하여 Klaytn 블록체인과 통신하는 오프체인 프록시입니다. EP는 Klaytn의 기업 경험(Enterprise Experience, EX)을 개선하기 위해 만들어졌습니다. EP는 트랜잭션 전처리, 필수 데이터 입력, 트랜잭션에서 요청한 스마트 컨트랙트 실행 등 블록체인과의 커뮤니케이션에서 관리상 복잡한 부분을 해결합니다.

EP는 주요 기존 자산과 툴의 원활한 결합을 통해 더 많은 혜택을 누릴 수 있는 엔터프라이즈 사용자 및 대규모 애플리케이션 공급자를 위한 애드온 서비스로 디자인되었습니다. 또한, 편의를 제공하면서도 블록체인의 가장 중요한 특징 중 하나인 '탈중앙화'에 부정적인 영향을 끼치지 않도록 설계되었습니다. EP는 엔터프라이즈 사용자들을 위해 오라클이나 애플리케이션별 대시보드 등을 제공하여 다른 플랫폼과 차별됩니다. 더욱이 EP를 통해 엔터프라이즈 사용자는 액세스 제어 계층(ACL), 방화벽(FW), 이상 거래 탐지 시스템(FDS)과 같이 탈중앙화 시스템과의 결합이 어렵다고 여겨지는 기존 데이터베이스 및 보안 시스템과 함께 Klaytn 블록체인을 사용할 수 있습니다. EP는 시작 시 기존 백엔드 시스템과 Klaytn 사이에 있는 소프트웨어 프레임워크로 제공됩니다. 이러한 방식으로 EP를 사용하면 블록체인에 대한 지식이 많지 않아도 한번의 환경설정을 통해 블록체인 데이터 및 릴레이 트랜잭션을 쉽게 동기화할 수 있습니다.

BApp 서비스 제공자는 EP를 크게 두 가지 용도로 사용할 수 있습니다. 첫째, EP 기능은 blockchain enabler로써 블록체인 기술을 사용할 때 피할 수 없는 기술적 장애를 줄여줍니다. 둘째, EP는 Klaytn 블록체인과 기존 데이터 베이스 및 보안 시스템을 통합하는 legacy system integrator 역할을 합니다.

  1. Blockchain Enabler

    • Event handler (WIP) : 사용자가 EP를 통해 스마트 컨트랙트를 배포할 경우 event subscriber는 해당 컨트랙트의 abi와 함께 자동으로 생성됩니다.

    • 트랜잭션 매니저(Transaction manager): 서비스 제공자는 트랜잭션 쓰로틀링(throttling), 논스 증가, 계정 인증 등 트랜잭션과 계정 관리 기능을 이용할 수 있습니다.

    • 체인 라우터(Chain router): BApp에 사용되는 multi-Klaytn clients 환경설정을 설정합니다.

  2. Legacy System Integrator

    • Requests transcoder : gRPC, RESTful API 요청을 포함한 다양한 유형의 API 지원

    • 리퀘스트 게이트웨이(Request gateway) : 분석을 위한 클라이언트 메트릭 수집

Blockchain Enabler

서비스 제공자의 관점에서 블록체인은 다른 상용 솔루션들에 비해 낯선 기술일 수 있습니다. 이러한 사용자 그룹의 경우 가장 단순한 토큰 전송이나 스마트한 컨트랙트 실행도 엄청나게 복잡하고 비즈니스 로직 상 고려할 것이 많다고 느껴질 수 있습니다. 이 문제를 해결하기 위해, Klaytn은 블록체인을 쉽게 기존 서비스에 적용할 수 있도록 만들어 주는 툴 프로비져닝을 통해 기본적인 복잡성 줄였습니다.

이벤트 핸들러(Event handler)

Event handler는 블록체인에 배포된 스마트 컨트랙트를 관리하는 복잡한 일을 돕기 위해 만들어졌습니다. 스마트 컨트랙트는 BApp의 비즈니스 로직에서 매우 중요한 요소이며, 일단 배포되면 공개적으로 확인하고 실행할 수 있습니다. 누가 스마트 컨트랙트를 무슨 목적으로 실행했는지 추적하는 것은 블록체인 같은 탈중앙화된 환경에서는 매우 어렵습니다. Event handler는 배포된 스마트 컨트랙트에 영향을 미치는 다음 이벤트들을 추적하는 event subscribers를 자동으로 만들어 이 문제를 완화합니다. 이 기능은 스마트 컨트랙트가 배포될 때 생성되는 application binary interface(ABI)를 이용합니다.

트랜잭션 매니저(Transaction manager)

트랜잭션 전송은 자주 일어나는 일이지만, BApp이 적절하게 관리하기에 매우 복잡합니다. BApp은 자주 다른 역할을 맡은 여러 개의 계정으로 구성되며, 별도의 트랜잭션 기록을 가질 수 있습니다. 각 계정에서 트랜잭션 실패를 피하기 위해 논스는 개별적으로 정확하게 관리되고 조정되어야합니다. 트랜잭션으로 생기는 영수증은 잘 조직화되어 관리되어야 하는 중요한 데이터 입니다. 데이터를 검색하는 일이 자주 있기 때문입니다. 트랜잭션 매니저 기능은 트랜잭션 전송 시 힘든 대부분의 일을 자동화 합니다. 예를 들어 트랜잭션을 보낼 적합한 계정 관리, 트랜잭션이 적합하게 이루어졌는지 확인, 트랜잭션 영수증 조직화 등의 일을 합니다. 전반적으로 트랜잭션 매니저는 블록체인 트랜잭션 구성에 익숙하지 않은 엔터프라이즈 사용자에게 큰 도움이 될 수 있습니다.

체인 라우터(Chain router)

Klaytn은 쉽게 확장이 가능한 블록체인 솔루션입니다. 엔터프라이즈 사용자들은 Klaytn의 자체 확장성 솔루션인 서비스체인을 이용하여 분리된 네트워크를 간단하게 구성할 수 있습니다. 이로 인해 Klaytn 네트워크와 함께 파트너 기업이 운영하는 여러 프라이빗 서비스체인 인스턴스가 함께 존재할 수 있습니다. 이런 경우, 여러 Klaytn 네트워크와 통신하는 BApp은 트랜잭션을 전송하는 네트워크를 지정해야 할 수 있습니다. 체인 라우터 기능은 BApp 서비스 제공자들의 여러 Klaytn 네트워크 정보 관리와 식별, 환경설정 등을 담당합니다.

Legacy System Integrator

새로운 기술을 채택할 때, 기존 프로세스 및 자산과의 호환성 및 통합성은 기업이 고려하는 핵심적인 사항입니다. 블록체인은 단독 관리자 없이 여러 엑세스 포인트를 가지는 분산화된 시스템입니다. 따라서, 엔터프라이즈 사용자들은 보통은 중앙에서 관리되는 벡엔드 시스템을 블록체인에 결합할 때 문제를 겪을 수 있습니다. Klaytn은 이 해결하기 어려운 문제를 Legacy system integrator를 통해 해결하려고 합니다.

리퀘스트 트랜스코더(Request Transcoder)

리퀘스트 트랜스코더는 이기종 시스템(heterogeneous systems)간 번역 시스템과 유사합니다. 이 기능은 기존 시스템의 요청(예 : REST API 호출 또는 gRPC 호출)을 수신하고 이를 효율적으로 Klaytn 블록체인 네트워크에서 처리할 수 있는 트랜잭션으로 변환합니다.

리퀘스트 게이트웨이(Request Gateway)

엑세스 포인트가 여러 개인 분산 시스템에서는 사용자 행동 메트릭스(metrics)를 모으고 사용자들의 개별 컨트랙트 실행 요청 권한을 통제하는 것은 매우 복잡한 일입니다. EP는 이 문제를 해결합니다. 서비스 제공자가 컨트랙트 실행 요청 시 사용자에게 사업체에서 지정한 EP의 서명을 받도록 요구할 수 있습니다. 이렇게 하면 사용자는 컨트랙트 실행 요청을 EP에게 보내야 합니다. 그러면 해당 EP가 리퀘스트 게이트웨이가 되어 사용자 행동 메트릭스를 모으고, 사용자 요청을 승인하기 위해 보안 조치(security measures)를 시행합니다.

앞서 언급했듯이 분산 환경에서 메트릭스(metrics)를 수집하기는 쉽지 않습니다. 그러나, 리퀘스트 게이트웨이 기능을 사용하면 EP를 통하는 사용자의 모든 요청들을 모니터링하고 의미 있는 메트릭스를 수집할 수 있습니다. 예를 들어 DApp 사용자 수, DApp 메모라 사용량, TPS, 서비스 지연시간, 컨트랙트 실행 시 필요한 평균 가스비 등을 알 수 있습니다. 서비스 제공자는 수집된 메트릭스를 대시보드에 표시하거나, 다른 기능을 실행하거나, 시스템이 메트릭스에 나타난 이벤트에 응답하도록 만들 수 있습니다. Klaytn은 서비스 제공자가 리퀘스트 게이트웨이를 실행하여 메트릭스를 수집하고 시각화하는 비즈니스 인텔리전스 대시보드 시스템을 구현할 수 있도록 소프트웨어 프레임 워크를 제공합니다.