现在许多读者已经看过我们的编码教程,关于如何编码您自己的区块链 ,如何编码您自己的工作证明 ,以及如何建立P2P网络 。 阅读完这些教程之后,您就会对自己的区块链掌握充满信心,并且希望在下次见面会时向大家介绍所发现的新知识!
但是,你走到水冷却器,听到这样的谈话:
“付款渠道是下一件大事!”
“我对比特币闪电网络持怀疑态度。 尽管支付渠道在概念上听起来很棒,但他们究竟如何在这种网络规模上解决旅行商问题呢? 侧链是它的位置!“
“你可能是对的。 国家频道非常酷。 在主链和侧链上保持图灵的完整性提供了很多功能和扩展灵活性。“
他们究竟在说什么? 别担心! 我们将帮助你。 在本文中,我们将引导您了解高级区块链开发中的所有最新流行词汇和概念,但将细节保持在可管理的级别。
到这篇文章结束时,您将可以自由参与上面的对话。 这不是一个编码教程 ,因为我们只是在高层展示重要的概念。 但是,我们可能会跟进有关这些想法的编程教程。 本文对程序员和非程序员都有帮助。 我们走吧!
以下是我们将在本文中解决和构建的想法:
- 拜占庭容错
- 智能合约
- 图灵的完整性
- 授权证明
- 国家频道/侧链
- 等离子体
- 付款渠道
拜占庭容错
拜占庭容错(BFT)是区块链从根本上保证安全的原因。 为了简单起见,假设区块链网络中有100个节点(目前世界上约有10,500个完整的比特币节点)。 当一个节点想要篡改最新的区块并且说其他比特币用户给他发了一大堆比特币时,会发生什么?
该系统需要具有容错能力,并能够覆盖该恶意节点并就区块链的正确状态达成一致。
这个词源于“拜占庭将军问题”。 让我们快速看看它:

在这种情况下,黄色阵营需要协调攻击中部敌方城市。 但他们需要同意一次攻击。 要做到这一点,营地需要秘密派遣信使穿过敌城,告诉另一个阵营什么时候进攻。
接收阵营不仅需要接收信息,还需要发回信使,以便发送阵营知道接收阵营已收到信息。 接收阵营需要知道发送阵营得到了接收阵营得到原始消息的消息。 你可以看到这个循环永远持续下去!
抛出另一个皱纹:如果有一个叛徒营故意不发送信使,或者向信使发送错误信息呢?
在电脑出现之前,这个“拜占庭将军问题”无法解决。 幸运的是,今天我们有计算机和分布式系统。 区块链中拜占庭将军问题的解决方案是工作证明。
我们的工作证明教程深入讨论了这个问题,但最好的解释可能来自中本聪本人 。 如果上面的阵营开始接收不同意的消息,他们依靠执行工作证明。 工作证明十分复杂,需要大量的计算能力。 一旦一个阵营解决了工作证明,它会将结果广播给其他阵营。 这条消息现在被一系列消息所接受,竞争消息被其他阵营放弃。
如果解决阵营篡改数据,哈希链将被其他阵营迅速识别为错误,并拒绝接受下一个解决阵营。 这给最初的阵营作弊提供了一个抑制因素,因为他们会浪费一大堆能量来解决工作证明,并且从中受益不大。
想象一下,几个小时后,营地制作了一连串的消息,每个消息都需要大量的工作量证明。 这意味着大多数难民营必须就这一系列消息达成一致,每个阵营都可以自信地相信最终结果。 这里需要注意的是,工作证明不关心消息本身,只是节点同意最终消息 。 这个大多数网络的共识保持安全,并提供拜占庭将军问题的解决方案,导致拜占庭容错 。
智能合约和图灵完整性
在我们回到谈论信任机制之前,让我们快速切换。 我们将定义什么是“智能合约”。 第一块被普及的区块链显然是比特币区块链。 但比特币的功能非常有限。 它所能做的只是记录交易信息。 只有跟踪Alice发送Bob 1比特币的事实才有用。
如果我们想要更丰富的逻辑呢? 如果不是爱丽丝只是简单地发送鲍勃1比特币,我们可以用逻辑编程来说明:“爱丽丝和鲍勃放置了一个体育赌注。 如果克里夫兰骑士队在季后赛系列赛中输给多伦多猛龙队,从Alice的钱包里拿出1个比特币并将其转移到Bob的“。
这种功能有多棒? 我们可以按照逻辑进行编程,让它坐在区块链上,鲍勃可以安心地休息,知道他可以安全地下注,如果猛龙队击败骑士,爱丽丝将被迫支付1比特币,爱丽丝可以安心地休息,知道她永远不需要付钱。
这正是以太坊所在。 你可以把它看作是一个可编程的比特币。 智能合约是摆在以太坊区块链上的小编程功能。 您通过调用合约(或函数)地址来调用智能合约,并且您发送它的参数将根据函数的逻辑产生确定性结果。
示例以太坊智能合约功能如下所示:
这个函数做一个简单的检查来将标记从Alice转移到Bob。 函数签名需要Bob的钱包地址和一个传输量。 require
声明确保爱丽丝有足够的以太(以太坊的货币)给鲍勃。 然后,该函数从Alice的钱包中扣除该金额,并将相同的金额添加到Bob的钱包中。
相当直接向前? 这是一个最简单的智能合约。 但是,创建医疗保健应用程序(我们在珊瑚健康公司做的)在制作收藏的数字资产类游戏如Cryptokitties方面存在着智能合约的可能性。
图灵完整性
当人们说以太坊是“图灵完成”时,这意味着以太坊区块链上提供了全功能的编程语言。 我们上面写的代码是用一种名为Solidity的语言编写的,它是以太坊特定的智能合约语言。
相比之下,比特币区块链不是图灵完整的,因为它几乎没有数据操作的能力。 它没有能力让用户部署else
或goto
语句。 这有点简化,但只要你听到有人说“Turing complete”,你就可以快速检查数据变化,内存变化和if/else
语句是否有功能。 如果有的话,那通常意味着什么。
现在我们已经解决了其中的一些定义,让我们回到区块链的信任考虑。
授权证明书(DPOS)

