향 무 환 도

기술

사이버베인은 정보를 안전하게 처리하고, 거래하며, 공유할 수 있는 블록체인 기반의 데이터베이스 네트워크이며, 기존의 블록체인 기술로는 충족시킬 수 없었던 스토리지 및 처리 요건을 갖추고 있습니다.

그것이 가능한 이유는, 사이버베인은 DAG 기술을 개선하여 리소스를 절약하는 새로운 합의 매커니즘을 도입하였고, 많은 양의 데이터 처리 및 수익화를 위해 DAG 기술에 최적화 될 수 있도록 솔리디티 언어를 개선하였기 때문입니다.

전통 블록 체인 디자인

DAG란 무엇인가?

DAG(Directed Acyclic Graph, 방향성 비사이클 그래프)는 여러 가지 측면에서 기존의 블록체인과 다른 점이 있습니다. 가장 중요한 차이점은 DAG 원장 기반의 트랜잭션은 채굴되어야 하는 블록 안에 포함 및 검증될 필요가 없다는 점입니다. DAG 네트워크에서는 노드들이 P2P 기반으로 각자의 트랜잭션을 검증합니다. 트랜잭션을 일으키고자 하는 모든 노드들은 다른 두 개 노드들의 트랜잭션을 검증해야 하며, 이는 연결된 이벤트의 순서(일명 "방향성 그래프")를  생성하게 됩니다.

왜 DAG인가?

무엇보다 DAG는 올바른 목적으로 올바르게 사용된다면, 블록체인의 확장성 문제를 해결할 수 있는 잠재력을 가지고 있기 때문입니다. 각각의 거래는 이전에 승인된 두 개의 거래를 포함하고 있어 네트워크 속도는 그 규모에 따라 기하급수적으로 증가합니다. 블록과 채굴이 필요 없다는 것은, 트랜잭션은 말 그대로 "즉시" 검증되며, "블록 크기 논쟁"은 더 이상 무의미하고, 해사파워의 집중화에 따른 위험성 또한 크게 완화됨을 의미합니다.

블록과 채굴이 불필요하다는 것은 DAG에서는 합의 작업이 기존의 블록체인과는 다르게 유지됨을 의미하기도 합니다. 이론적으로 설명하자면, P2P 거래 증명 매커니즘 자체가 합의-보존을 내장하고 있습니다. 그러나 다수의 공격을 방어하기 위해서 대부분의 DAG 원장은 비트코인의 '작업증명방식(Proof-of-Work)'을 차용하여 거래 검증에 인위적인 비용을 발생시키고 있습니다. 경제적으로 공격하지 못하게 막는 것입니다. 그러나 PoW는 에너지 소모가 심하며 DAG 기술에는 불필요한 요소로써 블록체인을 오히려 비효율적으로 만듭니다.

사이버베인은 이 문제를 일명 '기여증명방식(Proof-of-Contribution)'이라고 불리는 DAG에 최적화된 새로운 합의 알고리즘을 개발하여 해결하였습니다. PoC는 노드가 원장의 거래 내역을 기록하기 위해 기부한 디스크 공간을 측정하고, 그에 상응하는 보상을 제공합니다. 디스크 공간이라는 것은 한정된 자원이기 때문에 PoC는 검증 과정에서 다른 노드와 경쟁하기 어렵게 만드는 장애물 역할을 하게 되며, 이는 PoW와 마찬가지로 경제적으로 공격하지 못하게 됨을 의미합니다. PoW가 CPU/GPU를 리소스를 사용하는 것처럼 PoC도 디스크 공간을 리소스로 사용하는 것은 동일하지만, CPU/GPU는 말 그대로 낭비되는 것과는 달리 디스크 공간은 사이버베인 네트워크에서 유용하게 사용됩니다.

고전적인 블록체인 설계

