> 웹3.0 > 본문

샤딩의 개념과 작동 방식

PHPz
풀어 주다: 2024-07-17 13:23:52
원래의
1044명이 탐색했습니다.

블록체인 기술은 분산화, 투명성 및 보안 측면에서 전례 없는 잠재력을 제공하지만 확장성이라는 큰 과제도 직면하고 있습니다. 확장성은 블록체인의 트릴레마 중 하나이며, 나머지 두 가지는 보안과 분산화입니다. 블록체인 분야는 항상 위의 세 가지 항목을 동시에 만족시키기 위해 노력해 왔으며, '샤딩'은 이를 활용할 수 있는 전략적 솔루션이다.

샤딩이란 무엇인가요?

샤딩은 기존 데이터베이스 관리에서 차용한 개념으로, 더 큰 데이터베이스를 더 작고 관리하기 쉬운 부분("샤드"라고 함)으로 분할하는 프로세스를 의미합니다. 샤딩은 블록체인 분야에서 분산화 원칙을 유지하면서 확장성을 높이기 위해 사용됩니다. 샤딩은 실제로 블록체인 네트워크를 더 작은 부분으로 나누고, 샤딩된 각 부분은 트랜잭션과 스마트 계약을 병렬로 처리할 수 있습니다.

샤딩은 어떻게 작동하나요?

블록체인 네트워크에서 샤딩이 수행되는 방식을 이해하려면 먼저 블록체인 데이터가 일반적으로 어떻게 저장되고 처리되는지 이해해야 합니다. 데이터를 처리하는 방법에는 여러 가지가 있으며, 아래에서는 순차적 처리와 병렬 처리를 소개합니다.

일반적으로 각 블록체인 노드는 네트워크 내의 모든 거래량을 처리합니다. 이러한 유형의 데이터 처리를 "순차 처리"라고 합니다. 즉, 각 노드는 계좌 잔액, 거래 내역 등 모든 중요한 정보를 유지하고 저장해야 합니다. 기본적으로 각 노드는 모든 네트워크 작업, 데이터 및 트랜잭션을 처리해야 합니다.

이 모드는 모든 노드의 모든 거래를 기록하여 블록체인의 보안을 강화하지만 데이터 처리 속도를 크게 저하시킵니다. 여기에서 데이터 병렬 처리가 시작되어 여러 작업을 동시에 수행할 수 있습니다.

샤딩은 전체 블록체인 네트워크에서 트랜잭션 작업 부하를 분할하거나 "분할"하므로 이 딜레마에 대한 효과적인 솔루션입니다. 이는 모든 노드가 블록체인의 전체 작업 부하를 관리하거나 처리할 필요가 없다는 것을 의미합니다.

반대로 샤딩은 수평 분할을 통해 작업 부하를 분리합니다. 이 프로세스에서 데이터는 수평 하위 집합으로 나누어지며, 각 샤드는 독립적인 데이터베이스 역할을 하며 다른 샤드와 별도로 트랜잭션을 처리할 수 있습니다.

수평 분할과 수직 분할

수평 분할과 수직 분할은 데이터베이스 확장의 두 가지 주요 방법입니다. 두 접근 방식 모두 대규모 데이터 세트를 효율적으로 관리하도록 설계되었지만 작동 방식의 기본은 완전히 다릅니다. 샤딩은 분할 지평선을 구현하는 일반적인 방법입니다.

데이터를 행으로 나누고 수평 분할을 통해 여러 노드(또는 데이터베이스)에 배포할 수 있습니다. 각 노드(또는 데이터베이스)에는 데이터 하위 집합이 포함되어 있습니다. 테이블 내의 각 행은 고유한 엔터티이므로 별도의 행이 데이터 무결성을 손상시키지 않습니다. 분할 지평선의 전형적인 예는 이더리움 및 비트코인과 같은 블록체인 네트워크의 분산입니다.

수직으로 분할된 데이터는 행이 아닌 열로 분할됩니다. 수직 분할의 각 파티션에는 개별 엔터티 또는 전체 데이터 집합의 하위 집합에 대한 데이터가 포함되지만 특정 속성 집합에 대한 데이터만 포함됩니다. 예를 들어 이름, 상태, 설명, 사진 등의 열이 있는 고객 테이블이 있습니다. 수직 분할의 경우 "이름"과 "상태"가 한 테이블에 저장되고 "설명"과 "사진"이 다른 테이블에 저장될 수 있습니다.

왜 수평 분할이 더 인기가 있나요?

블록체인 네트워크에서는 주로 확장성, 분산화 및 보안이라는 세 가지 주요 이유로 수직 분할보다 수평 분할이 선호됩니다.

