区块链生态已经从单纯的链上通证发展成了一系列高级的去中心化应用,而这些应用的底层技术就是混合型智能合约。然而,智能合约存在一个关键问题,那就是:区块链为了保障安全,采用了闭环架构,也正因如此,链上智能合约无法自动执行。也就是说,合约无法基于预定义的条件自动运行,比如当通证达到某一价格、贷款抵押率低于某一阈值、或到达某一特定时间时执行合约功能。如果智能合约无法自动执行,许多高级的用例也就自然无法实现。
为了解决这一问题,一些开发者采用了中心化的自动化解决方案;也有一些开发者直接在协议中设置了激励机制,通过外部方来触发具体的合约功能。然而,这样做存在巨大隐患,而且会威胁到链上应用所赖以生存的安全保障。比如,以太坊闹钟(Ethereum Alarm Clock)的激励机制是最早出现的智能合约自动化解决方案,而这个机制也导致一些交易可能完全无法被执行。
而现在Chainlink推出了一个安全性极高的去中心化自动化解决方案,那就是Chainlink Keepers。开发者可以用它来自动触发智能合约执行,无需再部署中心化bot或通过激励机制触发合约。Chainlink Keepers可以非常可靠地自动执行智能合约,并同时保障成本效益和去中心化水平。目前,Chainlink Keepers已经自动触发了几万笔交易。
因此,Chainlink Keepers是Web3基础架构中不可或缺的要素,开发者可以使用Keepers自动执行智能合约,从而打造出功能丰富的dApp,从端到端实现去中心化,并充分发挥出Web3的潜力。
使用中心化的解决方案来自动执行智能合约所存在的问题
采用中心化的解决方案来自动执行智能合约,可能会给dApp带来一系列安全隐患,并且会让本来就有限的智能合约开发资源更加捉襟见肘。
![一文读懂Web3项目为什么需要以去中心化的方式实现自动化 一文读懂Web3项目为什么需要以去中心化的方式实现自动化](https://blog.chain.link/wp-content/uploads/2022/05/Why-Automate-With-Keepers-Diagram_Centralized-Automation-1024x722.png)
单点故障
采用中心化的解决方案来自动执行智能合约功能,可能会导致单点失效,协议可能会被操控并出现技术故障。无论是通过在中心化的服务器上运行脚本还是通过DevOps团队手动监控并调用链上合约,都存在单点失效风险,并可能会导致协议无力偿付、交易滑点以及用户资金损失。归根到底,中心化的解决方案使得智能合约不得不依赖一个外部方,而且其无论在安全性、可靠性还是透明性方面都无法达到智能合约的水准。
除了安全隐患之外,运行时间不稳定也是DevOps团队在采用中心化解决方案时面临的最大问题。比如,中心化的云服务商反复下线,导致许多接入其服务的dApp也不得不中断。终端用户由于无法使用dApp而受到影响,这也会最终损害协议的声誉。
耗费时间
开发并运行一个中心化的自动化解决方案所需的资源和时间往往超出大部分人的预期。比如,如果你采用云端任务调度器(cloud-based job schedulers)或定时任务智能合约(cron job smart contract)等Web2技术来开发中心化的自动化解决方案,就需要展开一系列复杂的工作,比如查看每个区块的交易、监听事件、对链上重组做出响应并且当通证余额低于一定限度时发出报警等。另外,你还需要处理RPC不响应的问题,对于多链应用来说这个问题尤其让人头疼。除此之外,多链应用还可能需要对每个部署的区块链分别开发自动化基础架构。
所有这些工作都会耗费大量开发时间和资源,而这些资源本来应该投入到功能开发和获客上。
私钥被泄露
保护私钥安全对智能合约开发者来说至关重要。然而,开发者使用中心化的服务来触发交易时,可能会泄露私钥。由于在区块链上只有私钥持有者才可以访问储存在链上地址中的资金,因此私钥被泄露将对协议金库带来巨大的安全隐患。
采用公开赏金机制来自动执行智能合约所存在的问题
除了采用中心化的自动化系统之外,还有一个方法是将自动执行功能直接嵌入协议中,建立赏金机制。当特定条件满足时,第一个调用链上函数的自动化bot可以获得奖金。
![一文读懂Web3项目为什么需要以去中心化的方式实现自动化 一文读懂Web3项目为什么需要以去中心化的方式实现自动化](https://blog.chain.link/wp-content/uploads/2022/05/Why-Automate-With-Keepers-Diagram_Public-Bounties-1024x677.png)
不可靠
对于开发者来说,要维持赏金机制的平衡尤其困难。如果赏金设得太低,智能合约功能就永远无法被调用;但是如果设得太高,又会对协议造成打击。
公开赏金机制无法保障自动化bot运行的稳健性。在一些极端情况下,比如市场剧烈波动或网络严重拥堵时,协议对bot运行稳健性的要求是最高的,但往往在这种时候,自动化bot可能会为了躲避高昂的gas费或因为资金不足,而停止运行。这可能会导致用户交易完全不被执行。
这个问题对于DeFi协议来说尤为致命,因为DeFi协议需要管理流动性,而自动化流程中一旦出现执行问题,就会导致贷款抵押率不足,并最终导致无法偿付以及用户资金损失。
成本上升
自动化赏金机制还存在一个问题,那就是会增加协议的运行成本。dApp需要从收入中拨出一部分钱,向第一个调用函数的bot支付赏金。由于自动化bot的竞争采用“赢者通吃”模式,优先gas拍卖(PGA)的价格战也会愈发激烈,因此成本也会增加。自动化bot为了赢得赏金会想办法让区块链miner优先处理自己的交易,因此就愿意支付更高的gas费。而这样做会推高总成本,因为大多数keeper任务都包含基础费加gas费。
最终,这些成本都会落到终端用户头上,因此用户不得不支付更高的费用。为了有效解决上述问题,协议可以使用Chainlink Keepers,将更多利益留在协议和金库中。
中心化的bot网络
公开赏金机制最终会导致中心化问题,资金雄厚的自动化bot会发起gas价格战来挤掉其他竞争对手,并垄断市场。结果是,监控并提交交易的自动化bot数量越来越少,而这样也会严重影响dApp的可靠性。
开发者应选择Chainlink Keeper自动触发智能合约的四个理由
Chainlink Keepers可以为开发者解锁一系列智能合约自动化的用例,并且相比上述解决方案具有几大优势。
![一文读懂Web3项目为什么需要以去中心化的方式实现自动化 一文读懂Web3项目为什么需要以去中心化的方式实现自动化](https://blog.chain.link/wp-content/uploads/2022/05/Why-Automate-With-Keepers-Diagram_V1-1024x510.png)
安全性更高
Chainlink节点通过信任最小化的方式来执行运维任务,开发者和用户可以确信他们的智能合约将严格按照约定执行,过程中绝不会被任何外部方操控。Keepers采用去中心化的基础架构,可以有效保障用户定义的服务协议在链上得到执行。
节点会亲自对链上交易签名,因此可以在自动执行的过程中保障私钥不被泄露。这样做可以有效规避中心化的自动化解决方案存在的最大风险,并提升整个协议的安全性。
去中心化程度高
Chainlink Keepers使用Chainlink的去中心化预言机网络来执行运维任务,这意味着Keepers使用的节点也同时为DeFi应用保障了数百亿美元的价值,并且Keepers拥有与去中心化预言机网络同样高的抗女巫攻击能力和防篡改性。每条区块链上都部署了多个Keepers,并且建立了节点轮流筛选机制来提高冗余度,充分保证去中心化水平。
效率更高
Chainlink Keepers设置了多个gas费优化功能,包括节点轮流筛选机制,可以有效避免PGA价格战并为终端用户降低成本。Keepers还可以为DevOps团队节省几百小时的时间,并提升项目效率。开发者可以将Chainlink Keepers基础架构接入与Keeper兼容的智能合约中,并注册一个运维任务,当预定义条件满足时合约就可以自动执行。这样一来,项目就可以将这些资源投入于协议的开发和改进工作中。
可靠且长期可持续
Chainlink Keepers即使在网络极其拥堵且gas费飙升的情况下也能正常运行,并且不会像中心化的解决方案一样受到中心化基础架构下线的影响。当市场波动较大时,Keepers也能成功触发清算,维持协议的偿付能力,并为许多其他用例提供可靠的支持。
Chainlink Keepers为去中心化应用提供关键的基础架构,实现丰富的应用功能
智能合约的其中一个核心优势就是通过去中心化来保障安全。而中心化的自动化解决方案会导致单点失效,因此这个关键优势也会消失。如果dApp可以被某一方操控,那又怎么能保障几百万美元的安全呢?无论是黑客直接发起攻击还是内部操控,这些安全隐患在Web3的核心基础架构中都应该被消除。
Chainlink Keepers使开发者无需依赖中心化的服务器就能打造出自动化的dApp,并成为Web3基础架构中的核心支柱。要开发信任最小化且完全去中心化的高级dApp,Chainlink Keepers是不可或缺的一环,而这也是整个Web3社区和终端用户众望所归的功能。
如果想要将Chainlink Keepers集成至你的dApp,请立即开始使用Chainlink Keepers或查看技术文档。