요전날 SKALE Labs의 CTO/공동설립자인 Stan Kladko와 함께 SKALE 네트워크의 설계와 그것이 다른 이더리움 확장이나 레이어 2 솔루션과 다른 점에 관해 그의 생각을 들을 기회가 있었습니다. 우리는 생산 시스템 대 연구 프로젝트, 수학적 알고리즘, 이진 합의, 블록 제안, 모듈 방식, 자가 치유 네트워크 등에 관해 대화를 나눴습니다.

대화 중에 그는 블록체인의 내부 동작에 관한 여러 세부 사항을 설명하고, 보안을 희생하지 않으면서 합의 알고리즘을 더 빠르고 에너지 및 자원 효율적으로 만드는 방법을 설명해 주었습니다.

SKALE 체인과 관련한 설계의 결정에 관해 설명해 주시겠습니까?

Stan: 우리는 SKALE 네트워크가 이더리움과 호환되도록 설계했습니다. 이더리움에서 실행할 수 있는 것이라면 무엇이든 SKALE에서도 실행할 수 있으며, 훨씬 더 빠르게 실행할 수 있습니다. 또한, 우리는 SKALE 체인 내부의 모든 단일 지점이 제대로 설명되고 특정한 가정하에서 수학적으로 증명 가능한 알고리즘을 갖도록, SKALE 체인을 수학적으로 증명할 수 있도록 설계하고 구축했습니다. 이러한 가정은 모든 기능에서 동일합니다.

우리가 파악한 바로는, 이 체인은 현재 시장에서 수학적으로 증명할 수 있는 유일한 지분 증명 블록체인입니다. 대학의 학술적인 논문은 많지만, 생산 품질 시스템과 관련해서는 우리 시스템이 최초라고 생각합니다. 누구나 수학적으로 기틀이 마련된 시스템에 자금을 보관하기를 원하기 때문에 이러한 엄격함은 정말 중요합니다.

SKALE 체인은 다른 블록체인과 어떻게 다른가요?

Stan: SKALE은 차세대 블록체인입니다. 이전 세대의 블록체인(비트코인, 이더리움과 그 밖의 거의 모든 블록체인)에는 고정된 블록 시간이 있습니다. 이는 블록이 일반적으로 매 10초나 15초 등 특정 시간 순서로 해제됨을 의미합니다. SKALE을 사용하면 필요에 따라 블록을 해제할 수 있습니다. 트랜잭션이 없으면 블록도 없기 때문에 CPU 시간이 절약됩니다. 누군가 들어와서 트랜잭션을 발행하면 몇 초 후에 새 블록이 나타납니다.

이번 최신 릴리즈에서는 사람들이 일종의 신호나 체인이 작동하고 있다는 증거를 보고 싶어하기 때문에 여전히 10초마다 빈 블록을 생성하고 있습니다. 이론적으로는 SKALE 체인을 운영하면서 블록을 생성하지 않거나 한 달에 한 번만 생성할 수 있습니다. 이와 같은 필요에 따른 접근 방식을 통해 잠재적으로 동일한 노드에 많은 체인을 보유하고 사용자를 위해 비용과 리소스를 절약할 수 있습니다.

일반적으로 사람들은 단일 블록체인을 실행하고 전체 노드를 사용합니다. 노드 하나당 많은 체인을 갖는 것은 특이합니다. 우리의 합의 알고리즘이 발전함에 따라 아주 많은 블록체인에 걸쳐서 노드를 분할할 수 있으며, 검증인 측에서는 정말 편리합니다. 또한, 노드를 아주 비싼 하드웨어에서 실행할 필요가 없습니다. 저렴한 AWS나 Digital Ocean 머신을 지원할 수 있습니다. 일반적인 SKALE 노드는 중간 크기의 가상 머신에서 실행되며 비용은 한 달에 수백 달러에 불과합니다.

SKALE의 합의 버전이 어떻게 다르며 이것이 왜 중요한지 설명해 줄 수 있나요?

Stan: 블록체인 세계에서는 항상 생산 지향 시스템과 학술 연구 시스템 사이에 분열이 있었습니다. 실용적인 수준에 비트코인, 이더리움과 Cosmos, Tendermint와 같은 지분 증명 시스템이 있습니다. 학계에는 ABBA와 그 밖의 수학적으로 증명 가능한 알고리즘이 있습니다.

