当前位置:首页区块链阅读区块链的“上链”哲学:“在脂肪链下”和“在薄链上”

阅读区块链的“上链”哲学:“在脂肪链下”和“在薄链上”

阅读区块链的“上链”哲学:“在脂肪链下”和“在薄链上”

什么是“连锁”?哪些数据和逻辑应该“链接”?文件可以链接吗?你能批量检查链上的数据吗?什么是“链下”?

一篇文章中的“链上”和“链下”存在很多问题。

阅读区块链的“上链”哲学:“在脂肪链下”和“在薄链上”1

什么是“链上”和“链下”

阅读区块链的“上链”哲学:“在脂肪链下”和“在薄链上”2

区块链包括数据链和节点链。数据链是指通过链式结构组织起来的区块数据链,形成数据验证和可追溯性;“节点链”是指多个节点通过网络连接在一起,彼此共享信息,共识节点共同实现共识算法,生成并确认区块。

“上线”的简要流程如下:

簿记员记录交易并将它们打包成链式数据结构中的“块”

一致性算法驱动每个人验证新块中的事务,以确保计算出一致的结果。

数据被广播到所有节点并安全地存储。每个节点将存储数据的完整副本。

一旦事务“在链上”,就意味着它已经被完全执行,并且“分布式事务”已经实现。简单地说,它就像是一段经过集体批准,然后在公告栏上公布的段落。其中有许多词是**性的,不能改变。

“链上”是指“共识”和“存储”,两者缺一不可。没有共识,交易的一致性和正确性就无法得到保证,也不能被链上所有参与者所接受;共识后的数据不是由多方存储的,这意味着数据可能会被一方丢失或篡改,更不用说冗余可用性了。

另外,如果只调用接口进行查询,不改变链上的任何数据,也不需要一致确认,那么就不是“链上”

或者,如果一个业务服务本身与区块链没有直接关联,或者其业务流程不需要参与共识,并且生成的数据没有写入节点存储,则该业务服务称为“链下服务”,不管它是部署在带有区块链节点的服务器上,还是使用节点进程编译。

当业务服务调用区块链接口发送交易,交易完成“共识”和“存储”时,称为“上行链路”;如果交易未按预期打包,则称为“上行失败”

事实上,几乎所有的区块链系统,特别是与实体经济和现实世界相结合的区块链应用,都需要链上协作和链下协作。系统本身包含着丰富的技术生态。

*注1:交易是区块链中的一个通用术语,通常是指发送到区块链的一条指令和数据,它会改变链上的数据和状态

*注2:本节描述了一个简单的模。在多层连锁和碎片化模式下,流程将更加复杂,交易划分将更加细化,但“共识”和“存储”的基本原则将保持不变

阅读区块链的“上链”哲学:“在脂肪链下”和“在薄链上”3

交易的轻量化与“链上”的重要性

目前,区块链的底层平台正在逐步成熟,性能和成本已经不是大问题,但由于“分布式多方合作”,以下开销是固有的:

共识成本:在主流共识算法中,pow(工作量证明,即挖矿)耗电;POS(利息证明)需要抵押资产才能获得记账权;pbft(联盟链中常用的拜占庭容错算法)簿记员必须完成多次往返投票,以及过程步骤很复杂。

计算成本:除了加解密、协议分析等计算外,为了验证支持智能合约的区块链上合约的执行结果,所有节点都会不加选择地执行合约代码,导致通体。

网络开销:它与节点数成指数关系。节点越多,网络传播时间越长,带宽和流量开销就越大。如果数据包太大,情况会更糟。

存储开销:与节点数成正比,链上的所有数据将写入所有节点的硬盘。在一个有100个节点的链中,它将变成100个副本。如果有1000个节点,则为1000个副本。

有些人可能会说,“这是信任的代价。值得!”我同意。但理想离不开现实,毕竟硬件资源总是有限的。

试想,如果每一个事务都是一个复杂的科学计算任务,那么每个节点的CPU和内存都会耗尽;如果每一个事务都包含一个大的图片或视频,整个网络的带宽和每个节点的存储都会被迅速阻塞;如果每个人都打开并滥用“链上”资源,公地悲剧将不可避免。

调用API进行事务处理非常简单,而且链上的开销就像房间里的大象一样,很难忽略。作为开发者,我们需要正视“轻交易、重链”,在积极“上链”的同时,减少不必要的开支,找到平衡的办法。

*注1:常规联盟链节点参考配置:8核/16g内存/10m互联网带宽/4T硬盘,不考虑“挖矿机”等特殊配置。俗话说,“钱能解决的问题不是问题,问题是……”

*注2:本节不讨论“本地/分区共识”或“并行扩容”默认情况下,假设整个网络参与共识和存储