如果您想深入了解关于证券的详细信息,请查看我们详细的POS帖子 。 简而言之,虽然工作证明是保证区块链安全的有效机制,并提供了一种不可信的共识范式,但由于解决哈希问题所需的所有计算能力,它非常耗能。 此外,虽然这意味着分散,但实际上,随着矿工整合,大规模采矿设备消耗更多的获奖块, 集中度更高。
授权证明(DPOS)旨在解决此问题。 Dan Larimer最初设想的不是用硬件来解决散列问题,而是建议网络中的人员投票给“证人”。 这些证人负责保证网络的安全,并且这些证人中的每一个都将一些数字货币存入托管。
将更多资金托管的证人有更大的机会挖掘(或扼杀)下一个街区。 这里的激励机制很好。 只有少数证人,他们得到报酬成为证人,所以他们被激励不会作弊。 如果他们做了欺骗并被抓住,他们不仅被投票赞成下一个热切期待的证人,而且他们失去了托管中的所有资金。
许多人认为这是区块链的未来。 它维护网络安全并允许可扩展性。 最大的批评是,由于较小的持有人没有机会成为证人,因此它非常支持那些拥有更多资金的人。 但现实情况是,小型玩家也不希望参加工作证明,因为在家里从自己的笔记本电脑中挖掘已不再是现实。 较小的球员会被拥有大量采矿钻台的较大球员淘汰。 STEEM和EOS是DPOS区块链的例子。 甚至以太坊正在通过其卡斯帕项目转向POS。
国家频道/侧链
到目前为止,我们一直在谈论全有或全无的方法。 纯粹的分权与中央服务器,工作证明与证明权益证明。 就像生活中的其他一切一样,混合创意可能会优于二元创意。 区块链开发人员正在很快意识到这一点。
正如我们所谈到的,写入区块链是缓慢而昂贵的。 这是因为整个网络中的每个节点都需要验证整个区块链以及它包含的所有数据。 在区块链上执行大型智能合约可能会非常昂贵,而且像在区块链上存储图像这样的操作在经济上是不可行的。
如果我们能够以更集中的方式运行繁重的计算,比如在单个服务器上运行,然后定期将结果集成到主要区块链中以供后人使用。 在并行服务器运行繁重的计算时,我们暂时暴露了一些漏洞,但我们获得了巨大的好处,因为我们不必在链上运行计算,只需存储结果以供将来验证。 这是Truebit背后的一般前提。 我们不会涉及到Truebit的所有细节,但有一个挑战者的概念,他们检查所做的计算是否具有高保真度。
这就是国家渠道的核心。 想象一下,我们想玩一个星际争霸的游戏,并且有一个智能合约,向赢家支付1个ETH。 每个参加者每次有一个狂热者杀死一个小狗时,或者当一个指挥中心升级为轨道指挥时,都必须在主要的以太坊网络上写信,这是荒谬的。 天然气成本(以太坊天然气,不是Starcraft天然气)和每笔交易的时间都是过高的。
相反,如果游戏是在自己的“频道”中播放呢? 每次玩家进行移动时,游戏状态都由每位玩家签名。 在神族选手拿出剩下的虫族部队并强制gg
的史诗般的战斗结束后,游戏的最终状态(Protoss获胜)被发送到主链上的智能合约。 这个中立的智能合约,称为法官,等待一段时间,看看虫族玩家是否对结果提出异议。 如果虫族玩家没有,神族玩家将获得1 ETH。
不必记录主链上游戏过程中发生的成千上万的交易,所有交易都是通过链条完成的,只有最终状态记录在链中。
同样, 侧链是与主链平行运行的独立区块链。 该术语通常用于与主链的货币挂钩的另一种货币。 例如,与星际争霸的主题保持一致,比如说我们有一个名为Minerals的游戏币(哦,等等,我们这么做!)。 我们可以让玩家在他们的Ether(或ETH)挂钩游戏中购买更多的矿物质。 所以我们在主链上预留了一些ETH,并且把500矿物质称为1 ETH。
然后,玩家可以在游戏中花费他们的500颗矿物质,不过他们希望。 鉴于矿产可以花费和赚取的速度很快,矿产交易只能发生在侧链上。
真正很酷的是这个架构是分形的。 然后,我们可以拥有矿物链的侧链来代表另一个稀缺的游戏内资产。 然后,我们可以制作稀缺的游戏资产的侧链,等等。 我们可以拥有多少侧链和侧链没有限制!
Plasma是Ethereum的一个项目,它使用这个侧链概念。 它鼓励交易发生在侧链(或儿童链)上。 一个权威管理着每个儿童连锁店。 如果当局开始恶意行动,那么子链上的任何人都可以退出子链并收回主链上的固定资产。 它处于开发的早期阶段,但在处理以太坊的一些可伸缩性问题方面显示出很大的承诺。