Tenderment와 같은 실제 시스템은 ABBA 합의 또는 그 밖의 이진 합의 알고리즘을 사용하지 않습니다. 대신에 엔지니어가 만들어낸 그럴듯한 증거를 사용합니다. Tendermint는 지금까지 최고이고 Polkadot이 두 번째로 우수하지만, 덜 안전하고 덜 정확합니다. 그런 다음 EOS에서 사용하는 수학적 기초가 훨씬 빈약한 고급 알고리즘으로 이동하게 됩니다. 그들의 논문을 읽어 보면 수학적 증거가 없기 때문에 연구 결과물이라고 할 수 없을 정도의 수준입니다.

어떤 엔지니어가 "이것은 특정 방식으로 실행되고 있습니다만, 어디에서 문제가 발생할 수 있는지 생각해 봅시다."라고 말합니다. 그런 다음, 발생할 수 있는 나쁜 상황에 대해 방어하는 방법의 몇 가지 근거를 제시합니다. 그들은 한 가지 문제를 고칠 것이고, 다른 문제가 발생하면 그 문제를 해결할 것입니다. 그러나 현재까지 이진 합의나 다른 연구 알고리즘을 프로덕션 시스템에 주입한 적은 없었습니다.

사람들이 엔지니어의 임시변통을 위한 수정 그 이상을 원한다면 보안 취약성이 없다는 확실한 증거가 필요합니다. SKALE은 이 부분에 관해 수학적 연구와 현실 세계 사이의 간극을 메우는 일을 합니다. 우리는 모든 것이 처음부터 끝까지 증명 가능하다고 주장 가능하다고 굳게 믿습니다. 그것이 우리의 주장입니다. 다른 프로덕션 알고리즘은 다양한 상황에서 작동할 수도 있기 때문에, 그들이 나쁘다고 말하는 것은 아닙니다. 수학적으로 증명 가능한 무언가를 만드는 데 관심이 있다는 것뿐입니다.

SKALE은 어떻게 2초 블록 시간 이하에 도달할 수 있나요?

Stan: 대부분 지분 증명 알고리즘은 간단한 방식으로 작동합니다. 누군가 블록체인을 가지고 있고 블록체인에는 블록을 추가해야 하며, 블록이 나타나면 이전 블록에 붙습니다. ETH2, Tendermint, EOS와 Polkadot 같은 대부분 지분 증명 알고리즘을 보면 단일 블록 제안자를 사용한다는 점에서 거의 동일한 방식으로 작동합니다.

어느 시점에서든 블록을 제안할 수 있도록 유일하게 지정된 노드가 있습니다. 자신의 블록이 다른 사람들에 의해 정상으로 간주되면 체인에 추가되고 다른 블록 제안자가 선택됩니다. 이 선택은 순차 순환 대기 방식, 무작위 선택 또는 그 밖의 메커니즘에 따라 수행될 수 있습니다.

이 시퀀스는 제안자가 블록을 제안할 수 있는 고정된 기간이 있다는 점에서 시간 분할됩니다. 지정된 제안자가 블록을 제안하지 않으면, 옵션이 다음 제안자에게 넘어가는 타임아웃 기간도 있습니다. 예를 들어, Eth2는 10~15초의 타임아웃 기간을 가지며, 이는 각 지정된 제안자가 블록을 제안할 만큼의 시간을 갖는다는 것을 의미합니다. 그것은 또한 그 기간이 모두 지나갈 때까지 다른 사람들이 블록을 제안할 수 없다는 것을 의미합니다. 이는 또한 제안자가 응답하지 않거나 더 나쁘게는 악의적인 것으로 간주되지 않도록 트랜잭션이 없을 때는 빈 블록을 제안해야 할 수도 있음을 의미합니다.

SKALE의 합의 알고리즘은 체인을 구성하는 모든 노드가 블록 후보를 제안할 수 있다는 점에서 다릅니다. 이는 체인의 16개 노드 모두가 동시에 후보를 제안할 수 있음을 의미합니다. 총 16개의 후보 중 1개를 선발합니다. 알고리즘 이면의 수학을 기반으로 높은 비율의 후보가 유효한 후보로 추정되며, 이는 타임아웃이 있을 수 없음을 의미합니다. 즉, 고정된 기간이 필요하지 않습니다. 또한, 블록이 추가된 후에 노드가 즉시 새 후보를 제출한다는 점에서 빠른 체인 생성을 가능하게 합니다.

모든 노드가 동시에 제안을 제출하면 불필요한 네트워크 트래픽이 발생하지 않나요?

