병렬화에 대한 모든 것

트랜잭션을 병렬로 실행하면 확장성이 향상되고 더 나은 사용자 경험을 만들 수 있습니다.

병렬화에 대한 모든 것

블록체인은 탈중앙화 애플리케이션에 혁명을 일으켜 네트워크 전반에서 트랜잭션을 효율적으로 실행할 수 있게 해줍니다. 그러나 기존 블록체인 플랫폼에서 애플리케이션과의 상호작용은 종종 순차적인 트랜잭션 실행이라는 확장성의 한계에 직면합니다. 이더리움 가상 머신(EVM)은 트랜잭션을 한 번에 하나씩 처리하여 효율성과 확장성을 저해합니다. 

순차적 실행 모델은 완전히 다른 사용자 간의 결제와 같은 독립적인 거래도 동시에 처리할 수 없다는 것을 의미합니다. 이러한 모델을 사용하는 네트워크는 수요가 많은 기간 동안 처리량 감소로 어려움을 겪습니다. Sui 병렬 실행이라고 하는 여러 트랜잭션을 동시에 처리할 수 있게 함으로써 이러한 한계를 극복합니다.

병렬 처리는 애플, 넷플릭스, 페이스북과 같은 선도적인 기술 기업에서 공통적으로 사용하는 엔터프라이즈급 인프라의 요구 사항을 충족하는 데 필수적인 요소입니다. 초기의 블록체인 아키텍처는 대량 처리량에 대한 요구를 처리하지 못했습니다. 블록체인이 기업 수요를 충족하고 전 세계적으로 유용하게 사용되려면 병렬 처리가 필요합니다.

병렬화를 통해 확장성 향상, 지연 시간 단축

트랜잭션 병렬화를 사용하면 여러 컴퓨팅 리소스를 동시에 활용하여 여러 트랜잭션을 동시에 처리할 수 있습니다. 그 결과 확장성이 향상되어 수요가 많은 기간에 하드웨어 리소스를 확장할 때 처리량을 늘릴 수 있습니다. 

Sui 에서 검증자 노드는 추가 트랜잭션 부하를 처리하기 위해 더 많은 연산 능력을 동적으로 할당하여 네트워크의 확장성을 향상시키고 전반적인 사용자 경험을 개선할 수 있습니다. 병렬화를 사용하는 네트워크는 트랜잭션 처리 효율을 높이고 혼잡을 줄임으로써 트랜잭션 처리에 더 적은 가스가 필요할 수 있으며, 그 결과 트랜잭션 수수료가 낮아질 수 있습니다.

여러 트랜잭션 처리 채널을 제공하면 네트워크 부하가 증가하는 상황에서도 트랜잭션을 신속하게 확인할 수 있습니다. 1차선 도로가 다차선 고속도로로 확장되었다고 상상해 보세요. 더 많은 교통량이 통과할 수 있어 대기 시간과 교통 체증으로 인한 연료 비용이 줄어듭니다. 이와 유사하게 블록체인의 병렬화는 트랜잭션이 확인을 위해 오랜 시간을 기다리거나 표준 사용 트랜잭션의 우선순위를 정하기 위해 과도한 수수료를 지불할 필요가 없게 합니다. 확인 시간이 짧아지면 트랜잭션이 더 빨리 완료되고 게임이나 경매와 같이 지연 시간에 민감한 애플리케이션을 위한 기반을 마련할 수 있습니다.

병렬 실행에 대한 접근 방식

모놀리식 블록체인에서 트랜잭션을 병렬화하는 가장 널리 사용되는 두 가지 방법은 상태 접근 방식과 낙관적 실행 방식입니다. 상태 접근 방식은 블록체인 상태의 특정 부분에 대한 트랜잭션의 접근을 사전에 식별하여 독립성을 쉽게 선언하고 특정 트랜잭션을 병렬로 실행할 수 있습니다. 반면, 낙관적 모델은 모든 트랜잭션이 처음에 독립적이라고 가정하고, 이 가정을 소급하여 검증한 후 병렬화가 불가능한 트랜잭션을 다시 실행합니다.

