随着区块链架构体系的不断发展,越来越多的研究对区块进行改造从而实现了对空间属性的支持。因此,区块链技术可以为数据打上时空标签,
通过在区块中加入数据的时间和空间信息,将同样内容的数据集标识为不同的数据集个体,从而解决了数据要素流通中数据集可以被无限复制而无法辨识的难题,实现数据来源可确认。
// The next token ID to be minted.
uint256 private _currentIndex;
// The number of tokens burned.
uint256 private _burnCounter;
// Token name
string private _name;
// Token symbol
string private _symbol;
// Mapping from token ID to ownership details
// An empty struct value does not necessarily mean the token is unowned.
// See {_packedOwnershipOf} implementation for details.
//
// Bits Layout:
// - [0..159] addr
// - [160..223] startTimestamp
// - [224] burned
// - [225] nextInitialized
// - [232..255] extraData
mapping(uint256 => uint256) private _packedOwnerships;
// Mapping owner address to address data.
//
// Bits Layout:
// - [0..63] balance
// - [64..127] numberMinted
// - [128..191] numberBurned
// - [192..255] aux
mapping(address => uint256) private _packedAddressData;
// Mapping from token ID to approved address.
mapping(uint256 => TokenApprovalRef) private _tokenApprovals;
// Mapping from owner to operator approvals
mapping(address => mapping(address => bool)) private _operatorApprovals;