Stan: 이 경우에는 그렇지 않습니다. 일반적으로 16개의 블록 제안을 제출하게 하는 것은 모든 노드가 다른 모든 노드에게 제안을 보내야 하기 때문에 네트워크 트래픽 측면에서 비용이 많이 듭니다. 이 비효율성은 실제로 비교적 쉽게 해결할 수 있습니다. 이 문제는 매우 진보적인 수학적 알고리즘을 사용하여 Honeybadge에서 해결되었습니다. 우리는 더욱 실용적이고 간단한 방법으로 해결했습니다.

16개의 노드가 있고 이들에서 블록 제안을 수행할 때 모든 노드에는 보류 중인 트랜잭션 대기열이 있으며 서로에 대한 가십 트랜잭션이 있습니다. 이러한 대기열과 이러한 가십은 이더리움에서 발생하고, 비트코인에서 발생하며, 본질적으로는 블록체인이 시작될 때부터 존재했습니다.

모든 노드에는 보류 중인 대기열이 있지만 대기열이 정확히 일치하지는 않습니다. 네트워크 지연, 전파 지연, 느린 네트워크 트래픽 등이 있습니다. 그러나 이런 문제에도 불구하고 대기 중인 대기열은 거의 같습니다. 한 노드가 대기열에 트랜잭션이 있는 경우, 다른 노드는 아마도 100밀리 초 후에 트랜잭션을 얻을 수 있지만 대부분 대기열의 99%는 동일하고 1%의 차이는 네트워크 지연에서 비롯된 것입니다.

만약 제가 하나의 제안을 발행하면 당신도 이러한 트랜잭션을 가지고 있기 때문에 실제 트랜잭션을 보낼 필요는 없습니다. 전송해야 하는 것은 트랜잭션의 해시나 지문뿐이므로, 제안을 보낼 때는 매우 가벼운 제안이 됩니다. 실제 트랜잭션이 아닌 기본적으로는 단일 숫자입니다.

해시의 지문을 얻으면 보류 중인 대기열을 살펴보고 트랜잭션을 찾은 다음 제안을 재구성합니다. 이는 트랜잭션을 보내는 것이 아니라 지문을 보내는 것이기 때문에 엄청난 압축입니다. 보류 중인 대기열에 포함되지 않은 트랜잭션이 여러 개 있을 수 있지만, "이 트랜잭션의 99%를 취득했지만, 이 세 개의 트랜잭션에 관해서는 알지 못한다." 라고 말할 것입니다. 이 경우, 해당 3건의 트랜잭션만 보낼 것입니다. 이와 같은 접근 방식 때문에 블록 제안은 매우 가볍습니다. 각 노드가 다른 모든 노드에 자신의 제안을 보내는 것은 큰 문제가 아닙니다.

비트코인, Eth1와 Eth2에서 동일한 메커니즘을 사용하자는 제안이 있었지만 아직까지는 실현되지 않았습니다. 다른 지분 증명 시스템도 이에 대해 생각하고 있지만, 제가 아는 한 우리는 이 아이디어를 실제로 실현한 첫 번째 시스템입니다. 이 때문에 우리의 제안은 말 그대로 비트코인이나 Eth2의 제안보다 100배나 작습니다.

SKALE의 빠른 블록 시간과 유사한 주장을 하는 다른 체인의 차이점은 무엇입니까?

Stan: 중요한 질문입니다. 지분 증명 블록체인은 체인을 생성하는 10~20개의 노드 집합으로 구성됩니다(다음 블록 다음에 다음 블록). "최종 상태"라는 단어는 블록이 정확히 이 블록이 될 것이라고 말할 수 있는 때를 가리킵니다. 일부 블록체인에서는 최종 상태의 달성에 오랜 시간이 걸립니다.

이진 합의가 M 메시지보다 수학적으로 더 빠르게 수행될 수 없다는 것은 수학 문헌을 통해 잘 알려져 있습니다. 100개 노드의 이진 합의를 원할 경우, 수학적으로 증명 가능한 최고의 알고리즘은 노드당 100개의 메시지를 사용하는 것입니다. 각 노드는 기본적으로 다른 모든 노드에 적어도 하나의 메시지를 보냅니다. 1000개의 노드에 대한 바이너리 합의를 원하면 1000개의 메시지를 보내야 합니다.

더 적은 수의 메시지로 이 바이너리 합의를 달성하는 것은 불가능합니다. 지분 증명의 세계에 존재하는 문제는 모든 다음 프로젝트가 다른 프로젝트보다 더 나은 성능을 요구해야 한다는 것입니다. 결국, 그들은 문자 그대로 빛의 속도를 초월하는 시스템을 창조했다고 주장합니다.

