Jetton을 여러 스마트 컨트랙트에 배포
Jetton에 대한 "적절한 (correct)" 샤딩 양을 찾기 위해 위에서 설명한 추론을 적용해 보겠습니다. 나는 이것이 너무 이론적이라는 것을 알고 있습니다. 운 좋게도 꽤 잘 작동하는 매우 실용적인 테스트가 있습니다.
무제한 데이터 구조 (unbounded data structure) 로 스마트 컨트랙트를 설계하는 경우 이 컨트랙트를 여러 인스턴스로 분할해야 할 가능성이 높습니다.
무제한 데이터 구조는 무한정 커질 수 있는 배열(array) 또는 맵(map) 입니다. Ethereum에서 우리의 스마트 컨트랙트에는 모든 사용자 잔액을 보유하는 지도가 필요합니다. 이 지도는 우리 토큰 보유자의 수가 제한이 없기 때문에 무한정 커질 수 있습니다. 새로운 계정은 사실상 무기한으로 생성될 수 있으며, 수치 정밀도 (numerical precision) 가 매우 높기 때문에 모든 계정에 소량의 토큰을 전송할 수 있습니다.
실제 규칙을 적용해 봅시다. TON의 단일 스마트 컨트랙트에서 모든 잔액을 유지한다면 무한한 데이터 구조를 갖게 될 것입니다. 이것은 우리가 샤딩을 위한 훌륭한 후보가 있다는 것을 의미합니다!
어떻게 샤딩합니까? 이것은 매우 간단합니다. 모든 잔액이 단일 스마트 컨트랙트 인스턴스에 나열되는 것을 원하지 않는 경우, 모든 잔액이 전용 스마트 컨트랙트 인스턴스에 보관되도록 목록을 분할하면 어떻게 될까요?
Last updated