SKALE Users Save $1.8 BILLION on Gas Fees in March!

/

August 4, 2020

SKALE 인센티브화된 테스트넷 #1 - 결과 및 커뮤니티 업데이트

Ebru Engwall
Director of Solutions Engineering

SKALE 네트워크는 인센티브화된 테스트넷을 지난 몇 주 동안 운영했습니다. 이번 테스트넷은 SKALE 네트워크 개발사인 SKALE Labs가 5월 20일에 출시했으며, 초기 검증인 몇몇이 참여했습니다. 몇 주 정도는 더 운영될 예정입니다.

테스트넷 초기 단계들의 목표는 실제 SKALE 검증인들을 활용하여 (a)검증인 노드 설치 과정을 시험 및 검증하고, (b)검증인과 대리인의 실질적인 퍼포먼스를 확인하는 것입니다. 또한 테스트넷은 메인넷 출시 전 핵심 초기 검증인들이 네트워크의 특수한 성능, 기능들에 익숙해질 수 있는 기회였습니다.

한 가지 강조하고 싶은 부분은 이번 테스팅이 다른 엄격한 네트워크 테스팅들과 함께 이루어졌다는 점입니다. 네트워크의 모든 버전은 대규모 검증인 풀에서 집중적인 QA를 거칩니다. 또한 SKALE 네트워크의 스마트 컨트랙트는 명망 높고 독립적인 두 감사 업체의 보안성 감사를 성공적으로 치뤘습니다. 테스트넷의 목적은 운영적인 측면에서 추가적인 테스팅들을 진행하고, 검증인 온보딩 과정도 실제 상황에서 시행해보면서 검증인들이 네트워크와 친숙해질 수 있도록 하는 것입니다.

테스팅 단계

테스팅은 여러 단계에 걸쳐서 진행됐습니다. 일련의 과정을 통해 검증인들의 집단 의식을 갖도록 하면서, 검증인들이 각자 주체가 되어 멀티 파티 트랜잭션을 테스팅하도록 하는 구조였습니다. 예를 들어 특정 검증인이 검증인 역할을 하면 다른 검증인이 대리인 역할을 함으로써 검증인/대리인 운영도 테스팅하고 대리인의 관점에서도 운영 과정을 확인해볼 수 있었습니다.

테스트넷의 초기 버전은 다음과 같은 단계들을 포함했습니다:

  • 검증인 노드 설치
  • 위임
  • 바운티 지급
  • SKALE 체인 생성 및 노드 순환
  • 테스팅 백업/복구

테스팅의 몇몇 초기 단계들은 ‘킬리만자로 등반’으로 표기되었습니다. 초기 설치 및 운영은 이후의 고관여 테스팅 및 단계들에 대한 준비 단계라는 의미입니다. 이후의 단계들에는 더 복잡한 작업들과 랜덤성 및 예측 불가능한 행동들도 포함될 예정입니다(변동성이 높은 상황을 극복할 수 있는 네트워크 역량을 확인하기 위해 카오스 엔지니어링 요소들을 활용).

저희는 특정 운영 사항과 더불어 몇몇 데이터 포인트에 대해 단계별로 더 자세하게 분석하여 성능 문제, 네트워크 상의 다운 원인, 토큰 결제 문제 등을 파악했습니다. 이러한 데이터 포인트는 다음과 같은 정보를 포함했습니다.

  • SKALE Manager가 수령한 데이터의 지연에 대한 히스토그램
  • SKALE Manager가 파악한 시스템 다운에 대한 히스토그램
  • 검증인에게 전달된 바운티 지급의 시계열(Time Series)

참여자 테스팅

20개의 검증인이 이번 테스트넷에 참여했습니다. 네트워크 운영 팀, 채굴자, 이더리움 개발자들도 이번에 검증인으로 참여하는 등 다양한 주체들이 참여했으며, 모두 경험이 풍부했습니다.

