Smart contracts in tezos
계약 유형
사용하지 않은 출력 대신 Tezos는 상태 저장 계정을 사용합니다. 이러한 계정이 실행 코드를 지정하면보다 일반적으로 계약이라고합니다. 계정은 일종의 계약 (실행 코드가없는 계약)이므로 \ "계약"이라고합니다.
각 계약에는 "관리자"가 있으며 계정의 경우 단순히 소유자입니다. 계약서에 지출 가능한 것으로 표시된 경우, 관리자는 계약서와 관련된 자금을 사용할 수 있습니다. 또한, 각 계약은 스테이크 증명 프로토콜에서 블록에 서명 또는 마이닝하는 데 사용되는 공개 키의 해시를 지정할 수 있습니다. 개인 키는 관리자가 제어하거나 제어하지 않을 수 있습니다.
공식적으로 계약은 다음과 같이 표현됩니다.
type contract = {
counter: int; (* counter to prevent repeat attacks )
manager: id; ( hash of the contract's manager public key )
balance: Int64.t; ( balance held )
signer: id option; ( id of the signer )
code: opcode list; ( contract code as a list of opcodes )
storage: data list; ( storage of the contract )
spendable: bool; ( may the money be spent by the manager? )
delegatable: bool; ( may the manager change the signing key? *)
}
계약의 처리는 초기 컨텐츠의 해시입니다. 해시가 기존 계약과 충돌하는 계약을 작성하는 것은 유효하지 않은 작업이며 유효한 블록에 포함될 수 없습니다.
데이터는 공용체 유형으로 표시됩니다.
type data =
| STRING of string
| INT of int
여기서 INT는 부호있는 64 비트 정수이고 string은 최대 바이트의 배열입니다. 저장 용량은 바이트로 제한되며 정수를 8 바이트로, 문자열을 길이로 계산합니다.
@tipu curate
Upvoted 👌 (Mana: 15/20 - need recharge?)