梳理区块链知识脉络

1、

凌晨写完上篇文章意犹未尽,于是我趁胜追击,在浏览数篇文章后觉得还是应该读原文,于是干脆开着有道词典划词翻译功能,读起了MIXIN的英文版白皮书,并一口气读掉17页,同时喝掉了当天的第三杯咖啡。

凌晨三四点,满脑子的新奇兴奋;疲惫涌来的时候难以入睡,也睡不踏实。这意味着,我该缓缓劲儿,整理一下认知脉络了。

下文即是我对近几次新增知识点的脉络整理。

2、

区块链的本质,是一种不可篡改的数据库技术。注意:不可篡改是一种追求,且需要用程序设计来保证的,并非是一个天然的结果。

古典的数据库技术支持增删查改四大类操作,而在区块链技术中,只支持增查,不支持删改。

查这个行为,相对简单。

针对“增”这个行为,有几层问题要解决:

  • what:数据库中记录的是哪些数据?
  • who:谁能往数据库中增加数据?
  • why:为什么要往数据库中记录这些数据?
  • how:如何实现往数据库中新增数据,且实现不可篡改?

3、

关于how,至少有2大类方式,一类是顺序链接的区块链,另一类是有向无环图DAG。

前者譬如BTC,ETH,EOS都是此类,后者譬如IOTA,byteball,MIXIN。

无论是哪一类,都面临着同样的一个核心问题,即“拜占庭容错”。拜占庭容错,解决的是“安全问题”,即:如何保证在有作恶节点的情况下,整个系统还能正常运转,正确运转?换言之,即便出现错误,也能修复之?“安全问题”的核心,是双花问题。即:同一个币,是否会被用了2次甚至更多次?

拜占庭容错经历了2个解决方案,最初是同步拜占庭容错机制即PBFT,然后是异步拜占庭容错机制aBFT,或部分异步拜占庭容错机制。PBFT存在着效率慢的问题。某种意义上BFT已经可以等同于aBFT了。

拜占庭容错的不同方案,是在解决安全问题的基础上,提高效率。

4、

作为一种数据库技术来说,目前的区块链链上所能存储的数据非常之少,仅几百G数据就能使之达到极大瓶颈,遑论达到古典数据库中的几百T的数据。

于是决定哪些数据上链保存,成为了一个非常重要的业务决策。而为什么链上仅仅只记录这些数据,就能实现不可篡改,能满足业务需求呢?则是在决策时需要审慎考虑的。

上述性能瓶颈,包括至少2个维度,一个是链上存储数据文件的累积大小,另一个则是与链交互的反应速率。

在顺序链接的区块链中,比如EOS,通过修改节点数量,节点打包出块的数量与时间间隔、广播及确认签名的时机等,是在尝试实现性能的突破。当然也有一些其他解决方案,譬如闪电网络、侧链等。

另外一种思路,则是采用有向无环图DAG。在这个解决方案中,无需“打包出块”,每条交易就是一个被处理、被确认的对象。且因为没有顺序等待,随着边和顶点越来越多,新产生的交易被处理、被确认的效率能越能达到网络通讯的极限。

5、

那么,这里有一个逻辑问题,到底是安全第一,效能第二,还是效能第一、安全第二呢?

又或者说,除了这种非此即彼的硬排序,是否有能在安全与性能之间有所权衡呢?

6、

除了安全和性能,还有一个重要的指标是可拓展性。

我们知道,BTC网络、ETH网络和EOS网络是无法直接联通的。公链和不同的联盟链、私有链也是无法直接连通的。每个“链”都是一颗自转的小星球,与其它“链”甚至会产生竞争关系。每个链哪怕再拓展,也会有自己的能力瓶颈与资源瓶颈。

一个有趣的项目立志于 mix in one,去做以上各颗星球之间的连接,它就是MIXIN.ONE。

7、

在解决HOW这个问题时,要解决的是安全、性能、可拓展性,同时解决how的过程也是解决what 和why与who的过程。

在who这个问题上,谁有权利往数据库中增加数据?即:记账呢?

POW理论上人人可以去解谜题,但只有解答正确的人,才有权利记账。

POS理论上所有持票的人都有权利记账,持票越多,获得记账权利的概率就越大。

DPOS则是通过投票选举出记账的人,仅有有限的节点来记账。

无论POS还是DPOS,都面临持票人参与度并不高的情况。同时也需要面临一个问题,即散户存的币,被钱包或交易所挪用投票怎么办?

一个延展问题是,记账不是你想记,想记就能记的。这里面有4个角色:一条数据行为的发起者与接受者,一条数据行为的执行者,一条数据行为的记录者,一条数据行为的验证者。这4个角色的定义范畴,门槛等,在不同项目中,有着不同的区别。

比如在bitcoin中,只有有权利记账的人才能执行数据行为并通过打包出块记录下来,而所有参与挖矿的人都可以参与验证。

那么其它区块链项目呢?

以上即为我关于区块链认知的大致脉络整理。

1. PyTorch是什么? PyTorch是一个基于Python的科学计算库,它支持动态图和静态图的混合式编程。它主要用于深度学习领域的研究和应用。 2. 张量(Tensor) PyTorch中的张量是一种多维数组,类似于NumPy中的数组。张量是PyTorch中最重要的数据结构之一,也是深度学习中数据的基本单位。 3. 自动微分(Autograd) PyTorch的自动微分机制可以自动地计算张量的梯度,从而实现反向传播算法。自动微分是PyTorch的核心功能之一,也是PyTorch与其他深度学习框架的区别之一。 4. 模型构建 PyTorch提供了一种简单而灵活的方式来构建深度学习模型。可以使用Python编写模型,然后通过PyTorch提供的API将其转换为张量和运算符,从而构建深度学习模型。 5. 模型训练 PyTorch提供了几种不同的方法来训练深度学习模型,包括传统的随机梯度下降(SGD)和Adam优化器等。在训练过程中,可以使用PyTorch提供的各种损失函数来计算模型的损失值。 6. 模型保存和加载 在训练完成后,可以将模型保存为文件,以便在以后的应用程序中加载和使用。PyTorch提供了几种不同的模型保存和加载方法,包括保存和加载模型的权重和参数。 7. 分布式训练 PyTorch还支持分布式训练,可以在多台计算机上同时训练深度学习模型。分布式训练可以加快模型的训练速度,并且可以处理更大的数据集。 8. PyTorch生态系统 PyTorch生态系统包括许多不同的库和工具,如TorchVision、TorchText、TorchAudio等,这些库和工具能够帮助研究人员和开发人员更轻松地构建和部署深度学习模型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值