설치 단계에서 대규모 검증인 군과 함께하고 있다는 점이 명확해졌습니다. 이들은 다양한 분야의 경력자였습니다. 복합적인 인프라를 설치 및 조율하는 것부터 이더리움과 EVM 관련해서도 다년간의 경험을 가지고 있었습니다. 설치 단계에서 받은 피드백 만으로도 검증인 온보딩 과정을 향상시키고 시스템 보안을 강화시킬 수 있었습니다.

노드 설치 과정 전반이 최대한 원활하도록 네트워크 팀은 이러한 인사이트와 테스팅 중 나타난 변수들을 교훈 삼아 네트워크에 적용했습니다. (SKALE 네트워크의 목표는 완전히 탈중앙화된 네트워크가 되는 것이기 때문에 이 과정에서의 노드 설치가 최대한의 턴키 방식이 되는 것이 중요함)

몇몇 노드 운영자들은 검증인들이 설치의 어려움을 극복하여 네트워크에 참여할 자격을 얻어야 한다고 주장하지만, SKALE 코어 엔지니어링 팀과 솔루션 팀은 다르게 생각합니다. 위 팀들은 설치 과정에서 실수가 발생할 여지를 최소화하고 소요 시간이 2시간 이내로 단축될 수 있도록 노력하고 있습니다. (이러한 개선사항이 없는 상황에서도 대부분의 검증인들이 설치 단계를 수월하게 마침)

SGX 월렛과 ABBA 기반 합의 레이어 테스팅

노드 설치 단계 이후에는 검증인 및 노드 등록이 진행됩니다. 검증인들은 대부분 채굴 및 검증인 관련 경험이 있었기 때문에 제반 과정에 대한 이해도가 높았습니다. 실질적으로 시간이 소요되고 테스팅이 집중한 요소는 SKALE 네트워크에 특수한 부분들이었습니다.

이러한 요소들 중엔 SKALE EVM 내의 SGX 월렛과 ABBA 기반 합의 레이어가 포함됩니다. SGX 월렛은 민감한 정보를 보호하고, 지속적으로 트랜잭션을 확정할 필요를 절감시키며, BLS 서명 및 디지털 키 생성 등 SKALE 암호학 작업의 게이트웨이 역할을 통해 검증인, 개발자들을 돕습니다. ABBA 기반 합의 레이어는 보안성이 좋고 신뢰가 최소화된 합의 과정을 제공하면서 높은 트랜잭션 처리량과 짧은 커밋 지연 시간을 위한 고성능 메커니즘을 제시합니다.

Intel SGX

SKALE 네트워크는 높은 보안성, 향상된 데이터 보호, 단축된 디지털 키 생성 속도를 제공하기 위해 Intel SGX 기반 칩셋을 사용합니다. Intel SGX는 개발자들이 민감한 정보를 메모리의 심화된 보안성을 갖춘 실행 영역인 엔클레이브(enclave)로 분리시킬 수 있도록 합니다. SGX 기반 서버의 또 다른 장점은 SKALE 네트워크 내에 적극적으로 적용되어 있는 BLS(Boneh - Lynn - Shacham) 암호학의 활용도입니다. SKALE 네트워크 검증인 FAQ에서 Intel SGX, BLS 서명과 SKALE 네트워크에서 이들의 역할에 대해 더 상세히 나와 있습니다.

ABBA 기반 합의

비동기식 바이너리 비잔틴 합의(ABBA) 형식의 프로토콜이 SKALE 합의 모델에 적용되었습니다. 각 노드에 컨테이너 형태로 포함되어 있는 EVM의 기본 합의 모델을 ABBA 기반 합의 레이어가 대체합니다. 해당 EVM은 SKALE 체인을 관리하고 유지하는 각 가상화 하위노드에서 인스턴스화됩니다. (ABBA-기반 프로토콜에 대한 상세 정보는 여기에서 확인 가능합니다. 컨테이너화와 가상화가 어떻게 이루어지는지는 컨테이너화 & 탈중앙화 인프라의 미래에서 확인하실 수 있습니다.)

