博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BCH升级在即,什么是Canonical Transaction Ordering Rule?(二)
阅读量:6414 次
发布时间:2019-06-23

本文共 1559 字,大约阅读时间需要 5 分钟。

在上篇文章,我们简单解释了什么是操作码OP_CHECKDATASIG。今天主要解释下11月份BCH升级的另一个重要的提案交易规范排序规则Canonical Transaction Ordering Rule(CTOR)是什么。

区块是比特币安全的根本 众所周知,在比特币之前也有很多去中心化数字货币的尝试,但是都因为没有解决“双花问题”而失败了。比特币通过创建一个分布式服务器时间戳解决双花问题。正如白皮书里所写的 “时间戳服务通过取一个区块的哈希值,然后广泛地广播这个哈希值,类似于发新闻稿。”

这其实也就是工作量证明机制,让试图作恶的人难以更改已经公开的区块。需要注意的是,不是一个个单笔的交易,而是一个个的区块构成了这个时间戳服务器的单位。作为矿工,成功完成工作量任务,就是在打包区块。

换个角度说,你刚刚发送了一笔交易,正在焦急地等待钱包里出现第一个确认。这时候你就知道有矿工把这笔交易连同其他交易一起安全打包进区块了。

这跟CTOR有什么关系?再强调一遍:比特币之所以安全,重点是区块顺序,而不是交易顺序。

一个区块里的交易排序对比特币的安全模式基本没有任何影响。事实上,交易排序只不过是一种执行细节罢了。这一点非常重要,因为不懂的人对CTOR存在这样一种误解:CTOR是一种极端的实验,会从根本上改变比特币。

商品购物清单 举一个简单的类比:假设我老婆给了我一张购物清单,让我去商店买鸡蛋,面包,牛奶等商品。

我老婆只关心我回家的时候有没有给她买回来这些商品,不会在乎我先去了商店的哪个货柜,先买了什么。在这个类比中,单个物品就是单笔交易,整个购物清单就是区块。商店shopping结束后,物品都买到手了,就可以了。

规范(Canonical)是个听起来让人怕怕的单词 开发者就喜欢使用一些听起来特别学术,特别高大上的单词,比如“canonical”。其实都是为了装逼。所谓规范就是按照数字大小从最低到最高的顺序排列。也就是说,交易ID(十六进制的一串数字)或者交易哈希最小的最先出现在区块中,最大的数字哈希出现在最后。

现有的交易拓扑排序 Topological transaction Ordering rule (TTOR) Oops,又是一个装逼的术语:拓扑。简单说,如果你有一个未确认母交易(你花的币来自同一个区块的其他交易),就需要先把母交易放进区块里。给你们看一张丑图。

如图,有A, B, C,D三笔交易。B交易的输入用到了A交易的输出,C跟D交易都用到了B交易的输出。B就是A的子交易,C跟D是B的子交易。在TTOR下,交易可以是任意顺序,可以是ABCD, 可以是ABDC,但是不可以是ACDB。母交易必须要排在子交易之前。

CTOR提案计划按照数值最低到最高排列交易顺序。这就会自动的抛弃拓扑排序。毕竟二者不能同时实现。 为什么要实行CTOR? 一句话:为了扩容。CTOR可以减少系统的复杂性,比TTOR实现起来更简单。这其实是ABC团队跟nChain去年已经达成共识的。

总之,CTOR确实是比TTOR好用,但是并不一定会获得整个社区的支持。比如有Reddit名为/u/awemany的用户就发文驳斥CTOR还没有准备好成为最佳解决方案,对实际改善网络没有太大作用,最终可能是倒退。

这篇文章评论数超过100+,无疑是质疑CTOR的第一热帖。但是OpenBazaar的开发者Chris Pacia随后也在第一时间发文回应了Awemany的质疑。有兴趣的读者可以移步Yours去阅读全文了。

All right,今天的文章到此结束。昨天的文章发出去,有读者留言让我别跟吴忌寒玩了。(呃,不认识,玩什么。。。)翻译一篇文章而已,大家都放平心态,做自己认为是对的事情吧。 作者:行走的翻译C

转载地址:http://yzkra.baihongyu.com/

你可能感兴趣的文章
2011/7/3 第二次评审
查看>>
Openvswitch手册(2): OpenFlow Controller
查看>>
tar解压
查看>>
inheritprototype原型继承封装及综合继承最简实例
查看>>
【磁耦隔离接口转换器】系列产品选型指南
查看>>
Apriori 关联算法学习
查看>>
二叉树、红黑树、伸展树、B树、B+树
查看>>
Junit核心——测试集(TestSuite)
查看>>
MVPArms官方首发一键生成组件化,体验纯傻瓜式组件化开发
查看>>
Log4j_学习_00_资源帖
查看>>
制作iso镜像U盘自动化安装linux系统
查看>>
JSLint的使用
查看>>
命令行常用命令--软连接
查看>>
HTTP POST GET 本质区别详解
查看>>
OC继承专题
查看>>
PHP中HASH函数的优化技巧
查看>>
MD5加密
查看>>
RSA算法实例
查看>>
ant
查看>>
微信,想要说爱你,却没有那么容易!
查看>>