智能合约所有权的建立与管理
1. 多重所有权
在某些情况下,一个智能合约可能由多个个体共同拥有。当多人共同拥有一项资产时,存在以下两种情况:
- 任何现有所有者都可以执行函数调用,无需所有所有者都批准函数的执行。
- 只有在所有所有者都同意执行后,交易才能执行,这也被称为多重签名(MultiSig)合约。
1.1 建立智能合约的多重所有权
下面的 MultiOwnable
合约展示了如何实现智能合约的多重所有权:
// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
contract MultiOwnable {
mapping (address => bool) isOwner;
address owner;
address[] owners;
constructor() public {
owners.push(msg.sender);
isOwner[msg.sender] = true;
owner = msg.sender;
}
function addowners(address additionalAddresses) public
onlyOwner {
owners.push(additionalAddresses);
isOwner[additionalAddresses] = t