阅读区块链的“上链”哲学:“在脂肪链下”和“在薄链上”4

让“链上”回到“链上”,让“链下”回到“链下”

开销只是一个成本问题,本质上,区块链应该被允许做它应该做的**的事情。要形成共识,就要把重点放在上链和下链的大数据上,尽快达成共识。

如何切割?在多个方面掌握和掌握事务处理中的关键点,即在多个事务处理和共享的关键点上,我们应尽量避免在同一层次上进行数据共享。

为了避免过于抽象,这里有几个例子。

*注意:事实上,每个例子都有很多细节。从空间的角度,简要介绍上下聚焦链的区别和有机结合

文件可以链接吗?

A602A606号

这是一个经常被问到的频率很高的问题。这里的文件一般是指图像、视频、PDF等,也可以指大规模的数据集。链上可靠共享的目的是使接收者能够验证文件的完整性和正确性。

在常见的情况下,文件共享通常是本地的、点对点的,而不是向所有人广播。让区块链不加选择地存储海量数据将是无法忍受的。因此,计算文件的数字指纹(MD5或hash)并将其与其他可选信息(如作者、持有人签名、访问地址等)链接起来是合理的。单链接信息不多。

文件本身存储在私有文件服务器、云文件存储或IPFs系统中。这些专业解决方案更适合维护海量文件和大文件,容量更大,成本更低。需要注意的是,如果文件的安全级别达到了“一个字节不能泄露给无关人员等”的级别,则应谨慎使用分布式存储方案IPFs,并应**私有存储模式。

当您需要将文件共享给指定的朋友时,您可以通过专用的传输通道点对点发送该文件,或者授权朋友在指定的URL下载该文件。可以与区块链的P2P网络隔离,不占用区块链的带宽。好友获得文件后,计算文件的MD5和hash,并对链上相应的信息进行比对,验证数字签名,确保收到正确完整的文件。

在该方案中,文件在链上“确认”、“锚定”和“寻址”,明文在链下传输并在链上相互验证。成本、效率和隐私安全是平衡的。

如何批量查询分析数据?

阅读区块链的“上链”哲学:“在脂肪链下”和“在薄链上”5

分析区块链上的数据是很自然的要求,比如“一个账户参与了哪些业务流程,完成了多少笔交易,成功率是多少?”一个记账节点在一定时间内参与分块记账的次数,是否及时,是否作弊。”这些逻辑将涉及时间范围、块高度、事务发送方和接收方、合同地址等事件日志、状态数据等维度。

目前区块链底层平台普遍采用“key-value”存储结构,读写效率高,但难以支持复杂查询。

其次,复杂的查询逻辑一般在块生成后进行,时效性稍低,不需要多方共识,具有一定的“离线”性质。

**,一旦数据“在链上”,它就不会改变,只会增加而不会减少。具有明显的数据完整性,如数据块本身的正确性等。链上和链外处理之间没有区别。任何数据完整的节点都可以支持独立的复杂查询。

因此,我们可以将数据从链中完全导出,包括从创建块到**块的所有块,所有的事务流和接收,事务生成的所有事件和状态数据,并将其写入关系数据库(如MySQL)或链外大数据平台,构建链上数据的“镜像”,然后利用这些引擎强大的索引模,进行关联分析、建模训练、并行任务能力、灵活全面的数据查询与分析。

区块链浏览器、运营管理平台、监控平台、监管审计等系统将采用这一策略。块从链中导出,ETL在链外及时存储。本地化分析处理后,如果需要与链进行交互,可以通过接口将事务发送到链上。

复杂逻辑与计算

阅读区块链的“上链”哲学:“在脂肪链下”和“在薄链上”6

与复杂查询不同,复杂逻辑是指事务处理过程中的复杂部分。

如上所述,链上的智能合约将在所有节点上运行。如果智能合约写得太复杂或包含冗余逻辑,不需要全网一致同意,整个网络将承担不必要的费用。一个极端的例子是,如果在契约中写入一个超大数据遍历逻辑(甚至是死循环),那么整个网络中的所有节点都会陷入这种遍历,运行很长时间,甚至会被拖死。

除了使用类气体机制来控制逻辑长度外,我们建议智能合约的设计应该在允许的气体范围内尽可能简单。如果单个合同接口包含的代码超过100行,可以考虑是否对其进行部分反汇编。

拆解的界限因企业而异,这考验着企业对企业的熟悉程度。开发者需要将业务进行分层、模块化的解耦,只将涉及多方合作、共识、分享、宣传的部分业务流程放在链条上,这样合约只包含“必须”和“必然”运行在链条上的逻辑,契约逻辑“小而美”

一般来说,多方见证的网上协作、公共账簿管理、必须共享的关键数据(或数据哈希)可以放在链上,但一些相关的逻辑,如前端或后续的检查、核算、对账等,可以适当地从链下分解。

