BSV的应用程序架构设计及误区(二) - 打点钱包

BSV的应用程序架构设计及误区(二)
2020.12.28

前文回顾:BSV的应用程序架构设计及误区(一)

 

作者:矿工哲亮

 

 

接下来,解释一下为什么未来比特币网络可以做到这一点。

 

因为在比特币网络世界里面,矿工是小世界网络,大家现在可以搜索一下,相信很多人应该知道什么叫小世界网络,每一个矿工节点和其它矿工基本上都保持着良好的连接,这样任何一条信息最多经过两次跳跃,就能够完成在矿工中的传播,它意味着这将成为下一代互联网的核心骨干基础设施。因为矿工之间的联通性受到了矿工出块、孤块率的影响,被矿工想要追求更高收益的这个贪婪的驱动力所推动着提升。所有的矿工为了减少自己的损失,为了增大自己的收益,会尽可能的提高和其它矿工的连通性,尽快从其它矿工手里把刚出的块收到手里,开始挖自己的下一个块。同时,在自己出块时,要尽快把自己的块传递给其它的矿工,让别人在自己的区块上工作。

 

很多人认为矿工的挖块就是刷哈希、扔色子,其实不是这样,目的并不是最快速度出块,是需要让所有的其它矿工接受自己的工作成果,出的块诚实、速度快、传播性好,匹配了当前网络的效率,那么才会被其它矿工所接受,其他人才愿意投票。


如果我们现在区块上限拿掉了,在这以后,比特币SV将没有区块大小的限制,当前的网络假设我们只能接受10GB的区块,OK,有人决定发一个50GB的区块来搞垮大家,会是怎么样?很显然,这个区块太大了,大到大家所有的其它矿工都来不及验证,那么它一定会成为孤块,没有人会在它上面继续投票的。

 

所以,在这个驱动下,矿工会保持一个紧密连接的、高效的、高速的带宽组成的小世界网络,在这个小世界网络里面,矿工在合理大小的区块的传递上是高效的,任何的从一个矿工到达另外一个矿工的消息通讯,最多只需要经过两跳。

 

关于SPV(简单支付验证)

 

在这种情况下,我们所有的用户、所有的服务提供商他们不是矿工,他们都会运行一个叫做SPV(简单支付验证)节点的东西,和矿工保持紧密的连接,全世界可能有几十上百号矿工,那么你可以选择一个离你速度最快、最近的矿工进行连接,然后你可以委托他们帮你把消息传递给你的目标的另外一个用户,这是接下来我们作为矿工的基础设施可以为大家提供的服务。

 

每一个连接全部都是由公钥进行控制的,进行识别的,在接下来的IPV6的世界里面,每一个地址背后由于CGA的加持,都用公钥和私钥。那么我们可以通过这种方式,极大的改善我们当前的互联网的连接,因为每一个参与者通过自己的电脑,委托矿工,就可以在四跳之内把自己的信息传递给目标服务器,这是一个非常令人惊讶的结果,因为如果你们自己有涉及过、参与过网络的设计的话,有试图用过traceroute来追踪自己包自己达到目标服务器的话,你就会知道,十跳以上已经是很快的结果了,因为中国的网站你要访问美国的服务器,你需要一层层的往上找到边界网关服务器,再边界网关服务器当中再往下一层层的去翻到目的的地址,这中间的过程没有十几跳是完不成的。但是在可以预见的、接下来的Near future,我们将可以看到所有的浏览器、所有的用户、所有的手机都可以使用SBV的方式和矿工保持直接连接。

 

然后,这个直接连接并不是像大家想的那样,我接到矿工里面,开一个连接,然后就可以传递数据了,矿工就会自然的帮我转播交易了,不是这样的,因为交易的转播也是有成本的,矿工为什么要免费的帮别人去传播呢?如果你发出的交易是带手续费的,那对于矿工来说他很自然的会接受你这样的交易,因为他为了拿取后面的手续费。但是这里面会有很多的交易,矿工是拿不到手续费的,这时候你就需要一个叫做支付通道的技术,来额外的向矿工付钱。

 