付款渠道
最后,我们将讨论付款渠道。 他们是国家渠道和侧链的延伸。 假设爱丽丝想要发送Bob 1比特币,但速度和交易成本对他们来说很重要,所以他们想要将这笔交易链接起来。
他们在他们之间开辟了一条叫做“支付渠道”的沟通渠道。 1)Alice向Bob发送1比特币。 事实证明,爱丽丝只欠鲍勃0.5比特币,所以2)鲍勃送回爱丽丝0.5比特币。 然后鲍勃带上爱丽丝周末度假。 爱丽丝拿起标签,以便3)鲍勃偿还爱丽丝另一个0.1比特币。
我们没有在主链上记录这3个单独的交易,而是将支付渠道的最终状态记录到主链中。
支付渠道的另一个关键思想是,Alice和Bob不需要在他们每次想要交易时在他们之间直接打开一个渠道。
Alice可以通过Pete传递访问Bob,后者拥有与Alice和Bob打开的支付通道。

从理论上可以想象,当您拥有丰富的参与者网络时,支付渠道的想法确实变得强大。 每个节点都可以访问每个其他节点而不直接连接到它们。 系统能够确定两个想要连接的节点之间的最快路径。

有很多支付渠道的评论家。 找到未连接节点之间最快的路径并不是一件简单的事情。 这是一个经典的“旅行推销员”问题 ,几十年来一直由顶尖的计算机科学家进行研究。 批评人士认为,像比特币闪电和以太坊雷电这样的支付渠道在实践中会像预期的那样工作,因为旅行推销员的问题很复杂。 您的关键是要知道这些项目和区块链可伸缩性问题的潜在解决方案存在。 业内许多最聪明的人都在积极努力,以实现这一目标。
https://medium.com/@mycoralhealth/advanced-blockchain-concepts-for-beginners-32887202afad