SKALE 네트워크 기술 요약본

SKALE 네트워크는 Elastic Sidechain으로 구성된 개별설정이 가능한 네트워크로서 기존 퍼블릭메인넷에서 흔히 볼 수 있는 높은 거래수수료 없이도 높은 처리량과 짧은 레이턴시로 거래를 진행할 수있는 네트워크입니다. SKALE 네트워크는 더 많은 저장 공간을 제공할 뿐만 아니라, 이더리움 메인넷과연동되어 있어 인터체인 메시징도 가능합니다. 이 모든 기능들은 효율적이고 확장 가능하며 담합을 방지할수 있는 검증인 풀과 보안 모델을 차용했기 때문에 가능한 것입니다.

본 문서는 SKALE 네트워크의 기술이 가진 장점들을 간략히 소개하는 자료입니다. 해당 사항들에 대한 더욱구체적인 설명은 SKALE 네트워크 백서에서 찾으실 수 있습니다.

  • 0에 수렴하는 가스비
  • 무작위 노드 선택/ 주기적인 노드 회전
  • 가상하위노드
  • 컨테이너식 검증인 노드
  • 비동기식 이진법 비잔틴 합의(ABBA)를 통한 합의 메커니즘
  • BLS Rollups
  • 노드 모니터링
  • 이더리움과의 상호운용성

0에 수렴하는 가스비

SKALE 네트워크에서 사용되는 가스비는 컴퓨터 자원을 특정 임계치 이상으로 사용하지 않는 한 SKALE체인의 규모와 관계없이 0에 수렴합니다. 가스비를 지불하지 않는 구조는 탈중앙화 어플리케이션을 구축하거나 운영함에 있어서 상당한 혜택입니다. 통상적으로 블록체인 서비스를 사용할 때 사용자들이 지불하는 가스비는 블록체인 기술의 대중화나 수익성을 보여주는 실사용 사례의 큰 걸림돌입니다. 이와 같은비용을 제거한다면 제품이 소비자들에게 더 빨리 퍼질 수 있는 계기가 되며 도입률이 증가하여 더욱 성공적인 탈중앙화 솔루션이 개발될 확률이 높아지게 됩니다.

SKALE 체인 내 컨테이너는 특정 수준까지 가스비를 지불하지 않고도 기능할 수 있는 CPU, 메모리, 디스크사이즈 등의 컴퓨터 자원을 할당받습니다. 만약 특정 수준을 넘어가게 된다면 가스비가 발생하게 됩니다.이렇게 가스비가 차등화되면 두 가지 장점이 있습니다. 먼저, 사용량이 특정 수준을 넘어가 가스비를 지불할수밖에 없다면 해커 등의 DDOS 공격을 방지할 수 있고 사용자들에게는 SKALE 체인의 규모를 확장해야한다는 하나의 신호가 될 수 있습니다. 후자의 경우, 마치 AWS 클라우드 서비스인 t2.micro에서m3.large로 확장하는 것과 같은 이치입니다.

무작위 노드 선택/ 주기적인 노드 회전

검증인 노드는 메인넷에 탑재된 스마트 컨트랙트에 의해 작동되는 무작위 선별을 통해 각 ElasticSidechain에 배정됩니다. 해당 체인의 합의 과정에 대한 보안은 주기적인 노드 회전에 의해 담보됩니다.하나 혹은 그 이상의 사이드체인에 지정된 노드들은 비결정적인 주기로 새로운 노드들에 의해 교체됩니다.이런 노드 회전은 메인넷 상의 스마트 컨트랙트에 반영된 무작위 노드 지정 알고리즘에 따라 노드 코어가지속적으로 메인넷을 확인하여 현 체인에서 이탈되면 신규 체인에 연결되어 작업을 수행하는 형식으로이루어집니다.

SKALE 체인에서 작업하는 노드들은 주기적 무작위로 다른 노드와 교체됨으로써

가상하위노드

각 Elastic Sidechain은 무작위로 선정된 가상하위노드 그룹으로 이루어져 있습니다. 또한, 해당 가상하위노드들은 SKALE 데몬과 SKALE 합의 메커니즘을 사용합니다. SKALE 네트워크 내 노드들은 가상하위노드기술을 통해 하나 이상의 사이드체인에서 작업을 수행할 수 있습니다. 해당 노드들의 다중작업 기능은SKALE 네트워크에서 차용한 컨테이너식 하위노드 아키텍처를 통해 가능해집니다. 즉, 각 노드에는 가상화기술이 적용되고 이 아키텍쳐를 통해 사이드체인들의 검증인으로 참여할 수 있는 것이죠.

검증인 노드는 가상하위노드와 노드코어로 이루어져 있습니다.

컨테이너식 검증인 노드

가상하위노드들은 탈중앙화 어플리케이션을 개발하는 개발자들에게 뛰어난 성능과 폭넓은 선택지를 제공하며 이는 혁신적인 컨테이너화 아키텍처를 통해 구현됩니다. 이를 통해 확보하는 시스템의 유연성과 성능은 기존 중앙화 클라우드 서비스 혹은 마이크로서비스 기반 시스템들과도 견줄 수 있을 정도입니다. 각컨테이너는 도커화(dockerized)된 리눅스 OS를 통해 캡슐화된 다수의 주요 컴포넌트들로 나뉘어집니다.따라서 노드들은 OS와 무관하게 작업을 수행할 수 있죠.

