샤딩 기술: 블록체인의 성능 문제를 해결하는 방법은 무엇입니까?
제작 | 버내큘러 블록체인 (ID: hellobtc)
제작 | 버내큘러 블록체인 (ID: hellobtc)
또한 블록체인 기술의 대규모 적용을 제한하는 가장 중요한 요소 중 하나는 성능이며, 이는 많은 전통적인 인터넷 실무자들이 블록체인 기술에 대해 낙관적이지 않은 이유 중 하나입니다.
첫 번째 레벨 제목
01
샤딩이란 무엇입니까?
조각화는 수평 분할이라고도 하는 데이터베이스 분할의 한 형태로, 큰 데이터베이스를 여러 개의 작고 처리 가능한 부분으로 나누어 성능을 개선하고 응답 시간을 단축합니다.
조각화는 새로운 개념이 아니며 이미 1990년대 후반에 전통적인 중앙 집중식 데이터베이스 관리에 나타났습니다. 이것이 개념의 인기는 온라인에서 여러 플레이어가 동시에 플레이하는 롤플레잉 게임인 Ultima Online 때문입니다.
첫 번째 레벨 제목
02
블록체인 분야에서 샤딩이란?
블록체인은 데이터베이스에 해당하며 각 노드는 독립된 서버에 해당합니다. 정상적인 상황에서,이 노드 중 한 노드만 한 번에 블록을 기록하고 생성할 수 있는 권한을 얻을 수 있습니다., 블록 생성 권한을 얻지 못한 나머지 노드는 "쓸모없는 작업"을 수행하고 컴퓨팅 파워를 헛되이 낭비하는 것과 같습니다.
블록체인에 샤딩 기술을 적용하면 블록체인 네트워크에서 대기 중인 모든 작업(예: 트랜잭션 확인, DApp 실행 등)을 분해하는 것과 같으며 전체 네트워크의 노드도 그룹화되며 각 그룹은 동시에 분해된 작업(예: 확인해야 할 150개의 트랜잭션)을 처리하여 원래 단일 노드가 동시에 병렬로 처리하는 여러 노드 그룹으로 전체 네트워크의 모든 작업을 처리합니다.
예를 들어 현재 이더리움에 8,000개의 노드(채굴자)가 있고 전체 네트워크에서 확인해야 할 트랜잭션이 15,000개라고 가정합니다. 이더리움은 초당 7-15개의 트랜잭션을 처리할 수 있으며, 정상적인 상황에서 이러한 트랜잭션을 확인하는 데 최소 1000초가 소요됩니다. 물론 처리 중에 확인해야 할 새로운 트랜잭션이 생성됩니다.
샤딩 기술을 이용하여 8,000개의 노드를 각각 80개 노드씩 100개의 그룹으로 나누고, 확인해야 할 15,000개의 트랜잭션을 100개의 파티션으로 나누고 각 파티션에 150개의 트랜잭션을 넣으면 각 노드 그룹(80)은 각각의 트랜잭션을 처리할 수 있습니다. 확인해야 하는 15,000건의 트랜잭션을 모두 가장 빠르게 10초 이내에 처리할 수 있도록 파티션(150)에서 확인해야 합니다.
첫 번째 레벨 제목
03
샤딩 기술의 잠재적 위험
그렇다면 샤딩 기술에 결함이 있습니까? 대답은 '예'입니다.
샤딩 기술은 블록체인의 성능 문제를 어느 정도 해결하고 블록체인의 확장성을 높일 수 있지만 두 가지 결함도 있습니다.
하나는 분할 후 서로 다른 영역 간의 통신 문제입니다.위의 예에서 이더리움 네트워크는 100개의 파티션으로 나뉘며 각 파티션은 독립적입니다. 이는 100개의 독립적인 병렬 이더리움 블록체인과 동일하며 각 파티션은 광부 그룹(80개 노드)에 의해 유지되고 트랜잭션을 확인합니다.
이 100개의 독립적인 이더리움 블록체인은 서로 통신할 수 없으며, 통신을 하려면 파티션 간 통신 메커니즘을 늘려야 합니다(끊어진 체인과 유사), 이는 블록체인의 복잡성을 증가시키고 개발의 어려움을 증가시킬 것입니다.
두 번째는 블록체인의 보안입니다.여전히 위의 예에서, 샤딩 전 이더리움 네트워크는 8,000개 노드의 컴퓨팅 파워를 가지고 있습니다.
이 시점에서 파티션 중 하나는51% 해시레이트 공격훨씬 쉽습니다. 파티션을 제어한 후 공격자는 이 파티션에서 악을 행하고 트랜잭션을 변조할 수 있습니다.
Ethereum Foundation은 Ethereum 2.0의 업그레이드 중 하나로 샤딩 기술을 사용할 계획입니다. 우리는 이더리움이 샤딩 기술의 위 두 가지 결함을 어떻게 해결할 수 있는지 지켜볼 것입니다.


