今年对与bitcoin来讲是不平凡的一年,它经历了价格的暴涨、腰斩和再次暴涨,对于这些现象背后的利益博弈网上分析的文章很多,我就不再赘述了。我们从技术的角度上分析一下bitcoin的发展历程,同时预测一下未来的前景。

Bitcoin要硬分叉的消息就像狼来了一样,不过最后还是来了,最终会分化成以下几个链:

Btc:支持隔离见证,打死都不扩容,说1M就是1M,中坚力量是所谓的core党。

Btc Cash(BCC):不支持隔离见证,8M大区块才叫爽,低手续费,高交易速度,你值得拥有,中间力量是BU党。

Btc Golden(BTC GPU):支持隔离见证,更换了挖矿算法,从sha256切换到了Equihash(Zcash用的挖矿算法),最大的影响就是以后要用GPU挖矿,ASIC矿机用不了了。

Btc2:纽约共识达成的Segwit2x计划,隔离见证+2M区块,预计11月会分叉,背后是很多大矿主和交易平台。

如下图所示(图片来自巴比特网站):

Bitcoin今年最大的特征就是分裂,大路朝天各走一边。我们可以看出上面分叉的地方和即将分叉的地方有两个关键性点:区块扩容隔离见证

扩容比较好理解,就是上调区块大小的阈值,那么隔离见证又是怎么一回事?

没有隔离见证前一个交易数据如下:

“inputs”: [  //输入

{

"addresses": [

"1FgnZaSAjRb4AXZdWJBURNWEMiBVTRnc9w" //老刘地址,指明了打赏币的来源是来自老刘的地址锁定的币      ],

“value”: “4.84540000″,

“value_int”: 484540000,

“txid”: “384c16f1a0f434775f640e55a35e79847b1a8ac5d184bef87cca054581a569d7″,//收入来源交易单的散列值

“vout”: 1,

“script_sig”: {  //老刘的私钥签名

“asm”:
“30450221009b5f141a1de247313bf4c1d51dda7e12d05afcbb2fe2352492f9aca104be3f95022020504ed638b837e5db087e488d212f20e4ed0f4a7d4172a51d455d377da7417701
031d96241bd479299b73f4335da47350f64985aa37558a526877e48a255c62bbe3″,

“hex”:
“4830450221009b5f141a1de247313bf4c1d51dda7e12d05afcbb2fe2352492f9aca104be3f95022020504ed638b837e5db087e488d212f20e4ed0f4a7d4172a51d455d377da741770121031d96241bd479299b73f4335da47350f64985aa37558a526877e48a255c62bbe3″

},

“sequence”: 4294967295

}

],

“output_count”: 2,

“outputs”: [//输出

{

"addresses": [

"14mhzjkJ71oMAMkKu3dy98dnUpkyQBHL1r"//我的地址,打赏的币被我的地址锁定

],

“value”: “0.00330000″,//老刘打赏给我的金额

“value_int”: 330000,

“n”: 0,

“script_pub_key”: {//我的公钥脚本

“asm”: “OP_DUP OP_HASH160 295ce6a5684ebdbd526765231e25d36c34fc0e50 OP_EQUALVERIFY OP_CHECKSIG”,

“hex”: “76a914295ce6a5684ebdbd526765231e25d36c34fc0e5088ac”

},

“req_sigs”: 1,

“type”: “pubkeyhash”,

“spend_txid”: “b1fdf100105a0f3894d5aade320a2beb420195546ddea440c334b6280cbd6310″

},

{

“addresses”: [

"1FgnZaSAjRb4AXZdWJBURNWEMiBVTRnc9w"//这是找零地址,找回老刘自己的地址里。

],

“value”: “4.84200000″,

“value_int”: 484200000,

“n”: 1,

“script_pub_key”: {

“asm”: “OP_DUP OP_HASH160 a1180435a4616f2094837e3eeac46bb0b81b50e6 OP_EQUALVERIFY OP_CHECKSIG”,

“hex”: “76a914a1180435a4616f2094837e3eeac46bb0b81b50e688ac”

},

“req_sigs”: 1,

“type”: “pubkeyhash”,

“spend_txid”: “c13e66805b283df162b5c9ed95c2c1f35ca9c93d2293cd3641509e7a2321c9db”

}

],

“tx_index”: 99579908,

“block_index”: 833

}