비동기식 이진법 비잔틴 합의(ABBA)를 통한 합의 메커니즘

SKALE의 Elastic Sidechain에서 블록 생성 및 커밋을 위해 차용한 합의 모델은 ABBA 프로토콜의 변형입니다. ABBA 프로토콜은 Mostefaoui et al.이 제시한 합의 알고리즘입니다. 물론, 특정 조건을 충족시킨다면 다른 합의 프로토콜도 사용될 수 있습니다. ABBA 프로토콜의 장점은 하위노드에서 다운타임이 발생하거나 실제로 다운되어 느린 연결고리(slow link)로 간주되는 경우에도 안정적으로 가동되도록 고안되었다는 것입니다. ABBA 프로토콜에 대해 더 자세한 설명을 원하시는 독자분은 해당 링크를 참조하시기바랍니다.

ABBA 합의 프로토콜

BLS 임계치 서명을 통한 인터체인 메시징

각 Elastic Sidechain은 BLS 임계치 서명을 지원하는데, 이는 인터체인 메시징을 위해서 중요한 요소입니다.각 체인의 가상하위노드는 SKALE 네트워크 내 다른 체인 상의 하위 노드가 서명하고 커밋한 거래를 해당체인의 그룹 서명을 통해 검증할 수 있습니다. 해당 그룹 서명은 이더리움 메인넷 상에 퍼블리시 되어 모든타 체인들이 인지할 수 있습니다.

인터체인 메시징은 사이드체인이 하나 이상의 기능을 수행하고 이를 통해 생산된 결과물을 이더리움메인넷을 포함한 다른 체인에 바로 메세지 할 수 있도록 하는 마이크로서비스 모델입니다. 이 때 사용되는결과물은 기타 체인들의 입장에서는 입력값으로 쓰거나 특정 절차 처리에 쓰이게 되죠. SKALE의 인터체인메시징은 이더리움의 주요 토큰 스탠다드 ETH, ERC20, ERC721, ERC777, Dai 등을 모두 지원합니다.

BLS Rollups

SKALE의 사이드체인은 BLS Rollup을 지원합니다. BLS Rollup은 SKALE 네트워크의 처리량를 개선할뿐더러 안전하고 효율적으로 이더리움 메인넷 가스비를 인하할 수 있게 해줍니다. Rollup은 일반적으로체인 내 거래를 퍼블리싱하는 솔루션으로 정의되지만, Rollup이 특별한 이유는 거래 결과에 대한 연산과저장하는 방식을 기존 방법과 차별화함으로써 가스비를 절감한다는 점입니다. BLS Rollup은 ‘합산 BLS서명'이라는 암호화 알고리즘을 사용해 이루어지며 이더리움 거래에 담긴 용량을 줄입니다.

SKALE 네트워크에 BLS Rollup을 도입하는 개발 과정은 총 3단계로 이루어집니다. 1단계 개발을 거치면ERC-20 기반 토큰 전송의 거래처리 속도를 초당 50건을 제공하게 되죠. 점차 단계를 거쳐나가면서 거래성능 수치는 더욱 개선됩니다. BLS Rollup의 작동 방식과 로드맵이 궁금하신 분들은 해당 링크를 통해 더알아보실 수 있습니다.

참고: BLS Rollup 외에도 다른 형태의 롤업으로는 Optimistic Rollup과 ZK Rollup이 있습니다. 그러나Optimistic Rollup의 경우 올바르지 않은 결과값도 체인 내에 퍼블리시할 수 있게 허용해준다는 점에서문제가 있습니다. 그리고 이런 퍼블리싱은 추후 거래에 대한 컴플레인 절차를 거쳐서만 고칠 수 있다는 것이문제라 할 수 있습니다. ZK Rollup은 이러한 단점을 가지지 않는다는 측면에서 Optimistic Rollup보다기술적으로 뛰어난 것은 사실입니다. 그러나 ZK-Snark가 수반하는 연산 복잡성으로 인해 거래가 최종적으로 처리되기까지 몇 시간이나 걸린다는 문제가 존재하죠. BLS Rollup이 가장 현실적인 해결책임을알 수 있는 점은 BLS 암호학은 거래 처리 속도 역시 매우 빠르다는 부분에 있습니다.

BLS Rollup과 기타 Rollup 형태 비교시 보여지는 확연한 장점

노드 모니터링