一些与密集计算相关的逻辑应该尽可能地在链下实现。例如,可以设计复杂的加解密算法,在链上生成快速验证的逻辑;如果业务流程涉及到对各种数据的遍历、排序和统计,则应在链下建立索引,只有密钥值才能在链上准确读写。

事实上,现在每当我看到契约中使用的映射或数组时,我都会痴迷地考虑是否可以把这部分链服务放进去,我很欣赏“胖链下”和“瘦链上”的设计导向。

需要强调的是,流线链上的契约逻辑并不完全是由于契约引擎的效率,而契约引擎的效率越来越快。核心原因是在充分发挥区块链作用的同时避免“公地悲剧”开发人员提出了一个计算和存储成本**的合同。他们有奥卡姆剃须刀的美感,即“必要时不要增加实体”他们也表现出对链中所有参与者的尊重和负责任的态度。

即时通讯:快速协商和响应

阅读区块链的“上链”哲学:“在脂肪链下”和“在薄链上”7

受队列调度、一致性算法、网络广播等因素的制约,“链上”过程会有一点延迟。另外,在网络波动、事务拥塞等特殊情况下,时延会抖动。

一般来说,与毫秒或百毫秒响应的瞬时交互相比,“上行链路”有点“慢”比如去超市买一瓶水,交钱后站在那里的时间不能超过10秒到10分钟。在锁链确认前你不能离开。

对于类似场景,建议将链上预存与链下支付相结合,实现链下点对点渠道的高频率、快速、低延迟的交易,确保链下的收货和响应,**汇总链上双方的账户余额和交易凭证,并在链条上完成适当的记账。**的“闪电网”与此模式类似。

此外,在某些业务场景中,会先进行多轮订单匹配、拍卖或议价。一般来说,这些操作发生在本地交易对手之间,可能不需要整个网络的一致同意。因此,也可以通过离线通道完成。**,将双方的订单(包括谈判结果、数字签名等信息)发送到链上,完成交易。

以快棋为例。棋手的每一步都不需要实时链接。双方只是拍打地面,而裁判和观众只是旁观。例如,在游戏结束时,总共要玩100个动作。然后,对这100招的记录进行汇总,并与胜负结果挂钩,从而记录成绩,分配奖金。如果想回放棋局细节(如视频),可以参考上述离线文件存储模式,使用专用服务器或分布式存储。

针对类似需求,FISCO bcos底层平台提供了amop(messenger protocol on the chain),利用已建立的区块链网络,实现全网点对点、实时、安全的通信。基于amop,可以支持即时消息、快速协商、事件通知、秘密交换、私有事务构造等。

*注:有关amop的详细信息,请参阅:

https://fisco-bcos-documentation.readthedocs.io/zhCN/latest/docs/manual/amop协议.html

如何在链上信任离线信息?

阅读区块链的“上链”哲学:“在脂肪链下”和“在薄链上”8

我们先看一个典问题:“如何在智能合约操作中使用链外信息?”

比如说,链上有一个世界杯决赛的猜谜游戏,但是世界杯不能在链上进行;或者需要参考今天的天气,这显然不是链上的原始信息,应该从气象局获得;在跨境业务中,可以使用法定汇率,而且汇率必须来自权威机构,不能凭空产生。

此时,将使用预言机。链下的一个或多个可信组织将球赛、天气、汇率等信息写入链上的公共契约。其他合同将使用经协商一致确认的可信信息,且不存在歧义。考虑到安全性和效率,预言机将有各种具体的方法,这些方法的实现非常有趣。

阅读区块链的“上链”哲学:“在脂肪链下”和“在薄链上”9

进一步的灵魂拷问是:“如何确保链上的数据是真实的?”坦率地说,区块链并不能从根本上保证链下数据的可信性。它只能保证一旦信息在链上,它将在整个网络中保持一致,并且难以篡改。区块链与实体经济相结合,必然面临“如何信任链”的问题。

例如,除了人事管理外,资产相关应用还需要“四流合一”,即“信息流、业务流、物流、资金流”相互匹配、交叉验证,从而使业务流程更加可信。这些“流动”经常发生在现实世界的链条下。为了控制它们,可能会使用各种技术和方法,比如物联网(传感器、摄像头等)、人工智能(模式识别、联合学习等)、大数据分析、可信机构的认可等,这远远超出了区块链的范畴。

因此,本部分的命题实际上是:区块链如何与数字世界的技术广泛融合,从而更好地发挥其多方合作、建立信任的作用。

随着数字世界的发展,特别是“新基础设施”的大力推进,我们相信,广泛的数字化可以在保护隐私的前提下降低信息采集和验证的成本,采集到的数据将会越来越丰富。

