前沿动态
司法文明协同创新中心的建设目标是按照“国家急需、世界一流、制度先进、贡献重大”的要求,依据科学研究、学科建设、资政育人“三位一体”的方针,打造中国乃至世界司法研究的重镇、中国司法学科建设的平台、卓越司法人才培养的基地、司法文明和法治中国建设的核心智库。
黄 斌 :元宇宙法律篇(四十二)—— 智能合约与钱包和资产跨链
    【学科类别】民商法学
    【出处】微信公众号:德和衡律师
    【写作时间】2022年
    【中文摘要】区块链的底层技术天生可以为智能合约提供可信的执行环境和系统,智能合约已成为区块链之颠覆性技术,并广泛应用到实际产业中成为区块链系统中的基本功能组件。智能合约的概念最早是在1994年由美国计算机科学家尼克·萨博提出。2009年比特币诞生后,开启了基于智能合约的开发应用程序的序幕,比特币支持多种智能合约,包括时间锁定的比特币交易、多重签名脚本等,但都是简单、可执行的脚本并执行简单的逻辑,不具备图灵完备性。以太坊虚拟机的出现,这个图灵完备的虚拟机让智能合约从简单实验到广泛落地商业应用,据报道以太坊智能合约数量已超20万。
    【中文关键字】区块链;智能合约;虚拟资产
    【全文】


      一、智能合约的全生命周期
      智能合约是一段存储于区块链之上的计算机代码,其通过资产可编程化实现与现实世界中的资产交互式处理,其通过区块链交易触发到预设状态后将自动执行。智能合约改变了传统交易中的信任模式,智能合约不需要交易双方互相信任,甚至不知道交易对手的身份,智能合约的信任模式是一种“机器式契约信任”。[1]智能合约首先进行代码设计编译,然后部署在区块链上,通过预先设置的触发条件自动执行,合约失效后进行销毁。
      01设计编译
      首先按照特定的代码编写要求和逻辑要求对智能合约代码设计编写,合约代码应当保证基本逻辑正确和重要数据安全,而将复杂的逻辑放在外部的应用程序中实现;再按照一定的语言规范和技术规范对该代码进行编译生成字节码。
      02测试
      在将智能合约部署在区块链上之前,先将智能合约部署在Kovan等测试网络上进行测试,包括但不限于单元测试、集成测试,观察与预期设定的方式有什么异常,以发现错误和其他漏洞。
      03评估
      开展智能合约自我评估,主要严格权限访问控制机制,包括合约调用、直接调用、预言机调用上的权限控制,还有对代码和模式的安全评估和故障安全机制评估等。
      04审计
      在智能合约部署之前,必须进行安全审计,以发现智能合约代码中的缺陷和错误,进行部署前对智能合约的修复和优化。
      05部署
      将智能合约代码编译后生成的字节码与相关参数按照相应安全机制构建成交易,并将智能合约内容的哈希值打包到各个区块中形成共识,然后在区块链各节点上部署完成智能合约,发送信息调用函数,并将智能合约地址发送给用户。同时,还要部署智能合约升级方案。
      06触发执行
      智能合约定期检查自动状态机状态、执行运行载体(包括虚拟机、容器)以及触发条件,保证智能合约运行环境对外界隔离;当直接调用、预言机调用、合约调用等触发条件满足时,验证节点签名验证后达成共识,智能合约自动执行,并同时通知合约参与者,相应数字资产发生转移。
      07移除
      当智能合约内所有交易顺序执行完毕,自动状态机便将合约状态标记为处理完毕,然后从区块链中移除该合约。
      08销毁
      智能合约具有不可篡改的特性,但智能合约并不像人们之前所想象的不可解除,其可通过“自毁函数”来实现智能合约的解除,合约账户上剩余的资产将被发送到指定的目标,其存储和代码会从状态中被删除;也可以通过特定字节码进行交易确认,进而手动销毁智能合约。
      二、智能合约与钱包
      人类正处于一场将人类的财富逐渐从物理世界向虚拟世界迁徙的历史性运动中,作为 Web3.0 入口的钱包正在将人类的财富逐渐向 Web3.0 转移。钱包账户包括外部账户和合约账户,用户通过掌握私钥或助记词来控制外部账户,并通过外部账户发起和签署交易,区块链通过公钥、地址验证交易发起人的私钥签名以及交易发起人和资产所有人是否一致,但外部账户不具备代码逻辑,无法实现多签等功能;合约账户是基于智能合约而不是外部账户的钱包,其无法主动发起交易,但可以通过智能合约赋予钱包更加复杂的逻辑。作为 Web3.0 入口的钱包,主要可以分为由用户掌握私钥的普通钱包、服务提供商提供托管的钱包和智能合约钱包,现在主流应用钱包是服务提供商提供托管的钱包和智能合约钱包,用户掌握私钥的普通钱包也仅100万用户,智能合约钱包用户目前较少。
      用户掌握私钥的普通钱包是用户通过私钥直接控制账户的钱包,通过生成私钥、根据私钥计算出公钥、根据公钥计算出地址的方式创建普通钱包,用户通过钱包中的外部账户发送交易并用私钥进行签名,通过钱包用户向区块链验证自己,也可以成为自托管钱包,需要记住助记词、私钥因而使用不是很方便,也不可设置交易限额等逻辑。服务提供商提供托管的钱包是采用web2账户密码的形式,由服务提供商托管私钥,钱包可恢复找回,但其单点风险都集中在服务提供商。智能合约钱包实质上是在智能合约的基础上搭建一个钱包服务,其代码由虚拟机来运行,智能合约钱包中依旧使用是非对称密码学,存留用户的公私钥,但其不通过私钥而是使用智能合约控制数字资产的所有权,发起签署交易后后端服务器完成交易构建和广播;智能合约钱包主要是利用智能合约本身的可编程性、可升级,定制化等功能编写自定义业务逻辑,比如:无需记住繁琐的助记词,可恢复更换私钥并找回钱包,可增加多签、找回账户、锁定账号、每日转账最大限额、时间锁定交易机制、社交账户还原、冻结或限制账户等。
      三、智能合约与资产跨链
      随着各种生态的区块链建设加快和各种类型的虚拟资产数量增加,资产跨链已经成为一种很普遍和广泛的现象。各种生态的区块链之间无法直接发送和接收数据,要实现资产跨链不仅需要跨链智能合约,还需要在链与链之间搭建跨链桥。需要值得我们注意的是,虚拟资产并不能真正实现跨链,因为区块链之间的记账规则不一样,我们能做的是改造成符合以目标区块链记账规则的资产,用这种资产代替源区块链虚拟资产去使用;另外,拥有虚拟资产并不一定意味着在现实世界中拥有对实物资产的所有权,要将虚拟资产与实物资产对应不仅需要智能合约还需要信任可信任的第三方,也就是需要可信任的第三方(比如:房产局)发布或创建的智能合约。单链的智能合约已经广泛大量地使用在区块链上,多链智能合约是将同一个智能合约的代码部署到多条区块链上,但不同生态的区块链上的合约不能直接交互,还需要用户间接访问区块链上的应用副本;跨链智能合约是将一个完整的智能合约的代码按不同的逻辑分别部署在不同的区块链上,但前提是开发者要在区块链最底层将应用分割成不同的模块去设计跨链智能合约,让不同的区块链可以执行不同的任务并共同且同步实现同一个应用场景。
      跨链桥是将虚拟资产从源区块链转移到目标区块链的工具,本质上是将用户虚拟资产在不同区块链账本之间进行价值转移,其主要包括信息记录验证和跨链资产转移,信息记录验证是指准确、真实地记录用户虚拟资产在链与链之间流动的真实情况,通过中间链等方式对跨链信息进行验证,达成共识后将结果发送到目标链的合约地址;跨链资产转移是指主要通过资产托管、资产兑现等方式实现帮助用户进行价值兑现。不同区块链上的运行逻辑不同,记账规则也不一样,不同区块链上的数据无法直接交互,这就需要跨链桥进行交互。而且,区块链上的数据都是通过共识机制形成的,而物理世界的数据大多都不是共识的结果,这就需要可靠的预言机将物理世界的数据转换成为区块链可读可用的数据。简而言之,预言机是帮助智能合约通过验证获取使用链下数据,也可以将链上数据传输给链下物理世界,承担链接链上智能合约和链下物理世界的桥梁之作用,其主要解决了链上和链下的信任机制。另外,还有中继器提供验证交易,只有中继器传递的跨链消息经过验证交易才值得信任。跨链桥使用跨链互操作性协议为跨链智能合约提供基础设施,将通证桥接入不同的区块链,并在各个不同的区块链之间传输消息。跨链桥现行技术方案有资金池、再铸造等,具体如下:1、资金池类,在源区块链和目标区块链上各设置一个资金池,投资人作为有限合伙人事前向资金池内存入各种虚拟资产,用户按照预言机广播的兑换比例将虚拟资产存入到源区块链的资金池,同时从目标区块链上的资金池获得对应的跨链虚拟资产;再铸造类,用户先向承兑商发出请求,承兑商对用户进行验证然后将用户的源区块链虚拟资产交给托管机构托管,承兑商进行铸造再把目标区块链虚拟资产返还给用户。


    【作者简介】
    黄斌,华中科技大学法律硕士,北京德和衡(深圳)律师事务所公司业务部律师,专利代理人。



稿件来源:北大法律信息网法学在线

原发布时间:2022/11/10 9:08:52  




上一条:孙裕广 凌小淇 :走私犯罪涉案税款计核应适用何种税率? 下一条:李 斌 张德荣 王静澄 赵宝荣 :转让股权后发现其他股东侵害公司资产,原股东该如何维权?

关闭