몇몇 검증인들은 SGX을 사용해본 경험이 있는 반면 다른 이들은 설치 방법 및 가용성 관련해서 새로 습득해야 했습니다. 이번 경험을 바탕으로 몇몇 기능들을 도입했으며(SGX 월렛 백업도 그 중 하나), 로컬 SGX와 네트워크 SGX 간의 차이가 더 명확해지도록 조치했습니다(노드 클러스터는 네이티브 SGX 서버에서 실행되거나 네트워크화된 SGX 서버를 사용하여 디지털 키 생성 등의 SGX 의존성 작업들을 수행할 수 있음).

이러한 과정에서 클라우드 제공자와 하드웨어 설치에 대해서도 훌륭한 피드백을 여럿 받았습니다. 몇몇 검증인들은 자체적인 전용 SGX 서버를 실행한 반면 다른 이들은 다양한 클라우드 제공자를 사용해보며 그 설정과 성능을 분석했습니다. 몇몇 클라우드 제공자는 활용하기 쉬웠지만 다른 제공자들은 적합한 환경설정을 맞추기 위해 추가적인 노력이 필요했습니다. 전반적으로 검증인들이 노드를 확립시키고 SGX 기반 칩셋의 장점을 충분히 활용하기 위해 들인 노력들이 인상 깊었습니다.

검증인 위임 및 바운티 지급 테스팅

또 다른 중요한 테스팅 영역은 검증인 및/혹은 대리인 트랜잭션 플로우 입니다. 위임 지원은 SKALE 네트워크에서 중요한 요소입니다. SKALE 토큰 프로토콜을 통해 향상된 위임 작업을 확인하기 위해 해당 영역에 대한 테스팅이 반드시 필요했습니다. 검증인들은 검증인 월렛을 사용하여 바운티를 지급 받고 위임 작업을 관리하기 때문에 SGX 월렛은 SKALE 네트워크 트랜잭션을 향상시키는 데 핵심적인 역할을 합니다. 검증인들에게 바운티가 지급되면, 대리인 역할을 하는 검증인들에 대한 지급으로 이어지는 구조인 것이죠. 바운티 및 수수료 회수도 테스팅 단계에 포함되었습니다.

현재까지의 교훈

인센티브화된 테스트넷의 초기 단계에서 큰 문제는 없었습니다. 한 노드의 컨테이너가 이더리움에 지나치게 많은 호출을 보내 일일 트랜잭션 제한에 걸리게 됐지만, 해당 이슈는 식별되고 해결됐습니다.

또 다른 이슈는 SKALE Daemon 내의 코드와 SGX 서명 생성 인터페이스와 관련된 문제였으며, 몇몇 조건들이 성능에 영향을 끼치고 있었습니다. SKALE 팀은 해당 알고리즘 이슈를 식별하고 해결하여 성능에 미치던 악영향을 제거했습니다. 또한 디지털 키 생성 및 BLS 퍼블릭 키 서명과 연관된 몇몇 암호학 이슈들도 해결하고 SKALE 메인넷에 변경 사항들을 적용했습니다.

다른 모든 이슈들은 문서화, 기능 요청, 하드웨어 조정 등에 해당됐습니다. 몇몇 검증인들은 설명서에 특정 주제들 관련 정보가 누락되어, 이들에 대한 사전 지식을 요구한 설치 과정들에서 어려움을 겪었습니다. 다른 검증인들은 특정 CLI 커맨드를 요청하여 노드 설치와 운영을 더 원활하게 했습니다. 또 다른 이들은 클라우드 상품이나 물리적 설치에 따른 하드웨어의 환경설정 관련 이슈들을 식별하였습니다. 대부분의 요청들은 조치 되었거나 곧 조치될 예정입니다(네트워크의 통제 범위에서 벗어난 환경설정 이슈들은 제외).

향후 추진 사항

