【Kcash】为什么我们不用图灵完备的智能合约?

话说女娲补天时遗留下来一块石头,它吸取日月之精华,见风而成猴形,终于在一千多年前,一道晴天霹雳,美猴王问世了。在花果山占山为王三五百载,后为了寻求长生不老的方法,历经八九载,跋山涉水,在西牛贺洲灵台方寸山斜月三星洞拜须菩提老祖为师,习得地煞七十二变和筋斗云,并首次取姓为孙,取名悟空。

此后,孙悟空为了寻一件称手的兵器,大闹东海龙宫,终寻得天河定海神针如意金箍棒,因阳寿已尽而大闹地府,修改了生死簿,返回人间。后来孙悟空第一次受天界招安,封为弼马温。因嫌官小受骗受辱,反叛下凡,自封为齐天大圣。后被天界第二次招安,又偷吃蟠桃、御酒、仙丹,继续大闹天宫,被如来佛祖压于五行山下五百年(山上贴有唵嘛呢叭咪吽六字真言)。

五百年后唐僧西天取经,路过五行山,揭去符咒,才救下孙悟空,收起为徒弟。同往西天取经。取经路上,孙悟空降妖除怪,屡建奇功,然而数次被师傅唐僧误解、受到紧箍咒的惩罚,两次被驱逐。历经八十一难,终于大功告成,师徒四人到达西天雷音寺,取得三藏佛经。孙悟空修得正果,加封斗战胜佛。

故事来源:维基百科。


图灵完备:没被带上紧箍咒的孙悟空
非图灵完备:带上紧箍咒的孙悟空

为什么图灵完备的智能合约有巨大安全风险?

首先一个图灵完备的语言意味着,一台计算机可以通过执行这个语言,来完成任何计算机可以完成的任务,也就是说这个语言可以把计算机的能力发挥到最大化!然而这中间存在一个问题,就是当图灵完备的程序写好之后,一旦开始运行,就像没被带上紧箍咒的孙悟空一样,除了如来佛(下线),没人能制服它。它意味着脚本(程序)复杂的无限性,交易可执行的次数也无限,会摆脱人类的控制,有可能导致陷入死循环或系统崩溃。

同时产品在使用的过程中,肯定是需要不停的优化、改进,如果做不到这一点,被淘汰掉是早晚的事!如果没有唐僧给孙悟空带上紧箍咒,时刻提醒他该做什么,可能孙悟空还会再次被压在五指山下面,或许就不是 500 年了。有哪个公司不希望自己做出来的产品,不断迭代精进呢?

所以 Kcash 选择了图灵非完备的智能合约,给智能合约戴上了紧箍咒,加了一些限制条件,不会让它陷入死循环导致系统崩溃,而是保证每段代码都有运行完毕、看到结果的时候!而且可以不断升级,在保证用户资产安全的同时,还给用户带来更好的体验。或许你会以为这不是违背了去中心化的思想了吗?但是世上总有很多事情无法做到两全其美,就像鱼与熊掌不可兼得一样,在选择与放弃之间,我们总得深思熟虑、权衡利弊之后,再做决定。

一点浅见,如果表达有误,欢迎指正!

你可能感兴趣的:(【Kcash】为什么我们不用图灵完备的智能合约?)