多企业间如何实现 “链上协同与治理”

2020-08-18 11:19 栏目:经验之谈 来源:网络整理 查看()

在最近的许多竞赛中,社区中出现了许多高质量的区块链应用方案,这让每个人都看到了技术本身的强大生命力,也反映了区块链帮助行业发展的无限潜力。

应社区开发者的要求,社区每周四《超话区块链》直播班推出“对话方块链应用先锋”系列,分享展示这些获奖团队的技术应用解决方案,希望能给大家的日常开发提供一些启示。

本期邀请区块链资深开发商朱立柏分享他在第二届BSN开发商大赛中获奖作品:《United Corporation On Blockchain》(区块链一家合资公司),探讨如何实现多企业间的“连锁协作与治理”。

为什么选择企业间的多党合作治理?

许多朋友可能会奇怪,为什么会有这样一个看似不受约束的想法,比如“在区块链建立一家合资公司”。

首先,区块链技术非常适合“多党合作治理”的场景。多中心自治组织的开放治理能力体现在任何人只要有相应的证书就可以公开行使治理。受此启发,我希望在联盟链的基础上实现类似的功能:联盟中的各方都有事先约定的治理能力,区块链技术保证了治理过程的公平、公正、公开、可追溯和不可否认。

其次,在公司的实际业务往来之间,存在着对“多方协作治理”的真实场景需求。

例如,公司之间的一般商业交易通常涉及项目和资金。如果多个公司需要联合管理一个项目并进行资本交易,他们可以考虑使用区块链技术来实现“链协作和治理”。每个人都可以对项目的整体进度保持一致的看法。同时,任何签名确认过程都是由相应的私钥触发的,这样就更容易实现对人的责任。

连锁合作与治理的实现

在区块链,每家公司都作为单独的“公司合同”存在。只要实现了“公司合同接口”,就可以定制公司内部的业务逻辑和内部组织关系。

当一家公司想加入一家合资公司时,它首先申请并部署自己的“公司合同”;然后,已经在联合公司的成员以新部署的“公司合同地址”作为参数发起建议;经合资公司大多数成员投票后,他们可以正式成为合资公司的成员。

每个公司参与的项目将以“联合项目合同”的形式单独存在,联合公司中的任何成员公司都可以发起联合项目。

首先,根据“项目合同接口”制定“联合项目合同”,并将其部署到区块链;并以“联合项目合同地址”作为建议书的参数发起建议书;联合公司中的各公司可以根据提案中的合同地址对合同进行检查,并决定是否对提案进行表决;当它被联合公司中的大多数成员公司投票通过时,它就成为“联合项目合同”。

区块链智能契约的设计思想和关键逻辑

合同设计理念

在合同设计中,我们参考了FISCO BCOS开源社区《智能合约编写之Solidity的编程攻略》文章中的思想,采用了“数据、管理、控制”的分层设计方法。

该智能合同方案主要有三个模块:联合治理模块、公司模块和项目模块,合同交互主要发生在这三个模块的合同之间。

多企业间如何实现 “链上协同与治理”

联合治理模块:提案与表决系统、联合公司成员管理系统、联合公司间资金循环系统。

公司模块:单一公司管理系统、单一公司内部资金流转系统;

项目模块:多个公司的联合项目管理和单个公司的内部项目管理。

其中,“联盟管理模块”集中管理“公司模块”合同和“项目模块”合同,管理机制主要是“投票-注册”;公司合同和项目合同在实现相应接口合同方式的基础上定制业务逻辑,并以单独合同的形式联系在一起。

就合同功能而言,主要有以下几点:

投票登记功能,只有当票数超过一定比例时,新公司才可以

资本流动,包括公司之间的资本流动(包括跨合同认购)和公司内部的资本流动;

基金发行功能,根据投票决定是否发行基金。

关键逻辑的合同代码实现

以“存储智能合同”的所有权转移为例,介绍了项目中一些关键逻辑的合同代码实现。

本项目采用“存储、逻辑和控制”的分层设计思想。部署“存储智能合同”后,部署者必须将合同所有权关系转移到控制器智能合同。存储智能签约方法如下:

功能转移所有权(地址新所有者)仅公共所有者{

需要(新所有者!=地址(0),“Ownable:新所有者是零地址”);

emit ownershipttransfered(_ owner,new owner);

_所有者=新所有者;

{}

上述“新所有者”参数必须是相应的“控制器合同”地址。通过这种方式,“存储智能契约”确保只有相应的“控制器智能契约”可以通过修饰符“仅修改者所有者()”来修改“存储智能契约”的数据。

部署后,可以通过“控制器合同”中的以下方法来验证“存储类合同”的所有权。

函数checkUCOBNodeStorageSafety()公共视图返回(bool) {

返回UCOBNodeStorage . owner()==地址(此);

{}

控制器智能合同的代码逻辑可以升级,是否升级可以通过投票决定。

函数changeucbnodestorageowner(byte 32 proposalId)公共{

要求(提议已通过(提议有效,));

.

UCOBNodeControllerAddress

.

{}

投票通过后,“存储智能合同”的所有权关系将转移到新的“控制器合同”地址,数据将保持不变,但业务逻辑将“升级”。

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发