区块链技术与应用07 北大肖臻

2020-11-16 09:53:10 浏览数 (1)

最后啦!!!争取今晚看完。。。。。。

ETH-TheDAO

DAO: decentralized autonomy organization 通用概念,去中心化的自治组织。

The DAO一个类似众筹的基金。本质是运行在以太坊上的智能合约。只存活了三个月。

DAO: decentralized autonomy organization 通用概念,去中心化的自治公司。

如果和大多数人意见不合,拆分DAO(Split DAO),得到child DAO,投资者取回投资和收益的唯一途径。拆分之前有七天的辩论期,拆分之后有28天的锁定期。问题出现在了splitDAO的实现上。正确的操作顺序应该是先把账户清零再转账,黑客就是利用了这个漏洞进行的攻击。黑客转走了五千万美元的以太币,一共资产才一个多亿以太币。

Too big to fail. 类似美国金融危机,太大,不救不行。最后社区选择了采取补救措施,利用28天锁定期,操作回滚。

怎么补救?

直接分叉。只能影响黑客盗币的交易,不能影响其他的正常交易。

第一步锁定黑客账户。发布了一个软件升级,增加了一条规则,凡是跟The DAO 账户相关的,不允许做任何交易。发布后,大多数以太坊的矿工升级了软件。新矿工挖出来的区块,旧矿工是认可的。但是旧矿工挖出的区块,新矿工有可能不认可,所以属于软分叉。软件升级的方法,很好,也得到了大多数矿工的支持。遗憾的是,升级之后的软件,有一个bug,本来是合法交易,但现在与DAO账户有关,加了新规则就不合法了,还要不要收汽油费?以太坊的软件升级在这种情况下,没有收汽油费!导致了大量的DOS。于是没办法回滚了,软分叉方案失败了。

第二种方案。以太坊团队设计了硬分叉方案,通过软件升级,把The DAO账户上的资金强行转到了新的智能合约上。新的智能合约只有一个功能,就是退钱。强制执行。这里强行让所有The DAO账户的资金都转到新的智能合约。

支持硬分叉和反对硬分叉分成了两派。旧的链没有消亡,只是算力下降到了原来的十分之一。新的链还叫ETH,旧的链叫做ETC。

现在还是两条链新链旧链并存。后来给两条链加了chainID了。

为什么锁定The DAO的所有账户,而不只是黑客的账户?这里不能只锁定黑客的账户,因为如果这么做,后来的黑客还是可以利用这个 split DAO的 bug 再次攻击。

ETH-反思

  1. 智能合约真的智能吗(Is smart contract really smart)? 其实应该叫做自动合约,物理世界中的智能合约,自动取款机,并不智能,挺笨的,一旦写好了不能更改,只能算代码合同。Smart contractis is anything but smart.
  2. 不可篡改性其实是一个双刃剑(Irrevocability is a double edged sword)。一方面,不可篡改行增加了合约的公信力。没有人能够篡改规则。另一方面,规则中存在漏洞,想要修补漏洞,升级软件是很困难的。软件更新需要硬分叉。即使出现了漏洞,冻结账户停止交易是很困难的。智能合约一旦发不出去,不能阻止其它账户对智能合约的调用。The DAO 正确的做法是,利用黑客的漏洞把剩下的钱都转到一个安全的智能合约账户里,新的合约为了将来把钱退给大家。
  3. 没有什么是不可更改的(Nothing is irrevocable)。美国宪法都可以修宪。
  4. Is solidity the right programing language? 是否应该用函数式编程语言?用形式化方法证明程序的正确性(Formal verification),实际中困难很大。常用的智能合约会拥有合同模板,未来可能出现专门编写智能合约的机构。最终会走向成熟
  5. Many eyeball fallacy(Misbelief)。开源的,本应该很多人都看,本应该是安全的,但是实际上很少人去仔细看,能看懂的也很少。
  6. What does decentralization mean?首先以太坊团队弄了投票,后来以太坊团队没有办法强迫大家支持硬分叉,以太坊团队也没有办法强迫不支持的硬分叉来支持硬分叉。存在分叉的选项恰恰是去中心化的体现,是民主的体现,现实世界你可以放弃,不可以分叉。
  7. 去中心化不等于分布式(decentralized neq distributed)。decentralized:状态机模式(State machine),特点是让系统中几千台机器重复做同一套动作,付出很大的代价来维护状态的一致性,并不是分布式系统常用的工作模式。distributed:不同的机器做不同的工作,把工作结果汇总起来得到最后的结果,目的是比单机速度快。要在互不信任的实体之间建立共识的操作,需要智能合约。需要大规模计算,则可以建立在大公司的云服务平台。

ETH-美链(beauty chain)

Initial public offering IPO Initial coin offering ICO 发行代币

EOS用的DPOS机制形成共识,上线之前也是依附在以太坊上的代币。

ERC ethereum request for comments

计算乘法的时候,如果这个value非常大,给每个人发送的代币数量很大,会发生溢出,amount会是个很小的值。下面在减amount的时候,减的是很小的一部分代币,但是下面仍然是按照很大的value数目给每个账户增加代币。结果就是相当于系统当中凭空发行了很多代币。

ETH-总结

保险理赔放到区块链。慢的原因是理赔的内容需要人工审核,支付技术不是瓶颈。

防伪朔源。从一开始就是错的怎么办,写入区块链的信息本身就是错的。

在一个成功的商业理念里面,既可以有中心化的成分,也可以有去中心化的成分,比特币只不过是一种支付方式,并不是说使用比特币的商业模式也得是去中心化的。

区块链缺乏法律的监管,没有法律上的监管也意味着没有法律上的保护,未必是好事。

加密货币本来就不是应该和现有的货币做竞争,加密货币应该应用在已有的支付方式解决不太好的领域。跨境支付。

Information can flow freelyon the Internet, but payment cannot.支付渠道将会和信息传播渠道相互融合,使得价值交换也会和信息传播变得一样的方便。

有人认为加密货币是低效的,浪费资源。

  1. 加密货币本来就不是应该和已有的货币做竞争。
  2. 公式协议的不断改进,加密货币的效率已经大大提高了。
  3. 评价支付方式效率的好坏,要考虑时代背景,历史条件。比如在跨境支付场景中加密货币已经很快了。

智能合约问题很多,也看不懂?程序化是大趋势。并且智能合约正在发展早期,以后可能会出现很多模板。但是也不能认为智能合约可以解决所有问题。

完结撒花!!!!!!接下来开始看论文啦!!!!!!

0 人点赞