Sui 성능 업데이트

Sui 는 다양한 워크로드에서 현재 최대 처리량과 완료까지 걸리는 시간을 확인하기 위해 일련의 테스트를 수행했습니다.

Sui 성능 업데이트

주요 결과

  • 전 세계에 100개의 유효성 검사기를 분산 배치한 Sui 네트워크는 다양한 워크로드에서 10,871TPS에서 297,000TPS에 이르는 최대 처리량을 달성했습니다.
  • Sui의 최종 완료 시간은 ~480밀리초입니다.

여정

1년여 전, Sui 은 8코어 M1 맥북 프로에서 최대로 실행될 때 초당 120,000 트랜잭션(TPS)의 단일 검증자, 일괄 성능 데모와 함께 세상에 발표되었습니다. 이제 수명이 길고 탈중앙화된 비허가형 테스트넷이 출시되었으니, Sui의 성능에 대한 최신 정보를 공유해드릴 차례입니다. 이 업데이트의 목적은 다음과 같습니다.

  • 현재 버전의 Sui 프로토콜의 성능 수준 특성화
  • 프로토콜의 다음 최적화 영역을 결정합니다.
  • 커뮤니티에 현재와 미래에 Sui 에서 기대할 수 있는 사항에 대한 기준을 제공하세요.

충실도가 높고 사실적인 성능 결과를 얻기 위해 하드웨어 구성, 검증인 수, 검증인의 지리적 분포, 투표 권한 분배 측면에서 메인넷과 거의 동일한 전 세계에 분산된 설정을 사용하여 성능 특성화를 수행했습니다:

  • 100명의 검증자
  • 사용된 유효성 검사기 하드웨어 구성은 24코어 AMD, 256GB 메모리, 25Gbps NIC입니다.
  • 이 연습을 위해 확장 가능한 부하 발생기가 특별히 개발되었습니다.
  • 진행 중인 개발 활동에 지장을 주지 않기 위해 공개 테스트넷은 사용하지 않았습니다. 퍼블릭 테스트넷에서 100,000회 이상의 단기간 성능 스트레스 테스트를 여러 차례 실시했습니다.

Sui의 처리량 측정

이 성능 특성화 결과를 설명하기 전에, 먼저 Sui의 처리량을 다른 블록체인과 비교하고 Sui의 계산 유용성을 나타내는 방식으로 측정하는 방법을 확립하는 것이 중요합니다.

Sui의 가장 강력한 핵심 개발자 기본 요소 중 하나는 프로그래밍 가능한 트랜잭션 블록 (PTB)입니다. 기존 블록체인의 경우 기본 실행 단위는 트랜잭션으로, 일반적으로 단순하고 가상머신 실행에 가깝습니다. Sui 에서는 기본적인 원자적 실행 단위가 복잡하고 구성 가능한 트랜잭션 시퀀스 수준으로 올라갑니다.

  • 모든 스마트 컨트랙트의 모든 공개 온체인 Move 기능은 프로그래밍 가능한 트랜잭션 블록에 액세스할 수 있습니다.
  • 이전 온체인 Move 호출에서 입력된 출력은 이후 온체인 Move 호출에 입력된 입력으로 연결될 수 있습니다. 이러한 유형은 다양한 속성과 속성을 가진 임의의 Sui 객체일 수 있습니다. PTB는 매우 이질적일 수 있습니다. 단일 PTB는 스마트 컨트랙트 지갑에서 플레이어 오브젝트를 추출하고, 이를 사용하여 게임에서 이동한 다음, 이동으로 획득한 배지 오브젝트를 멀티 게임 트로피 케이스로 전송할 수 있으며, 이는 모두 새로운 스마트 컨트랙트 코드를 게시하지 않고도 가능합니다. PTB의 자연스러운 구성성 덕분에 기존 컨트랙트는 기존 코드와 새로운 코드 모두와 원활하게 상호 운용할 수 있습니다(예: 사용자가 멀티시그 지갑에 플레이어를 저장하는지, 트로피케이스에 배지를 저장하는지 게임에서 알거나 신경 쓸 필요가 없음).
  • PTB의 체인화된 트랜잭션은 원자 단위로 실행되고 실패합니다. 다음은 3개의 서로 다른 풀에서 5개의 스왑을 수행하여 20개의 기존 오브젝트를 변경하고 7개의 새로운 오브젝트를 생성하는 12개의 작업으로 구성된 DeFi 관련 PTB의 예시입니다.
  • 각 PTB는 최대 1024개의 트랜잭션을 지원하여 무한한 표현력과 효율성을 제공합니다. PTB는 동종 배치(예: 결제 또는 NFT 민트)와 위의 두 예시처럼 단일 발신자 작업의 이기종 체인 모두에 사용할 수 있습니다. 두 모드 모두 Sui 의 고속 실행을 활용하며, 사용자는 더 생산적인 작업을 하나의 PTB에 담아 이미 낮은 거래 수수료를 더욱 낮출 수 있습니다.