Tendermint보다 빠르다고 주장하는 모든 것은 그들이 광속을 초월하는 유형의 논쟁을 끌어들이고 있음을 의미합니다. 이 훌륭한 접근 방식의 백서를 읽을 때 항상 무언가를 숨기려는 사이비 수학 언어가 있다는 것을 알 수 있습니다.

이러한 알고리즘이 작동할까요? 대답은, 예입니다. 그러나 문제는 이러한 알고리즘이 작동하는 이유입니다. 이러한 알고리즘 대부분은 내부적으로 모든 검증인, 모든 노드가 올바르다고 가정합니다. 모든 노드가 적합하다고 가정할 수 있다면, 훨씬 더 빠른 알고리즘을 사용할 수 있습니다. 그러나 블록체인에서 보안 가정이 깨진다면 사람들은 돈을 잃을 수 있습니다.

SKALE에서 우리는 검증인의 1/3이 어느 시점에 나빠질 수도 있고, 여전히 안전한 방식으로 작동할 것이라는 가정 하에 최대한 빠르게 실행한다고 분명하게 명시합니다. 이것은 성능과 보안 사이의 균형입니다. 다른 네트워크에서 모든 검증인이 훌륭하고 더 빠른 시스템을 실행할 수 있다고 말하는 경우가 있지만, 우리가 취하는 접근 방식은 그렇지 않습니다.

SKALE 네트워크의 모듈 방식과 더 확장 가능한 체인 서비스를 허용하기 위해 SKALE에서 수행된 작업에 관해 이야기해 보겠습니다.

Stan: SKALE에서는 될수록 최소한의 코어만 있으면 된다고 생각합니다. 시간을 절약하기 위해 제외할 수 있는 항목이 있다면 그렇게 할 것입니다. 그러나 우리의 체인은 기능을 없애 버리면서 사용자가 시스템을 운영할 수 없도록 하지 않습니다. 우리는 다만 모든 일을 우리가 하려고 해서는 안 된다고 믿습니다. 누군가 SKALE에서 무언가를 개발하고 SKALE을 확장하기를 원한다면 우리는 그들을 방해하고 싶지 않습니다.

SKALE의 완벽한 시나리오는 Linux가 수행되는 방식과 거의 유사한 시스템을 극도로 모듈화하는 것입니다. Linux를 보면 Linux 팀이 신경 쓰는 것은 Linux 커널뿐이라는 점에서 완벽하게 모듈화되어 있습니다. 커널은 매우 느리게 진화하고 있습니다. 30년 동안 개발되어 왔습니다. 다른 모든 작업은 다른 회사와 다른 팀에서 수행합니다. SKALE은 우리가 핵심을 완성하고 사람들이 패키지와 같은 것을 통해 새로운 것을 공개할 수 있는 방법을 제공하는 Linux 커널과 같을 수 있습니다.

패키지와 사용자 정의는 어떻게 작동하나요? 체인 단위로 작동하나요?

Stan: 두 가지 시나리오가 있습니다. 한 가지 시나리오는 기능이 Solidity에서 완전하게 실행 가능한 경우입니다. 이더리움 커뮤니티에 곧 제공될 것으로 생각되는 Eth 패키지 관리자를 이용하면 Linux 설치 프로그램이 작동하는 방식과 유사하게 SKALE 체인에 이를 설치할 수 있습니다. 이는 우리가 선택하기 쉬운 길일 것입니다.

체인을 더욱 근본적으로 수정하려면 사전에 컴파일된 계약을 사용할 수 있습니다. 체인에서 정말 빠른 속도로 무언가를 실행하고 싶다면 Solidity가 다소 느릴 수 있기 때문에 Python이나 C++로 작성하고 싶을 것입니다. 이를 위해 계약에 사전 컴파일로 설치할 수 있는 일반 패키지 관리자를 이용합니다.

이더리움 메인넷의 문제점 중 하나는 포함할 알고리즘에 대한 주관적인 결정이라는 것입니다. 다양한 암호화 접근 방식을 위해 사전에 컴파일된 패키지가 8개 또는 10개 있다고 생각하지만, 암호화 알고리즘은 폭발적으로 증가하고 있습니다. 사람들은 온갖 다양한 일을 하고 있습니다. 이더리움 메인넷의 문제는 포함할 항목을 어떻게든 필터링해야 한다는 것입니다. 우리의 경우, 그것은 바로 당신의 체인입니다. 특정 알고리즘을 원하고 최상의 솔루션을 실행하고 싶다면 이를 패키지에 넣고 실행할 수 있을 겁니다.