현재 테스트넷 버전에서 진행될 테스팅이 아직 몇 단계 남았습니다. 우선 SKALE 체인들이 생성되고 각각에 하위노드가 랜덤으로 배정될 것입니다. 각 스왑 포인트에서 블록 분석, 검증과 함께 하위노드 순환이 시행될 것입니다. 예측불가한 조건들도 도입되어 검증인들이 노드 복구, 손실 없는 트랜잭션에 대한 합의 중단/재개 등 SKALE 체인 관련 작업들을 경험할 수 있도록 진행될 것입니다.

노드 고장 시의 노드 교체도 테스팅 됩니다. 노드나 하위노드가 다운되었을 때 해결해달라고 연락할 기술 지원 팀은 없습니다. 다만 각 노드는 특정 시점에 대한 스냅샷을 찍습니다. 노드/하위노드가 다운되면 새로운 하위노드가 해당 체인으로 스왑되고, 이 과정에서 찍어둔 스냅샷이 적용되어 새로운 하위노드가 체인에 따라갈 수 있도록 합니다(SKALE 체인들이 자가 복구할 수 있도록 하는 것이죠). 이러한 자가 복구 역량은 QA 테스트넷에서 심층적으로 테스팅 되었으며, SKALE 네트워크의 마스터 코드베이스에 통합될 마지막 컴포넌트입니다. 노드 복구 역량에 대한 테스팅은 다음 테스트넷 단계들에 추가되어 있습니다.

결론

테스트넷에서 검증인과 함께 일해보는 경험은 전반적으로 아주 값졌습니다. 검증인들의 지식은 놀라웠으며 노드 설치와 운영 관련 개선 사항 도출에 많은 도움이 되었습니다. 이들은 최고의 질문들을 던졌으며, SKALE 팀이 올바른 답변을 얻을 수 있도록 계속해서 의문점들을 전달했습니다.

검증인들과의 소통을 통해 다른 네트워크들과 비교했을 때, 특히 컨테이너화와 가상화 관련해서는 SKALE에 차세대 설계가 적용되었다는 점을 깨닫을 수 있었습니다. 두 기술은 유연성과 확장성을 제공했지만, 설치와 운영 측면에서 상당한 학습 곡선을 요구했습니다. 물론 학습 가능한 부분들이었으나, 기존 네트워크 기술 스택에서 벗어난 내용이었기 때문에 네트워크 인프라의 작동 원리에 완전히 적응하는 데에는 어느정도의 시간이 소요되었습니다.

SKALE 팀은 SKALE 네트워크가 컨테이너화와 가상화를 통해 더 발전했다고 판단하며, 처리량, 운영상의 유연성 등의 장점들을 갖췄기 때문에 이러한 접근이 추후에 많이 참고될 것이라고 생각합니다. 검증인들이 보여준 성원에 매우 감사하며, 실제 프로덕션 환경에서 함께하기를 고대합니다.

SKALE 네트워크 개요

SKALE 네트워크는 오픈소스 탄력적 블록체인 네트워크 프로토콜입니다. 프로토콜의 목표는 풀스테이트(full state) 스마트 컨트랙트를 실행하는 비용 효과적인, 고성능 사이드 체인을 신속하고 쉽게 생성할 수 있도록 하는 것입니다. SKALE 네트워크는 탈중앙화, 보안성을 타협하지 않으면서 높은 속도와 성능을 제공하고자 합니다. SKALE 네트워크를 Telegram(@SkaleOfficial), Twitter(@SkaleNetwork), Discord(www.skale.chat)에서 팔로우 할 수 있으며, 웹사이트(www.skale.network)를 방문하거나 SKALE 개발자 포털(skale.network/docs)에서 개발자 문서를 확인하고 Github(github.com/skalenetwork)에서 코드를 확인할 수 있습니다.

Build on SKALE

The SKALE Innovator Program for developers includes grants, consulting, Marketing & PR, engineering support, QA support, and investor introductions.

Apply to the Innovator Program