확장성: 샤딩은 데이터를 관리하기 쉬운 더 작은 "샤드"로 분할하여 솔루션을 제공합니다. 각 샤드는 독립적으로 실행되고 더 많은 트랜잭션을 동시에 처리하여 네트워크 속도와 효율성을 높일 수 있습니다. 수직 분할은 여러 데이터베이스에 열을 분산하므로 전체 트랜잭션 또는 블록 정보 검색이 더 복잡해지고 확장성이 제한될 수 있습니다.

분권화: 블록체인의 핵심 개념과 일치하는 Split Horizon은 분산화를 지원합니다. 노드가 전체 데이터의 일부(샤드 1개)만 처리하면 계산 및 저장 부하가 줄어들어 더 많은 노드가 네트워크에 참여할 수 있습니다. 반면, 수직적 파티셔닝은 완전한 블록 데이터를 이해하고 검증하기 위해 각 노드가 모든 파티션(모든 데이터 열)에 접근해야 한다는 한계가 있습니다.

보안 및 데이터 무결성: 각 샤드(또는 파티션)에는 완전한 거래 데이터가 포함되어 각 노드가 블록체인 부분의 완전하고 정확한 복사본을 포함하므로 분할된 지평선이 데이터 무결성을 유지합니다. 수직 분할은 본질적으로 서로 다른 노드의 블록 데이터를 분할하므로 블록체인 네트워크의 가장 중요한 데이터 무결성과 보안을 보장하기 어렵습니다.

샤딩의 장점은 무엇인가요?

샤딩이 블록체인 기술에 가져오는 잠재적 이점은 아래에서 자세히 살펴보겠습니다.

트랜잭션 속도 향상: 샤딩은 트랜잭션의 병렬 처리를 촉진합니다. 샤딩을 사용하면 트랜잭션을 하나씩 순차적으로 처리하는 대신 여러 샤드에서 동시에 트랜잭션을 처리할 수 있습니다. 각 샤드는 독립적으로 작동하여 트랜잭션 속도를 크게 향상시킵니다. 이는 거래 속도를 높일 뿐만 아니라 전체 네트워크가 더 많은 사용자를 처리할 수 있어 네트워크의 인기를 높일 수 있음을 의미합니다.

Ziliqa는 확장성을 해결하기 위해 샤딩을 사용하는 블록체인 네트워크입니다. 이 샤딩 메커니즘의 도움으로 Ziliqa는 초당 수천 건의 트랜잭션을 처리할 수 있습니다.

처리 및 저장 비용 최소화: 전통적인 블록체인 설계에서는 각 노드가 모든 거래를 저장해야 합니다. 블록체인이 발전함에 따라 하드웨어에 대한 수요도 늘어납니다. 그러나 샤딩을 사용하면 각 노드는 전체 네트워크 데이터의 일부만 처리하고 저장하므로 노드가 네트워크에 참여하는 데 필요한 리소스가 줄어듭니다.

따라서 검증자로 참여하는 참가자가 많을수록 높은 비용을 발생시키지 않으면서 네트워크가 더욱 분산화됩니다. 이러한 방식으로 문제가 완화되고 고가의 고급 컴퓨팅 리소스를 갖춘 개체만이 실제로 프로세스에 참여할 수 있는 것이 아니라 블록체인 네트워크의 민주화된 특성을 유지할 수 있습니다.

네트워크 성능 향상: 샤딩은 네트워크의 전반적인 성능과 용량을 향상시키는 데 도움이 됩니다. 전통적인 블록체인에서는 네트워크에 참여하는 노드의 수가 나날이 증가하고 있으며, 이로 인해 노드 간 통신 및 동기화가 증가하지만 성능은 저하됩니다.

그러나 샤딩은 이러한 상황을 변화시킵니다. 각 샤드는 독립적으로 병렬로 실행될 수 있으므로 시스템은 더 많은 트랜잭션과 계산을 처리할 수 있습니다. 새로운 노드는 전체 네트워크가 아닌 샤드에만 추가되므로 네트워크 확장 용량이 늘어납니다. 효율성이 향상되고 거래가 더욱 원활해지며 더 나은 사용자 경험을 보장합니다.

샤딩 기술의 향후 개발과 개선은 추가적인 이점을 가져오거나 기존 이점을 강화하여 블록체인 생태계를 지속적으로 최적화할 수도 있다는 점을 기억하세요.

샤딩의 한계는 무엇인가요?

샤딩은 많은 잠재적 이점을 통해 블록체인 네트워크를 더욱 효율적으로 만드는 데 도움이 되지만 그 과정에서 고유한 일련의 과제도 제시합니다. 샤딩으로 인해 발생할 수 있는 잠재적인 취약점은 다음과 같습니다.