我们的一个产品,即MEMPOOL矿池,对开发者正式开放我们的支付通道技术,能够让开发者使用支付通道为自己的交易打包付一点点微小的费用。


大家经常抱怨说现在在比特币上面传照片、传视频,传各种各样的东西很贵。在打包什么样的交易上,我们拥有自主权的,因此可以更低的费率来接受这样的交易,只要使用支付通道,把这些交易传递给我们,并为这些交易的打包付足够的费用就可以了。可以想见这种方式下我们可以提供在市场上极具竞争力的价格,这是其一。


其二,在支付通道下,每一个消息传递全部都是有数字签名的,这都是数字的证据,它和现有HTTP API等方式最大的区别就在于我们可以为我们的数据定价,传递数据定价,也就是将来你可能可以付钱给矿工,付一笔很小的费用,告诉矿工你帮我去某一个公钥服务器上取回我想要的信息,并且用服务器的公钥签名。只要这个公钥愿意把信息返回给我,并且签了名,矿工就可以为了这个传递收走他的服务费。

 

这一系列是接下来会在比特币网络上,BSV网络上发生的事情。作为开发者我们不能只看眼前,在座的开发者就应该想到接下来会发生什么事情,接下来会出现只以比特币协议作为基础协议的浏览器,不再是HTTP。接下来会出现用户自己的客户端就有钱包,就可以签发交易。

 

在这个基础之上我们才可以更好的去想、去构筑接下来比特币的应用。

 

每一次的付钱我们只要一次交易付费就好了,这里面又提到了另外一个开发的误区,大家什么都不想,就觉得东西上链就有好处,我们把什么东西都放在链上就解决了问题。


其实上链的成本是放在那的,它的成本是什么?是这么一个我们叫做三因素记账的这么一个账本上面,永远保存着你的信息,并且这个信息存放在全球几十个矿工的服务器上。你对数据安全性的要求是不是高到了这个程度,你愿意付出这么高的成本。如果不是的话,其实我们不需要把所有的数据全部都放在链上的。


我在这里举一个很好的例子,假设我们现在有一个很大的视频想要放到链上,我可以找两到三个的云存储服务商,我把我的视频分段的,用切片方式放在他们的服务器上,并且让他们使用哈希上链的方式来保证他们提供数据的完整性。


在这种情况下,用户可以以极低的成本获得高可用性的数据,因为有好几个服务商给他提供数据,这是其一。其二,这里的数据到底是对是错,他有一个唯一的标准,你可以举证对方给你的数据是错的,因为这个数据的哈希存在链上可证明。

 

在这种情况下你并不需要特别在意你的数据是不是真的放在了链上。**我们要以更高效的方式去使用比特币的账本空间,而这个账本空间的成本永远是存在那的,我们以一个更好的方式来用它,更高效的来用它,来降低它的成本,而不是想着既然上传费用这么便宜,我把东西都丢到链上去就好了,真正适合放在链上的数据往往具备这么几个特征:

  1. 具有公开的价值。私人数据放在链上是用于存储,但是放在链上的数据绝大部分是用于和其他的商业伙伴进行共享。

  2. 这部分数据的完整性、真实性的校验是非常高的,他的需求是很强的。你需要证明在某时某地确实存在这样的一份数据,它就具备着很高的价值。

比如说我们之前在Bitcoin SV上面出现的一个叫做RateSV应用,他把交易所的分钟级别的交易数据传到了链上,作为企业结算、报税的一个参考数据,那么他就很好的使用了这两个特点。很有价值的数据需要公开,需要存在性证明。要从这些方面去想,才能够知道说我们究竟要用区块链去解决一个什么问题,而不是你手里面掌握的锤子到处都是钉子,看到一个脑袋就想敲一下。

 

为什么Bitcoin SV能成为唯一的公链

 

因为它的成本是最低的,我们现在看到的公链等都存在两个维度,一个维度是应用维度,一个维度是账本维度。在应用维度就是你所谓的应用场景,可以做什么事情,可以在什么生态里面做什么来用,可以用来支付,可以买什么样的东西,可以交换什么样的服务,这是应用场景。


