SCT KOR

SCT(Symverse Contract Template)

특징

  • 스마트 컨트랙트 중 현재 가장 많이 사용되고 있는 항목을 내장화 하여 간편하게 생성 및 이용 가능하다.

  • 개발 환경의 개선

    • 솔리디티등의 Smart Contract 전용 개발 언어를 사용하지 않는다.

    • 단순 API 호출로 개발 가능하게 하여 개발 시간 단축시킬 수 있다.

  • 유지 보수 비용 감소

    • 사용자는 보안 문제 등의 이슈 사항에 대해서 신경 쓰지 않아도 된다.

SCT 종류

  • SCT20, SCT21 (ERC20 like)

    • 거래 가능한 토큰, 기능성 토큰, 디지털 화폐, ICO, IEO

  • SCT30 (ETC721 like)

    • 디지털 또는 물리적 자산에 대한 소유권을 표현

    • 물리적 속성(주택, 독특한 삽화 등)

    • 가상 수집품(새끼 고양이, 게임 아이템 등)

    • 자산(대출, 부담 및 기타 책임 등)

  • SCT40 (쿠폰형태의 계약을 처리)

    • 쿠폰 계약 생성 및 관리

    • 개별 쿠폰 생성 및 관리

    • 개발 쿠폰 발급 제약 조건 제어

    • 상품권, 할인 쿠폰, 숙박권 등

SCT 용어 정리

  • Token : SCT20으로 생성된 코인

  • Creator : SCT 계약의 생성자 계정(Master Owner)

  • Owner : SCT 계약의 소유자 계정

  • Spender(delegator) : 토큰 소유자로부터 일부 토큰의 송금 권한을 위임 받은 계정

  • User(Holder) : 모든 계정은 User의 권한을 가진다.

권한 위임

  • Creator

    Creator는 한개의 계정에 Owner를 지정 및 해제할 수 있다.

    • 지정 : SCT*_APPROVE

    • 해제 : SCT*_DECREASE_APPROVE 최초 계약 생성시 Creator는 자신을 Owner로 지정하거나 다른 계정을 Owner로 지정해야 한다.

  • Owner

    Owner는 Creator의 일부 권한을 가진다.

  • Spender (Delegator)

    토큰을 소유하고 있는 모든 계정(User, Owner, Creator)은 다른 계정을 Spender로 지정하여 자신이 보유한 토큰 중 일부에 대해서 송금 권한을 위임할 수 있다.

    Spender는 자신을 Spender로 지정한 계정의 코인을 위임받은 만큼 다른 User에게 송금할 수 있다.

    예를 들어 Owner(A), User(B, C) 가 있는 상황에서

    • A가 100개의 토큰을 소유하고 있을 때

    • A는 B를 Spender로 지정하고 50개의 송금 권한을 위임할 수 있다.

    • B는 A의 에게 위임받은 50개중 10개를 C에게 송금할 수 있다. (SCT*_TRANSFER_FROM)

    ※ B는 C를 Spender 로 지정할 수 없다. (위임받은 권한을 다른 계정에 다시 위임할 수 없다.) ※ B는 송금 시 자신의 개인키를 이용해 서명하여 송금 트랜잭션을 발행하지만 토큰은 A에서 C로 송금된다.

    Spender 지정은 다음 두가지 이유로 사용한다.

    첫번째, 토큰 소유자가 토큰을 혼자 관리하기 힘들 경우 다른 사람에게 권한을 위임하여 관리하고자 할 때 사용한다. 두번째, 토큰 소유계정의 개인키 분실에 대하여 대응하기 위해 사용한다. Owner가 Spender를 지정하고 Application Server에서는 Spender 계정을 사용하여 운영할 경우 Application Server가 해킹 등의 이유로 개인키를 분실 혹은 유출되었을 시 Owner은 새로운 Spender를 지정하여 대응할 수 있다.

SCT 정밀도

SCT 계약을 생성시 정밀도를 위하여 10^18 hug 단위로생성하기를 권장한다. 이는 SymScan등의 서비스에서 10^18 hug 를 정밀도로 하여 표시 하기 때문이다.

See also Prepare SCT-Data

SCT API

JSON RPC SCT API

SCT 기능 및 Gas

SCT 계약을 생성하고 사용하기 위해서는 SYM Coin이 필요하다. Gas Fee는 해당 SCT 함수 호출시 필요한 SYM Coin의 수이다.

Total Gas = Transaction Gas + Create Gas + Data Gas + SCT Gas

  • Transaction Gas

if block >= 4,745,000 { Transaction Gas : 49,000 } else { Transaction Gas : 21,000 }

  • Create Gas

if To != nil { Create Gas : 800,000 }

  • Data Gas

if block >= 4,745,000 { Data Gas : NonZeroGas(680) * NonZeroSize + ZeroGas(40) * ZeroSize }

else { Data Gas : NonZeroGas(68) * NonZeroSize + ZeroGas(4) * ZeroSize }

  • Sct Gas

Last updated