노드 모니터링 서비스(NMS)는 각 SKALE 노드별로 운영이 되며 네트워크 내 일정 숫자의 기타 노드들이어떤 퍼포먼스를 내고 있는지 트래킹할 수 있도록 합니다. 퍼포먼스 트래킹은 가동시간(업타임)과 지연시간(레이턴시)을 측정함으로써 이뤄집니다. 이를 위해 다른 피어 노드에 핑을 보내고 로컬 데이터베이스 내에업타임 및 레이턴시와 같은 수치들을 측정하여 기록합니다. 매 주기가 끝날 때마다 해당 수치들은 평균값을내어 메인넷에 탑재된 스마트 컨트랙트로 보내집니다. 그리고 이 수치들을 통해 노드들의 보상이 정해지고,악의적인 노드로 의심되는 경우 리뷰를 거쳐 페널티가 적용되게 되죠.

각 노드별 노드코어는 네트워크 내 기타 노드들을 분석하고 퍼포먼스에 대한 점수를 매깁니다.

이더리움과의 상호운용성

SKALE 네트워크는 보안 및 실행 계층으로서 역할을 수행하기 위해 이더리움과 연동되어 있습니다. 노드운영과 관련된 스마트 컨트랙트는 모두 이더리움 메인넷에서 실행됩니다. 검증인 스테이킹, 사용자 체인구독, 토큰 인플레이션 등도 물론 이더리움 메인넷에서 실행된는 스마트 컨트랙트에 의해 유지되거나 통제됩니다.

Solidity 지원

SKALE 네트워크는 컨트랙트용 언어로 Solidity를 사용하기 때문에 개발자들은 새로운 언어 혹은 프로토콜을 새롭게 배울 필요가 없습니다. Solidity는 객체 지향적 고수준 언어로서 스마트 컨트랙트를 구현하는데 사용됩니다. Solidity는 C++, 파이썬, JS등의 언어에서 영향을 받았고 이더리움 가상머신(EVM)을 목표로 설계된 언어입니다.

이더리움 EVM 상호운용성

SKALE의 실행 모델은 EVM과 완전하게 상호호환되며, 이더리움 메인넷 상에서 구동되는 스마트 컨트랙트가 SKALE 네트워크에서도 구동될 수 있도록 합니다. 이더리움과 SKALE 간 스마트 컨트랙트를 다시 작성하거나 포팅할 필요도 없죠. EVM을 기반으로 작성된 스마트 컨트랙트는 SKALE 네트워크에서도 실행할 수 있습니다. 이를통해 개발자들은 필요와 혜택에 따라 개별적으로 이더리움 상의 스마트 컨트랙트를단계별로 SKALE의 Elastic Sidechain으로 포팅할 수 있게 됩니다.

개발자 툴 지원

SKALE이 Solidity와 EVM을 지원한다는 것은 이더리움 개발자 툴까지 지원한다는것을 의미합니다. 개발자들은 이더리움 메인넷 상에서 작업할 때 사용하는 툴들을그대로 사용할 수 있죠. 이는 web3.js, web3.py 등을 통해 네트워크에 연결하는 것과 Truffle 및 Remix와 같은 툴을 사용하는 것 역시 포함됩니다.토큰 지원SKALE 네트워크는 ETH, ERC-20, ERC-721, ERC-777, DAI 등 이더리움 내 주요 토큰 스탠다드를 모두 지원합니다. 이에 더해 SKALE의 인터체인 메시징과 보증금 예치,토큰 복제 등의 서비스도 SKALE 네트워크 상의 토큰 오퍼레이션의 무결성과 신뢰성을 보장합니다.

토큰 지원

SKALE 네트워크는 ETH, ERC-20, ERC-721, ERC-777, DAI 등 이더리움 내 주요 토큰 스탠다드를 모두 지원합니다. 이에 더해 SKALE의 인터체인 메시징과 보증금 예치,토큰 복제 등의 서비스도 SKALE 네트워크 상의 토큰 오퍼레이션의 무결성과 신뢰성을 보장합니다.

공통 지갑 지원

SKALE 네트워크는 다수의 주요 암호화폐 지갑, 브라우저 플러그인, 네트워크 브릿지등을 지원합니다. 예를 들면 Bitski, Fortmatic, Metamask, Portis, Torus 등이있죠. 스케일의 인터페이스 컴포넌트에 해당하는 위 서비스들은 커뮤니티 내에서인지도가 높고 수천 명의 개발자들이 사용하는 서비스이기도 합니다.


SKALE 네트워크란

SKALE 네트워크는 오픈소스로 이루어진 탄력적인 블록체인 네트워크 프로토콜입니다. SKALE의 미션은풀 스테이트 스마트 컨트랙트를 운영할 수 있는 비용효율적이고 고성능인 사이드체인을 쉽게 만드는 것입니다. SKALE 네트워크를 사용하여 개발자들이 보안이나 탈중앙화에 대한 양보 없이 빠른 속도와 기능성을 모두 챙길 수 있도록 해주고자 합니다.

SKALE에 대해 더 궁금하신 분들은 텔레그램(@SkaleOfficial), 트위터(@SkaleNetwork), 그리고 디스코드(www.skale.chat)을 방문해주세요. SKALE 웹사이트(www.skale.network)와 SKALE 개발자 포털(skale.network/docs)을 통해 더 많은 정보를 얻으실 수 있고, 깃헙(github.com/skalenetwork)를 방문하시면 코드를 직접 보실 수 있습니다.