这个系列的内容是根据肖臻老师《区块链技术与应用》公开课的内容进行的内容整理,以及部分延伸的思考。文末附有公开课链接。
原课程有26个视频,笔记内容对其进行了合并归纳,共16篇内容,更多可以访问本人主页:
https://mirror.xyz/0xAAF87dC0576EA47B8214f9248b55c081bD9E7CAc
课程发布18年中,基于18年5月份以太坊的版本进行分享。下文是对以太坊的反思和总结。
1.关于智能合约的反思
Is smart contract really smart?
物理世界的自动合约,例如ATM机。
智能合约不智能,挺笨的,只能按照合约执行。
Smart contract is anything but smart.
智能合约用来编写控制逻辑,需要在互不信任的实体之间交易的操作才需要。
但是会比较慢,比较贵。
只是为了大规模计算,用亚马逊云服务就可以了。
2.不可篡改性的双面性
Irrevocability is a double ledged sword.
智能合约的调用,无法阻止。
The DAO的例子,用黑客的攻击办法,把钱转给自己。
3.Nothing is irrevocable.
宪法都可以修改,可以被推翻。禁酒令被推翻。18修正案,在21修正案被推翻。
一般的比较难修改,真正重大的还是能修改的。
4.语言设计
solidity语言,调用fallback函数,有可能安全漏洞。
Is solidity the right programming language?
有人认为函数式语言,Formal verification,实操上困难,证明过程比较复杂,简单的还行,复杂的很难。
5.编写智能合约的语音,应该有什么样的表达能力?
目前以太坊是语音是有图灵完备的表达能力。
现实世界中,合同也可能会有漏洞啥的,解决方案是有一些模板。但是最终还是律师事务所完成的。
6.开源好处?
增加公信力,全节点才好执行。
开源的代码,bug容易被发现。但是也可能都没认真看。
Many eyeball fallacy(misbelief).
7.what does decentralization mean?
以太坊的团队无法强迫所有人接受,用脚(挖矿)投票。不支持的继续在原来的链上。
去中心化,不是说规则不能修改。而是对规则的修改,用去中心化的方式完成。
比如以太坊的团队为了一己私利,转账给自己,大家不会支持的。
分叉才是去中心化的体现。中心化的世界无法分叉,普通用户没有选择权。
8.decentralized≠distributed
去中心化一定是分布式的,分布式不一定是去中心化的,可能是被同一个主体控制。
State machine,状态机几千台机器重复一个操作,维持一个状态。这个不是状态机的常态。
状态机,不是为了速度快,而是为了容错。mission critical application
Air traffic control; stock exchange; space shuttle重复操作,防止“掉线”,机器的数目比较少
比特币只是一种支付方式,去中心话的,用比特币的商业模式不一定是去中心化的,这是不冲突的。
区块链概念滥用:好像区块链可以解决所有问题,无论是效率问题还是监管问题等等。
例如:保险理赔放在区块链上使得转账速度更快,保险理赔慢并不是支付系统本身的局限性,而是人工核保的时间较长,一旦金额确定,银行转账比加密货币转账要方便快捷的多。而区块链本身并不能解决核保这方面的问题。
还有说区块链可以防伪溯源的,比如说有机蔬菜的生产到销售都是可以放在区块链上的,应用没有问题,主要问题是区块链不能自己输入数据,如果第一次输入的数据就是错误的,区块链技术不可篡改也没有办法检测出哪些数据是不真实的。
信任机制:在互不信任的实体之间建立共识,有些人认为这是一个伪命题,因为互不信任的实体之间是无法交易的,比如说网上购物,不信任对方,给了钱不发货怎么办?货品有质量问题怎么办?
去中心化的不一定就是最好的,很多问题去中心化解决不了,中心化的机构像如信用卡就可以很好解决一些信用卡被盗等问题。中心化和去中心化两者并不是水火不相容的,也可以完美结合起来使得效果更好。
借用2000年左右互联网泡沫时期,对dog food电商网站的一句评价:
**If the business model is bad, it's still bad on the Internet.
**
区块链因为交易一旦打包上链就不能撤回了,转账后悔之后没有办法取消,信用卡可以申诉退钱,但是BTC转账之后都不能撤销了。
这种说法是有问题的,所谓的退款都是发生一个新的交易,退钱。比特币也可以再退款,发生一个新的交易,这个和不可篡改是没有关系的。
还有一些质疑是和法律监管和保护相关的,大部分的支付还是受法律保护的,区块链支付现在是缺乏监管的状态,监管有好有坏,发生了不好的事情监管可以帮你保护自己的利益,但是没有监管只能白白损失。
法律的监管和保护和支付手段是没有关系的。
BTC就不应该和已有的支付手段竞争,它应该发挥自己的特长,用在已有的支付方式解决的不是很好的地方,比如跨境支付。
货币的支付方式可以和信息传播的方式融合在一起。
下一代互联网可能是价值交换网络Internet of value 。支付渠道和信息渠道相互融合,使得价值获得和信息获得一样方便。
Information can flow freely on the internet, but payment can not.
BTC和以太坊的耗能都是非常大的,好像现有的支付方式好很多。
第一:加密货币本来就不是用来和已有的支付方式竞争;
第二:区块链的发展以及共识协议的改进,一些新的加密货币已经在支付效率上已经是大大提高了;
第三点:评价支付的效率要放在当时的历史背景之下比较。
智能合约出现漏洞之后有些人觉得还是自然语言的法律合同更好,老百姓还看得懂。
对于这种观点,首先要意识到程序化是个大趋势,我们有没有ATM机出现了各种故障而不用它?并不会,所以智能合约的故障是无关紧要的,技术的革新会不断完善。
去中心化不是万能的。
1、Software is eating the world.
2、丘吉尔的一句话
Democracy is the worst form of government except all those other forms that have been tried from time to time.
课程原文地址:
https://www.bilibili.com/video/BV1Vt411X7JF?p=23&vd_source=6807dc8dcddb18fe6db9d949c12b670c