在隔离见证之后私钥签名就包含在交易的数据结构体里面了,而是替换为一个指针地址指向发起方签名,这些隔离认证的交易签名也会以默克尔树的形式存储,但是只存储在矿工节点和记账节点。

  这样每条交易的数据变小了,区块可以打包的交易数量自然就变多。隔离见证这个技术一直比较有争议,将签名数据和交易数据分开是否会降低交易真实性的保障?这还有待商榷。而扩容也会导致区块在p2p网络传播速度变慢,增加区块同步的延时更容易造成分叉,同时会提高对节点的网络通信质量的要求,增大硬件开销。其实无论是隔离见证还是扩容都是为了提高比特币网络的交易吞吐量,基本的思路都是增加每个区块内包含的交易数量,但为什么会产生这么大的争议?归根结底还是代表的利益团体不同罢了,Bitcoin core认为扩容会导致普通用户的影响力被削弱,因为矿池和矿池之间通过专用的高速网络进行区块同步,所以扩容对矿池不会造成影响,但对于普通用户而言会产生很大的影响(如区块同步延迟变高,永远在后面吃灰),最终导致中心化。但实际上比特币的中心化已成定局,高算力和高内存的开销导致普通用户对挖矿望而却步(根本就是赔本买卖),甚至充当记账节点的意愿都很低,现在不加入矿池基本已经挖不到矿了。

  作者认为无论是扩容还是隔离见证都是扬汤止沸,不能从根本上解决交易拥堵问题。闪电网络倒是一个不错的出路,现在Ethereum也面临着同样的问题,他们也推出了一个类似闪电网络的解决方案,通过这种 链下支付 + 统一结算 的方式来减缓主链的压力。举个例子,Alice和Bob两个人经常有交易往来,但是老走链上太慢了,于是两个人建立一个点对点的快速支付通道,双方共同维护一个账本,记录两个人的交易往来,等买卖结束了咱再算一下总帐看看到底要支付对方多少Btc? 然后提交到主链上面去进行实际转账。

  目前,由于矿池的崛起和交易平台的兴盛导致中心化日益加重,现在有很多人对于Bitcoin 去中心化的货币的概念表示有所怀疑,或者说认为中本聪的电子货币实验已经失败了。但作者认为这种中心化是不可避免的,虽然中本聪赋予了每一个节点平等的权利(都可以去记账、去挖矿),但是每个节点的能力是有差异的,有些节点没有能力或者是需求去行驶自己的权利(对于一般用户和投资者钱包节点已经足够了)。同时权利和义务是绑定,放弃了权利也就避免了义务(记账和维护账本安全),而那些履行义务的节点必定要获得一定奖励才能有履行义务的动力,就像人类社会一样永远不可能人人平等,但我们不能因为节点不具备相应的能力就彻底剥夺它的权利。而且时至今日,也没有哪个组织和国家可以彻底控制比特币,很多主权国家对它畏惧如虎,所以作者认为比特币不仅没有失败而且非常成功

  综上所述,作者对比特币的前景是看好的,预期bitcoin block除了闪电网络这一技术路线外,类似usdt使用 the Omni Layer Protocol基于bitcoin block来发行代币也是不错的发展路线。

