본문으로 건너뛰기

Object Ownership

모든 object에는 transaction에서 object를 어떻게 사용할 수 있는지를 나타내는 owner 필드가 있다. Object는 다음 유형의 소유권을 가질 수 있다:

Address-owned object는 특정 32바이트 address가 소유하며, 이 address는 account address (특정 서명 체계에서 파생됨) 이거나 object ID이다. Address-owned object는 오직 해당 소유자만 접근할 수 있으며 다른 누구도 접근할 수 없다.
Immutable object는 변경, 전송 또는 삭제할 수 없는 object이다. Immutable object는 소유자가 없으므로 누구나 사용할 수 있다.
Party object는 0x2::transfer::party_transfer 또는 0x2::transfer::public_party_transfer 함수를 사용하여 전송되는 object이며, 전송 받은 대상인 Party만 접근할 수 있다. Party object는 단독으로 소유될 수 있지만, address-owned object와 달리 합의에 의해 버전이 관리된다. Shared object는 0x2::transfer::share_object 함수를 사용하여 공유되며 모든 사람이 접근할 수 있는 object이다. owned object와 달리, shared object는 네트워크 상의 누구나 접근할 수 있다. Move에서는 struct 타입의 필드를 다른 struct에 넣어 데이터 구조를 구성할 수 있다.