智能合约看上去就是一段计算机执行程序,满足可准确自动执行即可,那么为什么用传统的技术为何很难实现,而需要区块链技术等新技术呢?传统技术即使通过软件限制、性能优化等方法,也无法同时实现区块链的特性:
1是数据无法删除、修改,只能新增,保证了历史的可追溯,同时作恶的成本将很高,因为其作恶行为将被永远记录;
2是去中心化,避免了中心化因素的影响。
基于区块链技术的智能合约不仅可以发挥智能合约在成本效率方面的优势,而且可以避免恶意行为对合约正常执行的干扰。将智能合约以数字化的形式写入区块链中,由区块链技术的特性保障存储、读取、执行整个过程透明可跟踪、不可攥改。同时,由区块链自带的共识算法构建出一套状态机系统,使得智能合约能够高效地运行。
position.tokensOwed0 += uint128(amount0) + uint128( FullMath.mulDiv( feeGrowthInside0LastX128 - position.feeGrowthInside0LastX128, position.liquidity, FixedPoint128.Q128 ) );
智能合约的特点之一就是部署到链上之后不能修改,这一机制使得合约的交互方都可以信任合约。但也带来了一系列的问题,其一如果已部署的合约发现漏洞,无法修复,其二如果已部署的合约要进行功能升级,很难对使用方无感知。所以我们希望能够想一种办法能够升级合约,解决上述问题。当然合约升级不仅仅是个技术问题,也是治理问题,因为合约如果可以被随意修改那么信任的基石将消失,所以需要有一系列的升级治理方案来对升级合约进行约束
position.tokensOwed1 += uint128(amount1) + uint128( FullMath.mulDiv( feeGrowthInside1LastX128 - position.feeGrowthInside1LastX128, position.liquidity, FixedPoint128.Q128 ) );
智能合约的智能性是其另一个优势。传统的合同需要大量的人工操作和审核,费时费力并且容易出错。智能合约通过利用区块链的特点,实现自动化执行和自我验证,不仅节省了时间和精力,也降低了交易成本。智能合约可以智能执行条件,如时间、金额、状态等,从而实现自动结算。此外,智能合约还可以自动更新和升级,并实现自我管理,从而实现交易全流程的自动化。