区块链开发:代码即法律,合约即资产
步入正题之前,我们首先要了解一下什么是以太坊的 Gas 费,关于 Gas 费最通俗的解释就是矿工费,本质上来说是以太坊网络运行合约需要燃烧 Gas ,Gas 费最后会折算成 ETH,以支付 ETH 的方式补偿给矿工们。
下面我们以在 NEST DAPP 上发布抵押借贷合约消耗的 Gas 费说明为例,阐述本文的核心观点。
在 NEST DAPP 上发布抵押借贷合约一共需求执行 4 个步骤,分别如下:
1、借方部署抵押借贷合约,合约上链;
2、借方往链上合约中转入抵押资产,抵押资产锁仓;
3、贷方支付 ETH 投资抵押借贷合约,借贷合约正式生效;
4、还款操作(A、借方按期还款,支付 ETH;B、借方逾期,贷方主动取回抵押资产),借贷合约结束。
先说一下普通的 Token 转账,正常的 Token 转账其实也是在操作合约,只不过操作的不是业务合约,而是 Token 自身的 ERC20 合约,所以也要消耗 Gas 费。由于 ERC20 Token 合约的逻辑相对其他业务合约来说比较简单,所以消耗的 Gas 费用是最少的,而业务合约带有一定的逻辑复杂度,执行的操作比较多,会消耗更多的 Gas 费,这一点在 NEST DAPP 的使用过程中可以明显的感受到。
由于 NEST 是一款基于以太坊开发的去中心化数字资产抵押借贷产品,其核心功能完全通过以太坊智能合约去实现。所以,用户使用 NEST DAPP 的过程其实就是在与以太坊合约进行交互的过程,但凡涉及到链上合约的操作都需要支付 Gas 费,以驱动合约执行逻辑、继续运转。下面,我们就逐个分析一下上面提到的 4 个步骤所消耗的 Gas 费。
步骤 1:借方部署抵押借贷合约
在这一步中,借方需要部署一个抵押借贷合约,然后发布到以太坊链上。具体操作是:通过合约模板,填写相对应的合约参数,比如要借的 ETH 数量、借贷周期、日利率、抵押资产类型等,然后把合约数据部署到链上,需要支付合约数据打包的 Gas 费。这一步,通常要消耗相对较多的 Gas 费,因为涉及到的合约数据、逻辑比较多。
步骤 2:借方往链上合约中转入抵押资产
借方把合约部署到以太坊链上之后,需要把确定数量的抵押资产打到链上合约里面,锁仓抵押资产。该步骤与普通转账的意思是一样的,不同的是,普通转账的转入地址是另一个钱包地址,而这里换成了一个链上的合约地址。当然,往合约里面转账也是要消耗 Gas 费的,而且比普通转账要高,毕竟要执行相对较多的逻辑。
步骤 3:贷方投资合约
在借方把抵押资产转入链上合约完成锁仓之后,可以把该抵押借贷合约单发布到合约市场中,供有意向的贷方投资。贷方在投资某一个抵押合约单的时候,其实就是在往借方的钱包地址中进行 ETH 转账。换句话说,贷方在支付 ETH 之后,借方会立刻收到贷方的转账,当然,转账需要消耗少量的 Gas 费。
步骤 4:还款操作
关于还款有两种情况需要考虑:
A、借方按约还款:假设抵押借贷周期为 30 天,自借贷合约被贷方投资之后开始计算,如果借方在 30 天之内进行还款操作,借方需要连本带息支付 ETH 给贷方,需要消耗转账手续费;
B、借方逾期:如果 30 天到期时借方还未还款,那么链上的抵押借贷合约状态自动变为“已逾期”状态,同时抵押资产解锁,但只有贷方有权限取出抵押资产。此时,贷方只需要消耗少量的 Gas 费,触发链上合约执行逾期逻辑,即可获得抵押资产。
通过上面对 NEST DAPP 中抵押借贷业务操作流程中涉及到 Gas 费的分析,我们可以发现:用户在与区块链进行交互的时候,本质上是在操作链上的智能合约,而触发智能合约的执行和运转又需要燃烧 Gas。每一步操作都能让用户明显感知到自己在与区块链进行互动,而且每一步操作都是那么的小心翼翼。因为我们都知道区块链具有去中心化、不可篡改的属性,转账绝对不能出错,否则资产无法找回。
同时,在使用 NEST DAPP 的过程中,或许你会明白【代码即法律,合约即资产】这句话的深刻意义。我们与区块链进行交互的对象就是智能合约,智能合约中的代码逻辑控制着我们的数字资产的归属,所以称之为【代码即法律,合约即资产】。
【本文原由源中瑞小六编辑,区块链关注微信 Yuanzhongruikeji (源中瑞科技)】