사이버베인의 분산형 데이터베이스에서는 트랜잭션이 P2P 기반의 승인으로 개별 기록되기 때문에, PoW와 PoS 블록체인처럼 모든 노드들이 네트워크 전체의 트랜잭션 내역을 가지고 있을 이유가 없습니다. 이는 "샤딩(Sharding)"의 가능성의 시사합니다. 샤딩이란 데이터베이스 파티션의 한 종류로 대용량의 데이터베이스를 효율적으로 처리하기 위해 데이터 샤드(data shard)라고 불리는 작은 단위로 분산하여 저장하는 것을 의미하며, 사이버베인 노드는 자신의 트랜잭션 내역 또는 트랜잭션에 필요한 스마트 컨트랙트와 연관된 데이터 샤드만 가지고 있으면 됩니다. 이러한 접근 방식을 통해 사이버베인은 전체의 데이터베이스를 스마트 컨트랙트 형태로 유지할 수 있습니다.

DAG 중앙집중화 문제 해결

개 선 된 DAG 디자인

그러나 기존의 DAG 기술에는 작은 단점을 가지고 있었습니다. 지금까지 제출된 대부분의 설계안은 진정한 의미로 분산되어 있지 않았고, 다양한 공격 벡터의 가능성을 줄이고 거래의 "공식적인" 순서를 만들기 위해 특권을 가진 "목격 노드(Witness Nodes)"를 설정하였습니다. (혹은 해석의 여지를 남겨 놓기도 합니다.) 이러한 목격 노드는 네트워크 개발자가 지정하거나 사용자들에 의해 선출됩니다. 그러나 이러한 단일 통제 또는 실패 지점의 존재는 분산화 및 정지적인 통제로부터 자유롭다고 주장하는 시스템의 심각한 설계 결함을 의미합니다.

사이버베인은 기여증명방식 합의 알고리즘을 통해 해당 결함을 해결하였습니다. 목격 노드를 지정하지 않는 대신 사이버베인은 사이버베인의 모든 원장을 저장하고자 자원하는 풀 노드(Full Nodes) 네트워크를 유지합니다. 어떤 노드도 풀 노드 네트워크에 참여할 수 있으나 참여하기 위해서는 디스크 공간이라는 희소 자원을 제공해야 합니다. 이는 공격 노드가 단 한번의 이중 지불 공격을 하기 위해서는 사이버베인 전체 네트워크의 스토리지 용량과 경쟁해야 한다는 뜻으로 사실상 불가능에 가깝습니다. 이것이 바로 개선된 DAG 설계입니다.

솔리디티 개선

사이버베인은 자체적으로 블록체인 기반의 데이터베이스를 유지할 수 있도록 설계되었습니다. 이는 데이터 필드, 행, 열 조작과 같은 모든 데이터베이스 작업들이 블록체인 트랜잭션을 통해 매개된다는 뜻입니다. 이러한 작업이 제대로 작동하기 위해서 사이버베인은 솔리디티 컨트랙트 언어에 데이터 처리에 특화되어 있는 기능을 추가하였습니다. 데이터베이스에 저장된 데이터를 바로 수익화할 수 있는 기능도 추가하였습니다.

사이버베인은 목격 노드를 제네시스 스마트 컨트랙트(Genesis Smart Contract)를 기반으로 한 알고리즘 솔루션으로 대체하여 위 문제를 해결하였습니다. 제네시스 스마트 컨트랙트는 원장의 초기 입력값으로 기재되어 있으며, 미래에 발생하는 모든 트랜잭션의 참조 포인트이기도 합니다. 즉, 네트워크에서 발생하는 모든 거래는 앞서 발생한 트랜잭션하고만 연결되어 있는 것이 아니라 제네시스 컨트랙트와도 연결되어 있는 것입니다. 이러한 연결을 통해 기존의 블록체인과 마찬가지로 일종의 합의된 "사건 순서"와 객관적인 "타임스탬프"가 만들어집니다.