두 가지 방법 모두 현재 블록체인에서 활용되고 있습니다. 다음과 같은 네트워크 모나드앱토스 와 같은 네트워크는 낙관적 병렬화를 구현하는 반면 SuiSolana 는 상태 접근 방식을 활용합니다. 낙관적 방법은 트랜잭션을 정의할 때 개발자의 노력이 덜 필요하고 단순하다는 장점이 있습니다. 그러나 낙관적으로 실행하면 소급 검증 시 트랜잭션 충돌 및 기타 비효율성이 발생할 가능성이 있습니다. 상태 액세스 방식은 개발자의 노력이 조금 더 필요하지만, 더 예측 가능한 결과를 제공하고 소급 검증으로 인한 지연 시간 영향을 피할 수 있습니다.

상태 접근 방식은 또한 보다 역동적인 가스 요금 시장을 가능하게 합니다. 종속성이 미리 선언되기 때문에, 블록체인 상태의 매우 혼잡한 부분과 관련된 트랜잭션은 다른 트랜잭션과 다르게 처리될 수 있습니다. 예를 들어, 인기가 높은 대체 불가능한 토큰 발행소는 단기간에 엄청난 양의 트랜잭션 요청을 생성할 수 있습니다. 상태 액세스 방식을 사용하는 네트워크는 NFT 채굴 계약과 같은 블록체인 상태 핫스팟을 식별하고 비율을 제한할 수 있으며, 핫스팟과 관련된 트랜잭션에 더 많은 수수료를 부과할 수도 있습니다.

이를 통해 일반 거래는 원활하게 진행되며, 채굴 과정과 관련된 거래는 거래와 관련된 총 가스에 따라 별도로 우선순위가 정해집니다. Sui 에서 거래는 선착순으로 체크포인트에 포함되지만, 체크포인트 내에서는 제공된 가스를 기준으로 순서가 정해집니다. 이를 통해 최소 요건을 충족하는 한, 추가 가스를 제공하지 않는 거래를 체크포인트에서 불공정하게 제외하지 않고도 결제에 관심이 있는 사람들이 체크포인트 내에서 우선권을 가질 수 있는 역학 관계가 형성됩니다. 이러한 수준의 세분성을 달성하는 것은 낙관적인 병렬 실행으로는 쉽게 실현할 수 없습니다.

병렬화 Sui

Sui 는 상태 액세스 메서드를 사용하여 트랜잭션 병렬화 및 그 객체 중심 데이터 모델 은 상태 액세스의 명확성을 보장합니다. 각 객체는 독립적으로 존재하며, 트랜잭션에 관련된 모든 객체는 해당 트랜잭션에서 선언되어야 합니다. 한 트랜잭션이 다른 트랜잭션에서 사용되는 객체와 동시에 상호작용하지 않는 한, 트랜잭션은 병렬화가 가능합니다. 또한 공유 객체를 포함하지 않는 트랜잭션은 합의를 완전히 우회합니다.

예를 들어 앨리스가 Sui 에서 앨리스가 객체의 소유자인 객체로 표시된 NFT를 소유하고 있다고 가정해 보겠습니다. 앨리스가 이 NFT를 밥에게 전송할 때, 이 트랜잭션은 소유 오브젝트 트랜잭션으로 분류되어 합의 프로세스를 우회합니다. 그러나 앨리스가 채굴 계약과 같이 공유 객체와 관련된 스마트 컨트랙트를 통해 NFT를 채굴하는 경우에는 합의와 시퀀싱을 거쳐야 합니다. 

해당 공유 객체와 관련된 트랜잭션은 순서대로 주문하고 실행해야 하지만, 이 NFT 발행 객체와 관련된 일련의 트랜잭션은 다른 객체와 관련된 트랜잭션과 병렬로 실행할 수 있습니다. 다른 사용자가 결제 거래를 수행하거나 탈중앙 거래소에서 거래할 때, NFT 발행 계약과 같은 특정 객체에 액세스하려는 사용자의 영향을 받지 않습니다.

함께 힘을 모으기

스마트 컨트랙트 플랫폼은 애플리케이션 개발자에게 다양한 가능성을 열어주었지만, 기존 플랫폼은 종종 순차적 트랜잭션 실행의 한계에 직면합니다. 블록체인 설계에서 상태 액세스 방식과 낙관적 실행 방식 사이의 선택은 미묘한 차이가 있으며, 두 가지 방식이 모두 사용되고 있습니다. Sui 는 객체 지향 데이터 모델을 활용하여 상태 액세스를 통한 트랜잭션 병렬화를 구현함으로써 확장성을 향상시키는 동시에 지연 시간과 수수료를 줄입니다.