샤딩 기술과 Trias의 샤딩 MVP
블록체인의 개발에는 두 가지 핵심 요인이 있는데 하나는 사생활과 데이터의 권리이고 다른 하나는 블록체인의 용량 확장, 즉 블록체인 성능의 향상입니다.
개인 정보 보호 및 블록체인 데이터 권한은 이전 기사에서 이미 언급되었으며, 오늘날 우리는 블록체인의 데이터 확장 가능성에 대해 주로 논의합니다.

블록체인을 확장해야 하는 이유는 무엇입니까?
Bitcoin과 Ethereum의 처리량을 살펴봅시다. Bitcoin은 약 7 TPS 이고, 에테움은 약 20 TPS 인데, 중앙집중식 VISA는 얼마나 많은 트랜잭션을 가지고 있습니까? 약 8000 TPS입니다. 따라서 블록체인에 결제시스템을 배치하면 블록체인의 성능이 결제시스템의 처리량 요건을 충족시키지는 못할 것입니다.
마치 고속도로 통행료 탑승구와 같습니다. 우리가 통행료를 받는 게이트를 하나만 열면, 이 통행료 관문의 작업 효율이 매우 낮기 때문에, 통행료 관문을 벗어나 많은 수의 차량이 정체될 것입니다. 하지만 10개 이상의 톨게이트를 열면 교통 체증이 없어질 때까지 교통 체증이 크게 완화될 것입니다. 톨게이트가 별도의 체인으로 간주될 수 있다면, 샤딩 기술은 블록체인의 처리량을 높이기 위해 여러 개의 톨게이트를 설치하는 것입니다.
샤딩 기술은 데이터베이스를 여러 조각으로 나누는 기존 개념의 확장 기술인 데이터베이스 확장 기술에서 비롯되었습니다. 데이터베이스를 여러 조각으로 나누고, 이러한 조각들을 다른 서버에 배치합니다. 이러한 다른 서버의 데이터는 동시에 처리할 수 있습니다. 동일한 시간과 환경 에서 처리 속도는 기하급수적으로 증가합니다. 이 샤딩 기술의 적용은 네트워크의 노드를 여러 체인에 분산할 수 있는 다른 조각으로 나누는 것입니다. 각 샤딩은 서로 다른 트랜잭션을 병렬로 처리하여 네트워크 동시성을 향상시킬 수 있으며, 이를 TPS라고도 합니다.

블록체인 샤딩은 동적 용량 확장으로 특징지어집니다. 노드 수가 증가함에 따라 블록체인의 성능도 증가합니다. 네트워크를 조각조각으로 분할하면 동시에 더 많은 트랜잭션을 처리 및 검증할 수 있습니다.
단, 비연결거래는 병렬적으로만 처리할 수 있으며, 관련 거래의 경우 샤딩 성능 개선이 영향을 받습니다.
따라서 블록체인에 샤딩 기술을 적용하는 데에는 고유한 장점과 과제가 있습니다. 현재 블록체인에 적용된 주요 샤딩 기술은 네트워크 샤딩, 트랜잭션 샤딩과 상태 샤딩 입니다.
네트워크 샤딩
네트워크 샤딩은 조각에 안전하게 보존할 수 있는 노드를 결정하는 메커니즘의 개발입니다. 이것은 많은 특정 조각들을 통제하는 개체들에 의해 시작된 공격을 피할 것입니다. 랜덤 샘플링은 일반적으로 악의적인 노드가 단일 조각을 과다하게 채우는 것을 방지하기 위해 사용됩니다.
트랜잭션 샤딩
트랜잭션 샤딩은 사용자 트랜잭션의 입력 및 출력 데이터와 알고리즘(해시 등)을 통한 트랜잭션 데이터의 샤딩입니다. 트랜잭션 샤딩은 사용자 트랜잭션의 알고리즘 기반 (해시 등) 데이터 입력 및 출력을 통한 트랜잭션 데이터의 샤딩을 말합니다. 그러나 이 방법은 데이터가 단편 간에 통신하지 않는 한 이중 지출 공격 (double spent attack) 을 효과적으로 피할 수 없지만, 트랜잭션 처리량을 늘리는 단편화의 목적을 훼손할 수도 있습니다.
그러나, 거래자의 주소 정보를 기반으로 한 단편화는 교차 분할 커뮤니케이션 없이 이중 지불 공격 (double spent attack) 을 효과적으로 탐지할 수 있습니다.
상태 샤딩
상태 샤딩 (state sharding) 은 블록체인 데이터를 다른 상태의 데이터로 나누는 기술입니다. 고버넌스의 샤딩 처리의 경우 노드를 재배포하는 것은 까다롭습니다. 특정 파편은 상태의 일부만 보존할 것이고 네트워크 재설정 과정에서 동기화가 완료되기 전에 전체 시스템이 실패할 수 있습니다.
하지만, 트라이어스는 새로운 기술 방향을 탐험합니다. 트라이어스는 트랜잭션 샤딩 기술과 상태 샤딩 기술을 결합함으로써 각 기술의 단점을 보완하고 샤딩 기술을 블록체인에 더 잘 적용할 수 있습니다. 실제 블록체인에 기초하여, Trias 샤딩 MVP는 각 샤딩 거래의 처리를 조정하기 위해 메인 체인에 합류합니다. 또한, 로드 밸런싱과 데이터베이스는 트랜잭션 요청을 분산하고 계정 데이터를 각각 저장하기 위해 이 기준에 추가됩니다.
특정 구조에 대해서는 다음 그림을 참조하십시오:

LoadBalance는 로드 밸런싱 계층이며 모든 트랜잭션 요청은 LoadBalance를 통해 처리됩니다. 현재 두 가지 유형의 요청이 있습니다.
하나는 쿼리 요청입니다. LoadBalance는 스토리지 쿼리를 직접 요청하고 반환합니다.
트랜잭션 요청도 있습니다. LoadBalance는 트랜잭션에 포함된 체인을 가져오도록 스토리지를 요청하고 처리를 위해 요청을 Root_Chain으로 전달합니다. 현재 LoadBalance는 Openresty를 통해 구현됩니다.
번역 결과 수정
계정 이름, 체인 ID, 밸런스 등을 포함한 트랜잭션 계정 데이터를 저장하는 스토리지 계층입니다.
LoadBalance만 쿼리와 업데이트를 포함하여 스토리지와 직접 상호 작용합니다. 스토리지는 현재 etcd를 통해 구현됩니다.
Root_Chain은 체인을 통해 거래할 때 거래 자격 증명을 생성하고 각 Child_Chain은 기본 체인의 자격 증명에 따라 작동합니다.
Root_Chain은 메인 체인으로서, 체인을 통해 거래할 때 거래 자격 증명을 생성하며, 각 Child_Chain은 메인 체인의 자격 증명에 따라 작동합니다.
현재 버전의 Child_Chain은 Root_Chain의 요청을 받았을 때 작동하며, Root_Chain과 Child_Chain의 유효성 검사는 아직 구현되지 않았습니다.
현재 Root_Chain은 Python을 통해 구현되며, API는 LoadBalance의 요청을 받아들여 체인을 교차하고 트랜잭션 생성 자격 증명을 생성하고 결과를 LoadBalance로 반환할 것인지 여부를 결정합니다.
Child_Chain은 Root_Chain 요청을 수락하여 트랜잭션을 처리하는 별도의 노드와 데이터가 있는 별도의 블록체인입니다.
Tendermint의 계정이 거래 시나리오를 기본 제공 앱으로 제공하는 Tendermint를 통해 현재의 합의에 도달합니다.
Tendermint의 계정이 거래 시나리오를 내장된 앱으로 제공한다는 점에서 현재 합의는 Tendermint를 통해 이루어집니다.
Trias 공식 홈페이지 : https://www.trias.one
Trias 공식 카카오 오픈채팅방 : https://open.kakao.com/o/g2pbsDT
Trias 공식 트위터 : https://twitter.com/triaslab
GitHub: https://github.com/trias-lab
Telegram(English): https://t.me/triaslab
Telegram(公告): https://t.me/TriasOfficial
Telegram(中文): https://t.me/TriasChinese
Medium:https://medium.com/@Triaslab
Reddit: https://www.reddit.com/r/Trias_Lab
Block Patch 공식 사이트 : http://www.blockpatch.kr/
Block Patch 공식 카카오 오픈 채팅방 : https://open.kakao.com/o/gtlP3PH