LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 币圈百科 > 从“隔离”出错讲区块大小的解决方案

从“隔离”出错讲区块大小的解决方案

2020-02-21 东大仙 来源:区块链网络

最近因为新冠病毒的原因,“隔离”一词非常火暴,事实上这个词当初在比特币圈内也引起过巨大争议,而且我的一位朋友今天就遇到隔离问题了。

我的一位朋友一直用的CORE钱包接受转账,一直没有什么问题,但是今天他在接受一笔转账时,对方老是说账号异常,无法完成。后来他发现问题所在,原来他为这笔转账单独生成了一个接收地址。在生成新地址时,缺省装态下“生成原生隔离见证(Bech32)地址”这个选项是打开的,所以接收地址一共有42个字符,而不是常规的34位地址,再加上币安提币时不支持原生隔离见证地址,所以转账出错无法完成。


那什么是原生隔离见证地址呢?他与普通地址的区别在哪里呢?

隔离见证,即Segregated Witness,就是我们常常听说的SegWit.为什么要搞隔离呢?

我们知道比特币链上所有的交易信息都是打包在区块里面的,比特币的一个区块的容量大小只有1M。比特币约10分钟产生一个区块,每个区块每秒平均大约可以纪录几个交易纪录。这些交易纪录要占多少容量呢?一般一条普通交易的全部信息大约只有250个字节,由于对单笔交易的信息大小没有限制,所以某条交易废话信息特别多的话,就有可能高达几十K,这些废话多的交易信息很容易占满比特币的一个区块大小,当区块链没有足够的空间来容纳用户发起的各种转账交易时,就会有一些交易迟迟得不到确认,从而产生交易堵塞。

打个比喻:银行一个窗口十分钟内平均处理五笔交易,现在有一个人在给老婆转账时,在备注处化了五分钟写了一首情书,后面的客户都得等他写完。当客户少时(用比特币的人少时),这没有问题,但是如果客户很多时(越来越多的人用比特币转账时),这样的客户多几个,这个窗口就会堵塞,其时银行业务窗口就完蛋了。此时只有两个办法,要不就增加几个窗口,要不就对备注的字数进行限制。

回到比特币区块上面来,比特币的区块只有1M大时!当比特币交易数量增加时,区块空间就显得非常宝贵,这个时候,为了争夺这有限的区块空间,有些土豪便会通过提高手续费来诱使矿工优先打包自己的交易信息,很多普通客户只能干等,这种糟糕的体验感就驱赶忍受不了的用户逃离比特币,选择其它加密货币,比特币变成土豪们的玩物,比特币的生态系统就崩塌了!

所以为了解决这个问题,就有两派意见产生,提供了两种方案:

方案一、区块太小就加大区块容量,从1M变成2M,或者豪气一点,直接变成8M,这样海阔天空。

但这样做的结果就是:

1、增加存储区块链数据的成本,大家想运行全节点钱包,必须弄一个海量硬盘。

2、增加数据传输成本。上传下载要半天时,没有高速宽带无法玩。

3、加大各种运算或者记账成本,垃圾信息也必须计算验证。

总之一句话,如果有人想用全节点钱包,成本太大,于是就把大部分用户驱赶到轻质钱包上面去了。而轻质钱包无法验证自己收到的交易是否有效,如果矿工与欺诈者互相勾结,那么就会产生假币:攻击者给使用轻质钱包的的用户发送假币,轻质钱包因为没有全部数据,无法验证交易的有效性,此时用户钱包虽然显示收到了币,但是这些币无法真正用出去!所以增大区块,容易变成矿工中心化,比特币变成矿工的玩物。

方案二、既然空间小,大家就想办法节省空间,缩小交易数据的尺寸。

把那些不重要的交易数据数据直接丢弃,或者隔离起来不与重要信息放在一起。比如上面讲的银行例子,银行窗口转账时,只处理重要的户名、账号与转账数量,备注里的漫柔情书直接无视不予纪录,这样迫使客户节省时间,想写信就在家里写好,到邮局去寄,这样银行转账与写情书两件事就隔离开来,为银行窗口办理业务节省了时间。这样象七彩神仙鱼与大白鲨一样在比特币区块上面涂鸦秀恩爱的事情就不会发生。

隔离见证(segwit)因为从交易中删除签名等不是非常重要的信息,把这些不是非常重要的信息另行处理,从而让交易数据块变小,这样每个区块便可容纳更多笔交易,貌视不错的方案,但是隔离验证也有问题:如果我们把一个区块比作成一架飞机的客舱,交易记录是乘客,签名是乘客的大型行李。当我们把行李与乘客隔离起来分别运输时,虽然客舱可以容纳更多的乘客,但是最后下机时,如果证明行李主人领取权限的条码被人修改过,此时乘客便无法拿到自己的行李。或者会拿走被人调包的行李......

两种方案各有千秋,如果是你来投票,会如何选择呢?

—-

编译者/作者:东大仙

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...