가스 스매싱
Address Balances 기능을 사용한다면 gas smashing을 사용할 필요가 없다. 주소 잔액 기반 가스 지불은 가스 코인을 선택하거나 병합할 필요를 완전히 제거한다.
Sui의 모든 트랜잭션은 성공적으로 실행되려면 가스 수수료를 지불해야 한다. Gas smashing을 사용하면 이 수수료를 단일 코인이 아니라 여러 코인으로 지불할 수 있다. 액면가가 작은 코인이 많거나 계정의 코인 수를 줄이고 싶을 때 유용하다. Gas smashing은 GasCoin 프로그래머블 트랜잭션 블록 (PTB) 인자와 함께 사용할 때 가장 강력하다.
트랜잭션에 가스 수수료 지불용으로 여러 코인을 제공하면 gas smashing이 자동으로 발생한다. Sui가 트랜잭션을 실행할 때 네트워크는 제공된 모든 코인을 하나의 코인으로 결합하거나 smash한다. Smashing은 트랜잭션에 제공된 코인 금액이나 가스 예산과 무관하게, 최소 및 최대 가스 예산 범위 안에 있으면 발생한다. Sui는 트랜잭션의 실행 상태와 무관하게 단일 코인에서 가스 수수료를 차감한다. 즉, execution error 같은 이유로 트랜잭션이 실행에 실패하더라도 제공된 가스 코인은 트랜잭션 실행 후에도 smashed된 상태로 남는다.
이 설계는 하나의 PTB에서 많은 작은 코인을 결합하면서 동시에 관련 없는 작업을 실행할 수 있으므로, gas smashing을 코인 관리와 가스 지불을 같은 트랜잭션에서 처리하는 실용적인 방법으로 만든다.
하나의 PTB에서 최대 256개 코인을 smash할 수 있다. 가스 코인이 256개를 넘는 트랜잭션은 실패한다.