对话
1小白:老师好!上期节目中,我们聊到了SWTC商用公链中分层架构的技术优势,今天你能给我讲讲区块链智能合约方面的知识吗?
1大佬:好的。关注区块链就会经常听到“智能合约”的术语,那么我们今天就从这几方面来讲解:如何理解“智能合约”?它从何而来,它如何运作?它有什么优缺点?SWTC商用公链的智能合约,又具备哪些优势?
2小白:好的,老师,我已经准备好纸和笔了。
2大佬:在全面阐述什么是智能合约之前,我们先回顾一下它创建的历史背景,这样有助于理解它的重要性。智能合约的概念可以追溯到1994年,由计算机科学家和密码学家Nick Szabo首次提出,但是因为它早于区块链概念诞生,所以一直没有取得进展。2008年加密比特币诞生,但是因为当时各种区块链发生分叉现象,它依然无法融入到区块链网络里。终于在2013年,涌现出了各种不同形式的智能合约,其中以太坊智能合约使用最为广泛。
3小白:哦,原来智能合约这个词语在1994年就出现了呀,尼克萨博真伟大呀!我好敬佩他!
3大佬:嗯,我也佩服他!现在我们来讲解什么是智能合约的知识。在区块链上运行的程序,通常称为智能合约,具体地说,它是运行在区块链内、主要对Token进行复杂操作的计算机代码。它是一种特殊协议,旨在提供、验证及执行合约。因为有了智能合约,才能确保我们在某个区块链上交易时,在没有第三方的情况下,能进行可追溯、不可逆转地安全交易。也因为有了智能合约,才能为区块链“去中心化”提供重要保证。
4小白:原来程序员们写代码的过程,就是把原先的纸质合约换成二进位制的计算机语言编写在计算机软件里,一旦满足所有交易的条件后,便自动执行结果的过程呀。
4大佬:是的,智能合约是一个数字合约,除非满足要求,否则不会产生结果。
接下来我们来讲讲智能合约是怎么运行的。很多区块链网络使用的智能合约功能类似于自动售货机。如果你向自动售货机(类比分类账本)转入比特币或其他加密货币,一旦输入满足智能合约代码要求,它会自动执行双方约定的义务。义务以“if then”形式写入代码,例如SWTC钱包里,在SWTC的交易页面上,如果你挂了0.0089的买单,有人挂了0.0089的卖单,那么你的CNT就会转给他,他的SWTC就会转给你,你俩通过智能合约就完成了一次交易。通过这种“如果A完成任务1,那么,来自于B的付款会转给A。”的协议,智能合约允许各种资产交易,每个合约被复制和存储在分布式账本中。这样,所有信息都不能被篡改或破坏,数据加密确保参与者之间的完全匿名。咦,小白,你在认真听吗?你在想什么呢?
5小白:老师,我在想要是我会编写计算机程序那该多好!你看我每天为了保持体重还得要自己计算各种食物的卡路里,好麻烦呀!如果我是程序员的话,一定要设计出一款体重秤机器人,每天早上我站上去称体重的时候,它能自动语音提醒我现在是胖了还是瘦了,胖了多少斤还是瘦了多少千克,告诉我一天的饮食怎么安排;我也能把每顿的食谱输进去,然后它告诉我哪些食物能吃,能吃多少克,哪些食物不能吃等等……
5大佬:小白呀,你现在自学计算机编程语言也是来得及的呀。为了编写智能合约,你必须使用智能合约语言(SCL)。这些是直接编写智能合约或编译成智能合约的编程语言。因为我不是程序员,所以也不能为你讲太多,现在有不少网站上都有教程,你可以去好好钻研。
6小白:老师呀,你就别取笑我了。我还是老老实实地跟你先把区块链知识学好再说吧。不过呢,还是希望哪个老板听到了我们的这期节目,满足下我这个区块链小白的愿望。哎,好了,言归正传吧。老师,你来给我分析下智能合约的优缺点吧。
6大佬:使用智能合约有这些主要优势:1.更高效地处理文档。因为它能够采用完全自动化的流程,不需要任何人为参与,只要满足智能合约代码所列出的要求即可。这样一来,节省了时间,降低了成本,交易更准确,且无法更改。2.智能合约去除任何第三方干扰,进一步增强了网络的去中心化。
但是,就像任何其他新的系统协议一样,智能合约并不完美。具体来说:1.会存在人为错误。虽然很多人把智能合约的不可逆转特性看作是它的主要好处,但也有人认为一旦出现问题无法修改。因为人类会犯错误,在创建智能合约时也一样,一些绑定协议可能包含错误,而它们是无法逆转的。2.智能合约缺乏法律监管,只受制于代码约定的义务。缺乏法律监管可能会导致一些用户对网络上交易持谨慎态度。此外还有完全实施有困难、只能使用数字资产等缺点。
7小白:嗯,任何事物在发展的过程中,总会存在一些问题的,希望以后它会越来越好。那么老师,你能给我分析下SWTC智能合约和以太智能合约相比具有哪些优点?
7大佬:以太坊智能合约执行采用同步方式,利用交易触发或者自动触发合约调用,合约在具体执行的时候,区块链的共识机制必须等待合约执行完,返回结果后才能继续操作,从而完成对当前区块的共识。所以存在以下缺点:1 . 合约执行的速度严重影响区块生成的时间;2 . 合约执行的速度严重影响区块链能够支持的合约执行并发量;3 . 合约执行过程中的容错能力受限等。
SWTC商用公链摈弃了以太坊智能合约的同步方式,采用了分层、异步调用和快速执行三种机制,提高了智能合约执行下共识算法的效率,保证了 SWTC 公链的商用可行性。具有以下优势:
1 . 隔绝了合约执行和系统共识单元,合约的执行可以在远端,使得合约的执行不再占有系统共识的资源;2 . 合约执行单元和系统共识单元的去耦合,使得合约执行模块和共识模块相对独立,支持热插拔;3 . 在共识验证单元和合约执行单元之间设立合约执行缓存单元,在整个合约执行过程中创造性地采用了异步调用执行方式,使得合约的调用和执行结果在跨区(区块 i 和区块( i + K ))之间分别实现,同时又能保证各个验证节点之间完成共识;该种合约异步调用执行模式提高了合约执行的并发量,共识的过程无需要等待合约的执行结果,大大提高了区块能支持的合约数量。4 . 提高了整个系统的容错能力,一方面系统可以设置合适的超时处理机制来处理合约延时的情况,另一方面,用户可以在合约调用中配置合适的K 值来保证长时执行的合约得到正确处理。小白,你想了解更专业的内容,你可以去看《SWTC白皮书》。
8小白:老师,跟着你学习区块链知识,我每天都有进步,感谢老师的辛苦付出。由于时间关系,我们今天的学习就到这里了。
8大佬:好的。
9小白:亲爱的朋友们,这里是《区块链改变生活栏目》,我们今天的节目就到这里结束了,感谢大家!我们下期节目再见!
9大佬:朋友们,再见!