它并不需要你底层的链一定是什么形态它才能完成这样一个应用场景,你只要具备智能合约的功能,你只要具备账本公开、可审计、可查就好了。

 

接下来是账本层面,所有这些币的转移全部都需要在账本上进行表现、存储、验证,哪个账本的成本最低,又能满足用户需求的话,这个账本将会最终胜出。我并不认为在这种情况下你可以找到另外一个成本更低账本来替代 BSV 账本。


我举一个例子,我们打点钱包现在可以支持收BTC这个token了,我们是在BSV上完成的,用户在转帐BTC的时候可以转到我们的BTC地址,然后我们给用户发一个等额的BTC token,这个token是在BSV上的token,然后我们就使用BSV的账本完成了BTC这么一个token的,在不同地址、不同用户之间的转帐。链上完成,公开,可查证,中间没有猫腻,更关键的是手续费极低。


在接下来的一个版本里面我们将会使用这个功能,给大家提供使用BTC发红包的功能(此处应该有一个掌声)。你终于又可以以1分钱的代价来转BTC了。

 

本质上来说,底层账本不重要,成本最低即可

 

并不是说你的价值、你的币一定需要记在某一个账本上才行的,不是这样的,这值得很多做公链的人思考这个问题,为什么我要做区块链,为什么我要做公链,为什么我要把这些联盟的商家拉在一起去做这个事情。


那么为什么比特币SV的成本是最低的呢?因为比特币账本使用的是UTXO的结构,UTXO的结构就是你口袋里面的钱是不记名的,大家只要去验证,你这个钱从一个地方转到另外一个地方的转帐过程是不是合法就可以了。


每次我在转帐的时候花掉一些合法的UTXO,生成了新的UTXO,转帐完成,验证过程就结束了,非常简单、高效,他只对这个钱本身有效,跟用户、跟背后的账户是没有一点关系的,它很巧妙的把用户手里面的余额变成了一个通过你手里面的币进行加总计算的,在个人本地就可以完成的过程。


在这种情况下并不需要任何其他的人来帮你进行计算,每个用户可以在本地维护自己的钱包里有多少币可以用,这个成本是非常低的。


在基于账户系统里面的账本里面,你要想验证一个钱从一个账户转到另外一个账户,那么你需要对这个账户背后是不是有这么多币进行各种各样的验证,成本是非常之高的,所以在交易量极大的时候,其实UTXO账本的验证难度随着交易量是对数级别的,懂计算机的人应该知道对数级别难度增长是一个很恐怖的事情,它是低于摩尔定律的,也就是随着摩尔定律的发展,这个成本只可能越来越低。因此比特币的账本可以有能力承载起一切交易、一切事物。


我们矿工做的事情并不是说,为了防止大家犯罪,我们给每一个参与的人背后雇了一个保镖和警察,拿着枪指着你,一旦你出错我就把你崩了,不是这样的,这个成本是非常之高的。现在我们现实生活中的法律体系是怎么运行的?就好像是无处不在的摄像头,如果你犯了错就把你抓到,然后对你进行惩罚,这是现在矿工做的事情。网络上出现多个分叉的交易的时候,不同版本交易的时候,我应该选择哪一个交易而已。

 

所以,在这种情况下矿工额外的安全开销被平摊到海量的交易上面的时候,你会发现在海量交易下每一个交易成本上升只有一点点,但是每一个交易都很安全。而很多其它的共识体系,PBFT、DAG等等的共识体系,其实他的每一个交易的验证成本都比比特币交易的验证成本要高很多,只要交易量一大必然是成本极速上升的,并不能承载大量的交易。


因此开发者要更清晰的看一看接下来可能会发生的事情,接下来自己的交易、自己的系统要如何去设置和其他的开发者、其它的应用保持更好的联系,不能再依靠广播、交易、过滤,把自己需要的东西弄出来。每一个开发者都应该把SPV模型从现在开始使用起来。

 

 

 


 

 

■ ■■■■

 

商务合作

(WeChat ID:Mempool-q)

(Telegram:@Elvira1106

 

 

客户服务

 

(UTC+8) 9:00-19:00

(WeChat ID:dot_wallet)

Official English Telegram Group: t.me/dotwallet