단일 샤드 탈취 공격: 샤딩된 환경에서 단일 샤드를 장악하는 데 필요한 컴퓨팅 성능은 전체 네트워크를 장악하는 데 필요한 컴퓨팅 성능보다 훨씬 낮습니다. 따라서 단일 샤드는 "1% 공격" 또는 "샤드 탈취"에 더 취약합니다. 전체 네트워크를 공격하는 것에 비해 적은 수의 리소스를 가진 공격자가 단일 샤드를 점유하는 것이 가능합니다.

교차 샤드 거래: 다양한 샤드(교차 샤드)에서 거래를 수행하는 것은 독특한 문제에 직면하게 됩니다. 교차 샤드 거래는 복잡하며 부주의한 관리로 인해 이중 지출 문제가 발생할 수 있습니다. 거래 중에 하나의 샤드가 다른 샤드의 상태를 정확하게 추적할 수 없는 경우 사용자는 "이중 지출 문제"를 일으키기 위해 이 취약점을 악용할 수 있습니다.

데이터 가용성 문제: 샤딩을 사용하면 전체 네트워크 상태를 복잡하게 유지 관리할 수 있습니다. 특정 샤드를 유지하는 노드는 오프라인이기 때문에 필요할 때 이러한 샤드를 사용할 수 없으며 이로 인해 전체 네트워크를 중단시키는 데이터 가용성 문제가 발생할 수 있습니다.

네트워크 보안: 샤딩에는 샤드 간의 로드 균형을 맞추기 위해 안정적인 프로토콜 구현이 필요합니다. 부적절한 작동으로 인해 데이터 분포가 고르지 않거나 리소스 불균형이 발생하여 네트워크가 불안정해질 수 있습니다.

노드 동기화: 노드 동기화는 서로 다른 노드 간에 정보를 공유하고 업데이트하는 데 걸리는 시간으로 인해 네트워크 지연을 일으킬 수 있습니다. 또한, 노드 처리 능력이 저하되거나 네트워크 연결이 지연되는 경우 전체 동기화 프로세스가 느려지고 블록체인 네트워크의 전반적인 성능이 저하될 수 있습니다.

이더리움에서 샤딩이 구현되나요?

Ethereum은 Ethereum 2.0 업그레이드의 일부로 샤딩 구현을 계획했습니다. "Eth2" 또는 "Quiet Phase"라고도 알려진 이더리움 2.0은 네트워크 속도, 효율성 및 확장성을 높여 더 많은 트랜잭션을 처리하고 혼잡을 완화할 수 있는 능력을 향상시키도록 설계된 이더리움 블록체인의 업그레이드입니다.

현재 업그레이드는 샤딩의 전체 구현을 포함하는 최종 단계(2단계)를 포함하여 단계적으로 구현되고 있습니다. 이더리움 개발자들은 이번 업그레이드가 확장성 및 거래 비용과 같이 현재 네트워크가 직면한 문제를 해결할 수 있기를 바라고 있습니다.

그러나 샤딩을 구현하는 것은 본질적으로 어려운 일이며, 특히 네트워크 보안과 분산화를 유지하는 것은 주목할 가치가 있습니다. 따라서 Ethereum 개발자는 완전히 구현되면 업그레이드가 성공할 수 있도록 신중하게 고려하고 이 전환에 대한 광범위한 테스트를 수행했습니다.

결론

전반적으로 샤딩은 블록체인 삼항 역설 문제를 해결하는 데 있어 상당한 진전을 나타냅니다. 샤딩은 새로운 복잡성과 잠재적인 단점을 가져오지만 분산화에 영향을 주지 않으면서 확장성을 향상시켜 블록체인 네트워크의 미래 발전을 끝없는 희망으로 가득 채울 것으로 예상됩니다.

이것이 의심할 여지 없이 많은 블록체인이 샤딩을 잠재적인 솔루션으로 모색하는 이유입니다. Ethereum은 확장성 문제를 해결하기 위해 Ethereum 2.0 업그레이드의 일부로 샤딩을 통합하고 있습니다. 샤딩 구현은 전체 업그레이드 계획의 핵심 구성 요소인 칸쿤 업그레이드를 통해 이루어질 것으로 예상됩니다. 그러나 진화하는 다른 기술과 마찬가지로 샤딩 구현의 성공 여부는 지속적인 연구 개발 및 엄격한 테스트와 같은 요소에 의해 결정됩니다.

위 내용은 샤딩의 개념과 작동 방식의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:binance.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!