关于Bitcoin的分叉之路的更多相关文章

  1. BCH硬分叉在即,Bitcoin ABC和NChain两大阵营PK

    混迹币圈,我们都知道,BTC分叉有了BCH,而近期BCH也将面临分叉,这次分叉将是Bitcoin ABC和NChain两大阵营的较量,最后谁能成为主导,我们拭目以待. 比特币现金(BCH)的价格自上周 ...

  2. BCH分叉是一次站队博弈

    BCH分叉在即,很多人说BCH本次分叉实质是大佬间的斗争,主要是本次BCH分叉主要分为两大派别: 一派以BCH用户量最大的客户端Bitcoin ABC开发组为主,要在11月15日展开硬分叉升级,主要升 ...

  3. what??|诞生才一年的BCH竟面临硬分叉的抉择

    BCH才刚过一周岁生日一个星期,BCH社区的主力之一Bitcoin ABC(BCH全网接近三分之二节点运行的软件系统由Bitcoin ABC开发)就搅动了社区的涟漪.8月8号,Bitcoin ABC公 ...

  4. Python之路,Day21 - 常用算法学习

    Python之路,Day21 - 常用算法学习   本节内容 算法定义 时间复杂度 空间复杂度 常用算法实例 1.算法定义 算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的 ...

  5. [区块链] 带你进入Bitcoin开发 - 环境搭建

    学习完区块链枯燥乏味的.高深的.必备的基础知识后,终于可以走上开发之路了!真是迫不及待啦!之后博客更新主要放在区块链的开发上,相信这才是大多数同学更加感兴趣的地方!学习过程从最经典的区块链鼻祖-比特币 ...

  6. bitcoin源码解析 - 交易 Transcation (一)

    比特币中的交易可谓是比特币的最核心部分.比特币由交易产生,而区块就是用来存储交易的.所以,交易是比特币存在的载体,同时也是比特币中最复杂的部分.交易的运作层层相扣,各个部分缺一不可,十分严密,由此体现 ...

  7. 转:Java工程师成神之路~(2018修订版)

    转: http://www.hollischuang.com/archives/489 阿里大牛珍藏架构资料,点击链接免费获取 针对本文,博主最近在写<成神之路系列文章> ,分章分节介绍所 ...

  8. (路-莫)-Python基础一

    一,Python介绍 1,python的出生与应用 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打 ...

  9. 在BCH硬分叉后防止重放攻击-1

    导致新加密货币的硬分叉为加密交换运营商带来了独特的机遇和挑战.Poloniex在最近的Bitcoin Cash硬叉之后面临的一个挑战是保护我们的客户免受重播攻击.由于SV链后面的开发团队选择在分叉后近 ...

随机推荐

  1. Mysql----关于内联,左联,右联,全联的使用和理解

    准备工作:新建两张表 表一:student 填充内容:编号,姓名,班级 表二:school 填充内容:编号,班级,专业 这两张表建好了,意为班级选课表,两张表没有任何主外键的关系,下面进行内联,左联, ...

  2. CAN通讯的总结

    1.CAN通讯有套国际标准,套协议版本号,种故障状态,种数据帧类型,种总线错误类型. 2.CAN的国际标准有两种ISO11898和ISO11519. 3.CAN2.0协议分为A版和B版两种,A版协议仅 ...

  3. org.hibernate.LazyInitializationException could not initialize proxy-no Session的解决

    方法一:在web.xml配置延迟关闭session的过滤器 <!-- 延迟关闭session OpenSessionInViewFilter 的顺序位于struts2过滤之上 否则延迟关闭ses ...

  4. swift手记-4

    // // ViewController.swift // learn4 // // Created by myhaspl on 16/1/23. // Copyright (c) 2016年 myh ...

  5. codeforces 558 E A Simple Task

    题目大意就是给一个字符串,然后多个操作.每次操作能够把每一段区间的字符进行升序或者降序排序,问终于的字符串是如何的. 做法的话就是用线段树维护区间和 一開始仅仅考虑字符串中字符'a'的情况.如果操作区 ...

  6. XML解析之SAX

    今天在敲代码的时候,想要实现地址选择功能,就是那个能够选择省.市.县的一个,用到的一个开源框架Android-PickerView,当然他这个里面尽管实现了能够选择的城市列表.可是他这是自己创建的,可 ...

  7. ITM事件直接接收并解析

    之前在实施一个监控项目时.客户由于买了IBM的小机.当前就赠送了TIVOLI的系统监控软件一套,客户也在他们的生产环境中部署了ITM的监控.由于没有购买IBM的netcool,无法集中管理告警事件,请 ...

  8. ABP入门系列(21)——切换MySQL数据库

    ABP入门系列目录--学习Abp框架之实操演练 源码路径:Github-LearningMpaAbp 1. 引言 Abp支持MySql已经不是什么新鲜事了,但按照官方文档:Entity Framewo ...

  9. MyBatis_查询缓存01

    一.查询缓存 查询缓存的使用,主要是为了提高查询访问速度.将用户对同一数据的重复查询过程简单化,不在每次均从数据库中查询获取结果数据,从而提高访问速度. MyBatis的查询缓存机制,根据缓存区的作用 ...

  10. springmvc中@PathVariable传Double精度丢失

    页面请求 http://localhost:8080/test/3.201 后端接受数据 /** * 测试 * * @param number */ @RequestMapping(value = & ...