프로그래밍 가능한 트랜잭션 블록의 편리함과 강력한 성능으로 인해 Sui 의 개발자들은 자신의 애플리케이션에 맞게 점점 더 정교한 프로그래밍 가능한 트랜잭션 블록을 구축하고 있습니다. SuiPTB 이전에도 프로그래밍이 가능했지만, 이제는 단일 실행으로 최대 1024개의 이질적인 작업을 수행할 수 있으며, 각 작업은 대부분의 다른 블록체인에서는 개별 트랜잭션에 해당합니다. 이 기능은 Sui 퍼블릭 테스트넷에 적용된 지 한 달 정도밖에 되지 않았지만, Sui 개발자들은 이미 500~1000개(예시 1, 예시 2, 예시 3)의 범위에서도 다양한 PTB 크기를 탐색하고 있습니다. 다음 그래프는 현재 테스트넷의 PTB 크기 분포를 보여줍니다:  

이러한 초기 채택은 앞으로의 이기종 PTB 사용에 대한 높은 가능성을 보여주지만, 특히 시간이 지남에 따라 프로그래머블 트랜잭션 블록이 점점 더 커지고 발전함에 따라 처리량을 측정하거나 논의하는 데 있어 흥미로운 딜레마를 야기합니다.

초당 트랜잭션 수(TPS )는 블록체인 프로토콜의 이론적 용량을 나타내는 지표로 일상적으로 사용됩니다. 그러나 초당 실행되는 프로그래밍 가능한 트랜잭션 블록의 수를 측정하는 것은 Sui 의 계산 용량을 일관성 있게 측정할 수 없습니다. 평균 PTB의 크기가 증가하면 Sui의 처리량은 증가하지만 초당 PTB는 제자리걸음을 할 수 있습니다. 효과적인 처리량 지표는 Sui 이 주어진 시간 단위로 제공할 수 있는 계산 효용의 양을 포착해야 하며, 해당 계산이 실행 간에 분할되는 방식이 아니어야 합니다. 또한 이 메트릭은 시스템이 계속 최적화됨에 따라 시간이 지남에 따라 추적하는 데 유용해야 합니다.

Sui의 설계와 가장 일치하고, 애플리케이션 의존성이 가장 적으며, 추적하기 가장 실용적인 TPS 용량 측정은 초당 실행되는 프로그래밍 가능한 트랜잭션 블록 내의 개별 트랜잭션 수입니다. 이번 업데이트와 향후 업데이트에서 TPS에 대한 모든 언급과 측정은 이 규칙을 따릅니다.

숫자

각 프로그래머블 트랜잭션 블록에서 서로 다른 수의 동종 트랜잭션(아래에서 PTB 크기라고 함)으로 실험적인 워크로드를 수행했습니다. 동종 트랜잭션은 각각 N개의 코인 개체를 생성하고 각 개체를 다른 수신자에게 전송하는 결제입니다. N명의 참가자에 대한 NFT 에어드랍은 오브젝트 생성 및 전송 측면에서 동일하다는 점에 유의하시기 바랍니다.

마무리 시간

블록체인 공간에서 완결성은 일반적으로 트랜잭션 수명 주기에서 트랜잭션이 취소할 수 없는 것으로 간주되어 더 이상 수정하거나 되돌릴 수 없는 시점으로 이해됩니다.

이번 성능 업데이트에서 최종 완료 시간은 트랜잭션 수명 주기에서 트랜잭션 자체와 트랜잭션의 효과가 모두 최종적으로 발생하여 후속 트랜잭션에서 사용할 수 있는 시점을 측정합니다.  


50번째 백분위수 지연 시간

95번째 백분위수 지연 시간

마무리 시간 

~480밀리초

~550밀리초

다음 단계

Sui 프로토콜은 시작부터 먼 길을 걸어왔으며, 초기에는 유망한 성능 결과를 보여주었습니다. 하지만 아직 최적화와 확장성을 위한 많은 기회가 남아 있습니다. 가까운 시일 내에 Sui 에서 다음 요소들이 개선될 예정입니다:

  • 벤치마크 툴링의 확장성 및 적용 범위
  • 여러 머신에 걸쳐 검증기 내 확장을 지원하는 수평적 확장성
  • 개별 유효성 검사기의 성능 저하에 대한 복원력

프로토콜이 발전하고 Sui의 성능이 여러 측면에서 향상됨에 따라 더 많은 업데이트가 더 많은 커뮤니티와 공유되어 고려와 피드백을 받을 수 있습니다.