比如在实物材料的使用、转移和回收上,及时收集和监控,甚至是多维度、多维度、多维度的收集和监控,并在链上和链下进行共识、宣传、锚定、交叉验证,可以逐步接近“可信的在线物理世界”的效果,而且逻辑会更加严谨、可信,数据流和价值流也会更加可靠,协作的摩擦也会更低。

quot;链上还是链下quot;治理?

阅读区块链的“上链”哲学:“在脂肪链下”和“在薄链上”10

“治理”是指制定行业联盟和企业运作规则,确保规则的执行,处理异常事件,奖惩参与者等。

按照理想化的标准,似乎应该实现链上治理。通过代码决策、规则制定和执行,系统具有“自愈”超强能力quot;。事实上,完整的链上治理过于复杂,难以实现,尤其是在必须实现现实世界法律法规的强制执行时,单纯的连锁治理往往是不够的。

再想一步:如果你完全依赖代码,如果代码本身有bug或者需要“更改需求”怎么办?如何发现和干预这个链条?

因此,“代码即法律”仍然是一个理想的目标,而链外治理是不可或缺的。

联盟链参与者组成管理委员会,讨论和决策现实世界中的民主中心化制,共同制定规则,以多重签名和工作流的形式发起治理行动,并将区块链接口调用到链上。

在链中,包括区块链和智能合约的底层平台,将内置一系列的决策和控制点,如支持多方投票决策,具备从业务层到底层渗透访问权限控制的能力,修改业务和节点参数,异常情况下重置账户,更正和调整错误账户等。

治理的行为和结果得到共识的确认,并在整个链条网络中发挥作用。公开透明,接受广泛监督,体现了其合理性和公平性。如有必要,还可以引入监管机构和司法仲裁。

另一方面,联盟链上的数据具有已知、不易篡改、不可否认、全程可追溯的特点,可以为链下治理决策提供完整的数据基础,同时也便于为链的实际实施提供可信的凭证。因此,链上与链下的有机结合有助于设计一个完整、可控、可持续的治理机制。

阅读区块链的“上链”哲学:“在脂肪链下”和“在薄链上”11

如何自由实现“上”与“下”

也许有人会说,“这个链太复杂了,我想用区块链!”

我认为这是对的。最终,用户需要一个“链”来利用它。作为开发者,我们需要构建一个灵活的插件式系统架构,实现数据导出、文件存储与传输、密集计算、数据采集与异步连接、治理与监管、一键式部署等多种功能,它实际上提供了“一系列基于区块链的功能”

除了节点,最终的“链”还包括一系列互动门户,如区块链浏览器、管理控制台、监控审核系统、业务模板、应用程序/小程序等,用户只需移动鼠标,就可以一站式体验完整的区块链应用程序,点击页面并调整界面。用户会觉得“这就是区块链”,不需要划分“链上”和“链下”,它们是一体的。

考虑到这一点,我推荐一个我认为很棒的设计:分布式身份(did)。

Did是一套涵盖分布式身份管理和可信数据交换的规范。当局为用户完成KYC并颁发凭据。对于用户来说,在链上发布其身份的摘要并将其私有数据存储在链外是非常重要的。

用户在使用时,采用“明确授权”和“选择性公开”的策略,只需出示少量信息或加密证明,并与链上的数据进行比对,就可以证明用户凭证和数据的可信性,达到“多数据运行”的可喜效果,少跑腿”,保护用户隐私。

该设计是链上与链下的良好结合,逻辑闭环自洽。它并没有因为数据存在于链中而削弱链的效率,反而使链的信用模更加重要。

did规范定义了一个清晰的语义和层次结构的数据结构,以及一个通用的交互协议。开源项目weidentity全面实现了did协议,并提供了丰富的外围支持工具和服务,值得借鉴。

*注:[weidentity]详情见:

https://fintech.webbank.com/weidentity

阅读区块链的“上链”哲学:“在脂肪链下”和“在薄链上”12

结论

锁链又长又远,我会“上下”寻找。未来,“可信”区块链将越来越多地与人们的日常生活和实体经济互动,走进老百姓家。作为一个从业者,要保持开放的心态,积极创造性地将区块链与更多的技术结合起来。无论是链上还是链下运作,只要能解决问题、创造价值,都是一条好的链条。

温馨提示:

文章标题:阅读区块链的“上链”哲学:“在脂肪链下”和“在薄链上”

文章链接:https://www.btchangqing.cn/95420.html

更新时间:2020年12月02日

本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。

区块链

泡沫破裂了吗?资料图:40万用户,远未进入爆发阶段

2020-9-1 3:22:15

区块链

火币观察:灰阶100天增加近8万比特币,市场何时会回归主流货币?

2020-9-1 3:30:40

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索