前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >区块链技术与应用07 北大肖臻

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

原创
作者头像
Daffy
修改2020-11-16 09:53:10
9210
修改2020-11-16 09:53:10
举报

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

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. 评价支付方式效率的好坏,要考虑时代背景,历史条件。比如在跨境支付场景中加密货币已经很快了。

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

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ETH-TheDAO
  • ETH-反思
  • ETH-美链(beauty chain)
  • ETH-总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档