네트워크 자가 치유와 생존 가능성이 어떻게 작동하는지 설명할 수 있나요?

Stan: SKALE은 체인이 충돌할 경우의 문제 상황을 해결해야 합니다. 비트코인과 같은 오래된 블록체인을 보면 코드가 매우 간단하고 상대적으로 느리게 실행되므로 충돌이 발생하지 않습니다. 간단한 시스템을 안전하고 버그 없이 만들 수 있기 때문입니다. 이더리움을 사용하면 서비스 거부 공격으로 체인이 충돌한 경우가 한두 번 발생했을 수 있습니다.

지분 증명 시스템을 이용하면 빠르게 실행해야 하므로 더 복잡한 알고리즘을 사용해야 합니다. 복잡한 시스템에서는 충돌 및 재앙에 대한 계획을 피할 수 없습니다. 체인이 죽을 때 시나리오 문제를 해결해야 합니다. 그렇지 않으면 거부당합니다.

소프트웨어의 버그일 수도 있고 AWS 충돌일 수도 있고 네트워크 내의 이벤트일 수도 있습니다. 이를 해결하기 위한 솔루션이 있어야 합니다. SKALE에서는 16개 노드 중 5개 미만의 노드가 죽으면 지분 증명 알고리즘도 이를 인지하지 못하므로 체인은 평소와 같이 계속 작동합니다.

노드가 죽으면 체인에 다시 동기화하는 두 가지 메커니즘이 있습니다. 하나는 단기이고 다른 하나는 장기입니다. 노드가 몇 시간 동안 다운된 경우 다른 노드에 보관되는 블록 캐시가 있습니다. 다시 시작된 노드는 해당 블록을 다운로드하고 따라잡을 수 있습니다. 노드가 장기간 다운된 경우에는 다른 노드 중 하나에서 스냅샷을 가져와서 따라잡은 다음에 체인에 다시 합류할 수 있습니다.

심각한 문제가 발생하고 모든 노드가 죽으면 시스템이 중단됩니다. 노드를 다시 온라인 상태로 전환하고 체인을 시작하거나, 최악의 경우에 스냅샷에서 다시 시작해야 합니다. 모든 노드는 24시간마다 자체 스냅샷을 작성합니다. 향후 더 빠르게 만들겠지만, 첫 번째 릴리즈에서는 24시간입니다. 각 노드는 자체적으로 사본을 저장하지만 누구나 사본을 다운로드할 수도 있습니다. 이는 한 개 또는 여러 개의 노드가 사라졌을 경우에 다른 곳에 저장하여 개발자나 커뮤니티에서 처리할 수 있도록 하기 위한 것입니다.

SKALE에서 일하면서 가장 자랑스러운 것은 무엇인가요?

Stan: 우리 팀은 소프트웨어를 릴리즈하면서 동시에 많은 작업이 돌아가는 방식을 이해한다는 측면에서 많이 성장했습니다. 블록체인은 매우 새로운 주제입니다. 시작할 때는 바로가기 버튼이 없었습니다. 그 당시에 사람들은 우리가 지금 알고 있는 것만큼 많이 알지 못했습니다. 논문을 공부했고 긴 학습 곡선을 밟았습니다. 지금 처음부터 시작한다면 훨씬 더 빨리 개발할 것입니다. 하지만 그 당시에는 미래에서 온 경험이 풍부한 사람을 고용할 방법이 없었습니다.

블록체인은 할 수 있는 것과 할 수 없는 것 사이의 시대를 의미합니다. 즉, 이전 시스템 개발보다 훨씬 더 복잡합니다. 블록체인은 여러 대의 컴퓨터에 존재하며 그 중 일부는 나쁜 짓을 할 가능성이 있는 악의적인 것으로 간주됩니다. 따라서 그것은 다음 단계의 문제입니다. 블록체인 시스템은 시작했을 때 무언가가 가능한지 알 수 없는 가장자리에 있습니다. 이 시점에서도 그대로 실행되는 것이 좋습니다.

사람들이 복잡한 분야에서 전문가가 되는 것을 보는 것도 좋습니다. 이전에는 어려웠던 일이 갑자기 쉬워집니다. 모든 사람은 특정 종류의 서브 시스템에서 전문가가 되었습니다. 팀멤버들은 매우 친절하고 몇 년이 지나가 서로 친구가 되었습니다. 미래에 빠르게 발전할 수 있을 것이라고 생각하기 때문에 SKALE에는 매우 밝은 신호라고 생각합니다. 모두가 미래에 거는 기대가 큽니다. 중요한 성과입니다.