一、区块链完成备案意味什么(首批区块链备案编号)
区块链信息服务备案服务信息初审中
区块链信息服务备案周期很长,官方给出的时间为初审到结束40工作日,这代表这出现一次错误就会耽误2个月的备案时间。本文仅适用于数藏平台行业进行备案的客户,其他区块链相关企业仅供参考。
陆卡咨询2022年为国内近200家NFT平台提供了区块链信息服务备案服务,总结了不少宝贵的备案经验,以下为NFT平台进行区块链备案的最容易出错的一些要点,大家注意闭坑。以下联盟链以“天河链”为例给大家简述。
运营方和联盟链的填写如下图所示:
这里需要注意的是:区块链技术提供方一定要写联盟链公司全称,写简称会被退回。
为了更好的供备案审查人员判断服务的合理性和安全性,请在服务描述和材料方面多加注意。
1、提供的服务网站必须可以访问
2、服务网站必须有区块链相关元素,例如区块链的地址或者交易,并指向区块链浏览器
3、可以是NFT相关领域,在没有相关牌照的情况下,不能具有二级市场属性(如有,请剥离)
4、体现区块链在服务方面的价值属性,例如权属(地址,NFRID,持有人)、溯源(交易过程,链上交易)等
黑龙江区块链信息服务怎样备案?
一、区块链信息服务备案系统操作流程
首先,申请人要根据情况提供主体信息、负责人信息、服务信息,记录所需材料图片,然后提交完成。
等待相关部门审核,二十个工作日内回复。
最后经办公室审核后,拿到报名号。已完成备案的区块链信息服务提供者应当在其互联网网站、应用程序及其他显著位置显示其备案号。
二、区块链信息服务备案期的准备工作
1.材料准备:准备与企业相关的个人证明/资料,如营业执照电子附件、ICP备案资料、企业产品介绍、公司公章、材料真实性声明文件(附件中官网提供)。
2.首次登记备案信息的区块链信息服务主体,需要进行实名登记,填写姓名、手机号、邮箱等信息,并设置密码后,方可填写备案信息。
三、区块链信息服务备案内容
需要提交申请主体信息、负责人信息和服务信息:
(一)申请人信息
申请人分为个人和机构。两者都需要提供的内容包括:注册地(详细地址),根据备案系统提供的模板签署材料真实性证明并上传扫描件;如果有网站,要提供网站首页的网址。
1.个人
个人需要提交姓名、身份证号、身份证地址、详细邮寄地址,上传身份证扫描件。
2.机构
机构需要提交单位名称、统一社会信用代码、证书地址、详细邮寄地址,并上传营业执照扫描件。
(二)负责人信息
这部分需要提交姓名、办公电话、身份证、身份证号、手机号、邮箱和身份证扫描件。联系方式,保证联系方式真实有效,是机构法人。
(三)服务信息
信息是归档的主要内容。
1.服务基本信息
服务所需的基本信息包括服务名称、网站名称、URL/客户端名称、官方帐户名、服务描述、信息服务管理机构是否可用以及开始运营前的信息。
如果网站内容需要出版、新闻等相关领域,需要到相关主管省办理前置审批文件,请选择“需要前置审批的事项”,且必须上传预授权证书扫描件;否则,请选择“以上任何一项”。
当服务负责人与主持人相同时,请核对服务负责人与主持人是否不同,并请填写服务负责人姓名及联系方式。
通过“备案状态查询”选项查看提交的备案申请的审批状态,如未通过、审批中、已通过、未通过。审核结束后,备案系统会以短信和邮件的形式发送通知,备案主体可以登录官网查看审核结果。如果获得批准,将颁发一个记录编号。审核不合格的,说明原因。
2.服务内容
服务内容分为三类:基础设施提供商、应用运营提供商和技术提供商。
必须提交任何服务内容支持的主链名称。通知系统提供了一个下拉框,列出了主要的主流链,是可选的。如果要提交的链的名称不在下拉列表中,请添加要检查的主链。
(1)基础设施提供商
目前,备案系统提供的基础设施提供方服务类型选项有“矿池、云挖矿以及节点信息”,可以多选。
前述提供方需勾选服务类型和填写主链名称。
(2)应用运营商
目前,备案系统提供的应用运营方服务类型选项有“钱包、区块链交易查询浏览器以及其他”,可以多选。
前述提供方均需勾选服务类型和填写主链名称。其中,区块链交易查询浏览器还需填写URL、年累计访问量、近三月日均访问量、服务器IP地址、服务器部署位置。
(3)技术提供商
目前,备案系统提供的技术提供方服务类型选项有“Baas以及其他”,可以多选。
上述提供商需要检查服务类型并填写主链名称。其中,区块链Y查询浏览器还需要填写URL、年累计访问量、近三个月日均访问量、服务器IP地址、服务器部署位置。
以上所有提供者都需要检查服务类型并填写链名。其中,baas信息服务商必须提交是否提供服务数量、服务对象枚举、软硬件分离、云服务资质、机房位置等信息。其他信息服务提供商也必须提交。上传服务、服务数量、开源、源代码和技术白皮书/文档。
有关部门出具的《区块链信息服务管理规定》(以下简称“《管理规定》”)应当在网站等信息服务平台进行网上备案。《条例》的正式实施标志着中国开始正式监管区块链信息服务。对于信息服务相关从业者来说,备案后就意味着有法可依,避免未备案者被封杀。据悉,目前一些可疑的未注册网站已被屏蔽,服务商应尽快发起申请。
区块链已确认什么意思
区块链已确认意思是
完成对应的区块确认。若当时区块发生拥堵、延迟等情况,会导致数字资产迟迟未完成完全确认;3.入账:完全确认后,平台即会尽快完成入账。
区块链的网信备案是什么?有什么作用吗?
对服务提供者主体责任进行了明确规定。主要包括:一是落实信息内容安全管理责任。二是具备与其服务相适应的技术条件。三是制定并公开管理规则和平台公约。四是落实真实身份信息认证制度。五是不得利用区块链信息服务从事法律、行政法规禁止的活动或者制作、复制、发布、传播法律、行政法规禁止的信息内容。六是对违反法律、行政法规和服务协议的区块链信息服务使用者,应当依法依约采取处置措施。
区块链作为一项新兴技术,具有不可篡改、匿名性等特性,在给国家发展带来机遇、给社会生活带来便利的同时,也带来了一定的安全风险。通过与传播领域的结合,被一些不法分子利用传播违法有害信息,实施网络违法犯罪活动,损害公民、法人和其他组织合法权益。部分区块链信息服务提供者的安全责任意识不强,管理措施和技术保障能力不健全,对互联网信息安全提出新的挑战。
《区块链信息服务管理规定》
区块链信息服务管理规定
》第九条规定,区块链信息服务提供者开发上线新产品、新应用、新功能的,应当按照有关规定报国家和省、自治区、直辖市互联网信息办公室进行安全评估。
《区块链信息服务管理规定》第十一条规定,区块链信息服务提供者应当在提供服务之日起十个工作日内通过
国家互联网信息办公室
区块链信息服务备案管理系统填报服务提供者的名称、服务类别、服务形式、应用领域、服务器地址等信息,履行备案手续。平台可自行或委托具有相应资质的测评机构开展评估,并通过全国互联网安全管理服务平台提交安全自评估报告。
国网甘肃省电力公司系统内首个区块链服务平台成功备案
6月7日,国网甘肃省电力公司申请备案的“大型能源企业级区块链底层服务平台”(以下简称“陇能链”)经多次信息完善提报,最终通过国家互联网信息办公室审批,予以备案。该服务平台是甘肃电力系统内首个获备案编号的区块链服务平台。
长期以来,国网甘肃省电力公司为贯彻落实国家电网公司关于建设“国网链”的工作部署,在“国网链”的总体构架下,深入研究,在共识机制、智能合约、跨链协作等方面形成的自有核心技术,研发的适合公司业务应用的区块链服务平台。该区块链服务平台包括1个平台,3个中心,支撑“能量配送、电力交易、营销服务、企业管理、财务金融、物资供应、数据资产、电动汽车”八大应用场景业务应用。根据《区块链信息服务管理规定》《中华人民共和国网络安全法》,在中华人民共和国境内从事区块链信息服务的区块链信息服务提供者,必须在国家区块链信息服务备案管理系统进行真实信息认证,登记信息通过国家互联网信息办公室审核后下发统一备案编号并发布正式公告。
此次履行备案手续并成功备案是对国网甘肃省电力公司从事区块链业务合法合规性的认可,为“陇能链”规范运营筑牢“基石”、撑起“梁柱”,对后续开展区块链业务起到了正向引导的作用,为业界、政府机构敢用、想用、愿意用该区块链服务提供了一份权威性的参考,成功备案是同兴智能公司区块链业务合规发展迈出的第一步,为接下来拓宽区块链业务,申报国家区块链创新试点等持续工作奠定了良好的基础。
作者:霍小霞贾一凡
什么是区块链信息备案?
国家互联网信息办公室发布的《区块链信息服务管理规定》(下称“《管理规定》”),要对信息服务平台如网站等,进行网上备案。管理规定的正式施行标志着我国开始了对区块链信息服务的正式监管。对于信息服务相关从业者来说,备案后意味着有法可依,防止未备案被屏蔽。据悉,目前已有部分可疑未备案网站已被屏蔽,所以,服务提供主体要尽快发起申请。
二、区块链主链开发是什么,区块链主链与公链的区别
区块链开发是什么?可以解决什么问题吗?
可以解决相当多的问题,未来在很多领域也会不断的扩展相关的应用,比如在金融行业就可以解决下面3种问题
区块链+跨境支付
利用区块链技术是实现跨境支付,对于金融机构而言不仅能够省却了对账的的麻烦同时也减少了对账的时候产生的争议的几率,对于用户和工作人员而言,支付业务的处理速度以及效率也有非常大的进步,同时好保证了支付资金的安全性。
区块链+数字票据
就现在的来看,假票克隆票的存在大大的扰乱了经济市场,票据真实性检验着实是非常的麻烦,违规交易的现象也是一而再而三的无可避免。而如果是利用区块链技术则能将票据转换为数字票据,同时打上特定的时间戳以及公开,进而保证了票据的真实性,从而达到控制市场风险的目的。
区块链+供应链金融
我们知道,区块链技术在使用的时候具有去中心化、共享性、开放性的特征,而区块链证券交易系统可以提升证券产品的登记、发行、交易与结算效率,同时的能够很大的保证交易人的信息安全以及资金安全。
主链开发步骤
?主链也称为根本链,是区块链的基础设施,其地位相当于计算机的操作系统。?因此,主链轨迹是现在区块链职业中含金量最高的轨迹。?现在市面上市值最高的几个项目都是主链。?有了主链,就有了未来的区块链世界,就像IT职业一样,有微软或者安卓和IOS。
本质上,侧链协议是一种跨区域的区块链解决方案,一种允许数字财物(如通行证)从一个区块链安全搬运到另一个并能够转回的合并机制。?经过该解决方案,能够完结双向锚定,在主链和侧链之间安全搬运数字财物。
侧链就像一个功用插件,扩展性很强,能够做很多工作。下面举几个比方:
1。丰厚主链功用,完善加密钱银金融生态。??
链条包容性很强,不排挤现行制度。股票、期货、衍生品买卖等金融行为。?或许被包含在内,从而进一步扩大了区块链技能的使用规模和立异空间。
2。优化主链功用,进步买卖效率。??
就拿现有的主链来说,比方比特币的闪电网,以太坊的闪电网,其实都是侧链的一种展示方法。这两种方法都能够进步主链的运行速度。
当然,这并不代表这个侧链没有缺陷。侧链的独立性也是他的短板。作为一个独立的个体,在完结开发后,需求考虑其独立的运维工作,需求有满足的节点来保证其安全性,才不会在需求的时分直接完蛋。侧链协议扩展的区块链技能的使用规模和立异空间大大增加:能够支持各种财物类型、小额付出、智能合约、安全处理机制、产业挂号等。?,而且能够加强区块链的隐私保护。?经过使用侧链,咱们还能够轻松树立各种智能使用,如金融合约、股票、期货、衍生品等。
在区块链中什么是侧链和主链?
主链:即正式上线的、独立的区块链网络。可以这样说,区块链的存储数据的实体,一般认为是主链网络本身。比如BTC主网、ETH主网和EOS主网都是主链。
侧链:首先,侧链协议的本质属于一种跨区块链的解决方案。简单的说,通过此方案可以让数据信息在两条区块链之间实现转移。侧链最初的提出是基于实现比特币和其他数字资产在多个区块链间的转移。
通俗来说,侧链就像是一条条通路,将不同的区块链互相连接在一起,以实现区块链的扩展。侧链完全独立于主链,但是这两个账本之间能够“互相操作”,实现交互。
侧链协议——侧链协议是指(以比特币为例):可以让比特币安全地从比特币主链转移到其他区块链,又可以从其他区块链安全地返回比特币主链的一种协议。这里将比特币换成以太币或者其他区块链也是同样的道理。那请问,我们为什么需要侧链,或者侧链有什么好处呢?
主链缺乏的功能,侧链来提供。
比如比特币网络没有智能合约的功能,但可以通过侧链来实现这一功能。
如果主链的运行效率低下,可以将主链部分功能转移到侧链来实施。
比如主链的转账速度很慢,没有办法满足日常支付需求,我们可以开发闪电网络来作为侧链满足日常的支付。同样是因为性能低下,以太坊没有办法支持大型商业级的DAPP(去中心化应用),可以通过侧链开发来实现。
如果抛开技术上的严谨性,可以采用另外一种更为简单的方式来理解侧链,一切为原来的主网络提供支持或者服务的网络都可以叫做侧链,不用在乎这个侧链是否采用区块链技术。比如:
第三方支付网络(支付宝/微信),可以把银行网络想象成为主链,而第三方支付就是一种侧链。
加密货币交易,把比特币等虚拟货币等自由的网络看成是主链,那交易所可以看成一个侧链。
???RSK和Loom,他们分别是针对比特币和以太坊主链单独开发出来的侧链。
第一种应用,里面的主链和侧链都是中心化的
第二种应用,主链是去中心化,侧链是中心化的
第三种应用,主链是去中心化,侧链也是去中心化随着区块链技术的深入,我们可以看到人类的价值交换活动,会慢慢的从第一种应用逐步过渡到第三种应用。
链乔教育在线旗下学硕创新区块链技术工作站是中国教育部学校规划建设发展中心开展的“智慧学习工场2020-学硕创新工作站”唯一获准的“区块链技术专业”试点工作站。专业站立足为学生提供多样化成长路径,推进专业学位研究生产学研结合培养模式改革,构建应用型、复合型人才培养体系。
2018-10-02小白学区块链——什么是主链
一,什么是主链
????主链可以理解为正式上线的、能独立自主的区块链网络。是区块链社区公认的可信区块链网络,其交易信息被全体成员所认可。有效的区块在经过区块链网络的共识后会被追加到主网的区块账本上的区块链。
二,主链的特点
????1,相对于测试网络来说,主链是正式上线的的有效区块链、是独立的区块链网络。
????2,原始创建的第一条区块链都可以叫主链,可以在链上部署合约和协议的区块链。
三,主链的应用
???主链的应用最有成就的就属以太坊了,市场上大多数的众筹项目都是基于以太坊开发的,其代币也都是在以太坊上发行的代币,可以理解为:以太坊是一个电脑操作系统,类似于windows系统,而在以太坊上的各种代币,相当于是我们电脑上的各种软件,开发者可以支付以太币在以太坊上运行项目。
什么是区块链主链建设?
很多虚拟货币,一旦从交易所提币出来,都要存放在imtoken等第三方钱包里面。这也是被逼无奈,因为没有自己的钱包,所以只能“寄人篱下”。
那怎么样才能过上独立的生活,不需要看人眼色呢?这就会引申出一个词:主链。
“主链”一词源于“主网”(相对于测试网而言),即正式上线的、独立的区块链网络。
目前,市值排名前50名的区块链项目中,有12个项目是“主链”(当下数据有变化),运行最成功的主链非以太坊莫属了。
以太坊就是拥有自己独立的钱包,并且还能给其他币种“提供住房”的一条主链。
接下来我们通过对以太坊的分析,带你深入了解什么是主链。
市场上大多数的众筹项目都是基于以太坊开发的,你可以理解为:以太坊是一个电脑操作系统,类似于windows系统,而在以太坊上的各种代币,相当于是我们电脑上的各种软件,开发者可以支付以太币在以太坊上运行项目。但是以太坊并不是十全十美,基于以太坊的项目越多,对以太坊的网络需求也就越大,严重的时候会导致拥堵。
其实大部分主链项目还在技术研发和改良阶段,离真正技术落地,还有一段距离。
区块链领域竞争最激烈的,其实也就是“主链”之战。谁能成为区块链基础层的主链,谁就有可能成为未来的苹果、微软等巨头。
另外科普下,国产公链里,沃尔顿链是底层商业应用公链,将区块链去中心化、不可纂改等软件层面特性,与自主研发的RFID芯片硬件相结合,为各行各业提供溯源、认证解决方案、以及设计行业数据加密和分布式储存数据库搭建服务。
当然,并不是说有主链的就一定比没有主链的项目好,有一些项目,由于性质原因,是不需要主链的,比如BNB,它的主要用途是抵扣在币安交易所的手续费,所以有没有主链也不重要。
从比特币到以太坊,再到如今被捧上神坛的EOS,诸多大神都在搭建主链,试图爬上时代的潮头,谁将是区块链的未来王者,让时间给我们答案。
三、区块链最高能长到多少
最长区块链才是正确的区块链?
什么是最长链?为什么是正确的区块链?
比特币白皮书规定,节点永远认为最长链是正确的区块链,并将持续在它上面延长。所有矿工都在最长链上挖矿,有利于区块链账本的唯一性。如果给你转账的比特币交易不记录在最长链上,你将有可能面临财产损失。
怎样算是“最长的区块链”呢?因为全世界的矿工同时在挖矿,有可能同时有2个矿工算出了正确的答案,那么区块链就会形成分叉,剩下的矿工有可能在其中任意一条分叉上继续挖矿,延长区块链。
所以我们通常要求在比特币转账被打包之后,还需要经历6个区块的确认,确保矿工不会再回到另一条分叉上挖矿时,才算真正的转账成功。
【科普】如何选择区块链的最长链
本文由币车HIT(biche.yaofache.com)大V养成计划支持。
基于逐利,节点就会自发的遵守协议。共识就是数以万计的独立节点遵守了简单的规则(通过异步交互)自发形成的。
比特币没有中心机构,几乎所有的完整节点都有一份公共总帐本,那么大家如何达成共识:确认哪一份才是公认权威的总账本呢?
为什么要遵守协议
这其实是一个经济问题,在经济活动中的每个人都是自私自利的,追求的是利益的最大化,一个节点工作量只有在其他的节点认同其是有效的(打包的新区块,其他的节点只有验证通过才会加入到区块链中,并在网络上传播),才能够过得收益,?而只有遵守规则才会得到其他的节点认同。?因此,基于逐利,节点就会自发的遵守协议。共识就是数以万计的独立节点遵守了简单的规则(通过异步交互)自发形成的。
去中心化共识
实际上,比特币的共识由所有节点的4个独立过程相互作用而产生:
每个节点(挖矿节点)依据标准对每个交易进行独立验证;挖矿节点通过完成工作量证明,将交易记录独立打包进新区块;每个节点独立的对新区块进行校验并组装进区块链;每个节点对区块链进行独立选择,在工作量证明机制下选择累计工作量最大的区块链;共识最终目的是保证比特币不停的在工作量最大的区块链上运转,工作量最大的区块链就是权威的公共总帐本。
最长链的选择
先来一个定义,把累计了最多难度的区块链。在一般情况下,也是包含最多区块的那个链称为主链
每一个(挖矿)节点总是选择并尝试延长主链。
分叉
当有两名矿工在几乎在相同的时间内,各自都算得了工作量证明解,便立即传播自己的“获胜”区块到网络中,先是传播给邻近的节点而后传播到整个网络。每个收到有效区块的节点都会将其并入并延长区块链。?当这个两个区块传播时,一些节点首先收到#3458A,?一些节点首先收到#3458B,这两个候选区块(通常这两个候选区块会包含几乎相同的交易)都是主链的延伸,分叉就会产生,这时分叉出有竞争关系的两条链。两个块都收到的节点,会把其中有更多工作量的一条会继续作为主链,另一条作为备用链保存(保存是因为备用链将来可能会超过主链难度称为新主链)。
分叉解决
收到#3458A的(挖矿)节点,会立刻以这个区块为父区块来产生新的候选区块,并尝试寻找这个候选区块的工作量证明解。同样地,接受#3458B区块的节点会以这个区块为链的顶点开始生成新块,延长这个链(下面称为B链)。?当原本以#3458A为父区块求解的节点在收到#3458B,?#3459B之后,会立刻将B链作为主链(因为#3458A为顶点的链已经不是最长链了)继续挖矿。节点也有可能先收到#3459B,再收到#3458B,收到#3459B时,会被认为是“孤块“(因为还找不到#3459B的父块#3458B)保存在孤块池中,一旦收到父块#3458B时,节点就会将孤块从孤块池中取出,并且连接到它的父区块,让它作为区块链的一部分。
比特币将区块间隔设计为10分钟,是在更快速的交易确认和更低的分叉概率间作出的妥协。更短的区块产生间隔会让交易确认更快地完成,也会导致更加频繁地区块链分叉。与之相对地,长的间隔会减少分叉数量,却会导致更长的确认时间。
什么是区块链扩容?
普通用户能够运行节点对于区块链的去中心化至关重要
想象一下凌晨两点多,你接到了一个紧急呼叫,来自世界另一端帮你运行矿池(质押池)的人。从大约14分钟前开始,你的池子和其他几个人从链中分离了出来,而网络仍然维持着79%的算力。根据你的节点,多数链的区块是无效的。这时出现了余额错误:区块似乎错误地将450万枚额外代币分配给了一个未知地址。
一小时后,你和其他两个同样遭遇意外的小矿池参与者、一些区块浏览器和交易所方在一个聊天室中,看见有人贴出了一条推特的链接,开头写着“宣布新的链上可持续协议开发基金”。
到了早上,相关讨论广泛散布在推特以及一个不审查内容的社区论坛上。但那时450万枚代币中的很大一部分已经在链上转换为其他资产,并且进行了数十亿美元的defi交易。79%的共识节点,以及所有主要的区块链浏览器和轻钱包的端点都遵循了这条新链。也许新的开发者基金将为某些开发提供资金,或者也许所有这些都被领先的矿池、交易所及其裙带所吞并。但是无论结果如何,该基金实际上都成为了既成事实,普通用户无法反抗。
或许还有这么一部主题电影。或许会由MolochDAO或其他组织进行资助。
这种情形会发生在你的区块链中吗?你所在区块链社区的精英,包括矿池、区块浏览器和托管节点,可能协调得很好,他们很可能都在同一个telegram频道和微信群中。如果他们真的想出于利益突然对协议规则进行修改,那么他们可能具备这种能力。以太坊区块链在十小时内完全解决了共识失败,如果是只有一个客户端实现的区块链,并且只需要将代码更改部署到几十个节点,那么可以更快地协调客户端代码的更改。能够抵御这种社会性协作攻击的唯一可靠方式是“被动防御”,而这种力量来自去一个中心化的群体:用户。
想象一下,如果用户运行区块链的验证节点(无论是直接验证还是其他间接技术),并自动拒绝违反协议规则的区块,即使超过90%的矿工或质押者支持这些区块,故事会如何发展。
如果每个用户都运行一个验证节点,那么攻击很快就会失败:有些矿池和交易所会进行分叉,并且在整个过程中看起来很愚蠢。但是即使只有一些用户运行验证节点,攻击者也无法大获全胜。相反,攻击会导致混乱,不同用户会看到不同的区块链版本。最坏情况下,随之而来的市场恐慌和可能持续的链分叉将大幅减少攻击者的利润。对如此旷日持久的冲突进行应对的想法本身就可以阻止大多数攻击。
Hasu关于这一点的看法:
“我们要明确一件事,我们之所以能够抵御恶意的协议更改,是因为拥有用户验证区块链的文化,而不是因为PoW或PoS。”
假设你的社区有37个节点运行者,以及80000名被动监听者,对签名和区块头进行检查,那么攻击者就获胜了。如果每个人都运行节点的话,攻击者就会失败。我们不清楚针对协同攻击的启动群体免疫的确切阈值是多少,但有一点是绝对清楚的:好的节点越多,恶意的节点就越少,而且我们所需的数量肯定不止于几百几千个。
那么全节点工作的上限是什么?
为了使得有尽可能多的用户能够运行全节点,我们会将注意力集中在普通消费级硬件上。即使能够轻松购买到专用硬件,这能够降低一些全节点的门槛,但事实上对可扩展性的提升并不如我们想象的那般。
全节点处理大量交易的能力主要受限于三个方面:
算力:在保证安全的前提下,我们能划分多少CPU来运行节点?
带宽:基于当前的网络连接,一个区块能包含多少字节?
存储:我们能要求用户使用多大的空间来进行存储?此外,其读取速度应该达到多少?(即,HDD足够吗?还是说我们需要SSD?)
许多使用“简单”技术对区块链进行大幅扩容的错误看法都源自于对这些数字过于乐观的估计。我们可以依次来讨论这三个因素:
算力
错误答案:100%的CPU应该用于区块验证
正确答案:约5-10%的CPU可以用于区块验证
限制之所以这么低的四个主要原因如下:
我们需要一个安全边界来覆盖DoS攻击的可能性(攻击者利用代码弱点制造的交易需要比常规交易更长的处理时间)
节点需要在离线之后能够与区块链同步。如果我掉线一分钟,那我应该要能够在几秒钟之内完成同步
运行节点不应该很快地耗尽电池,也不应该拖慢其他应用的运行速度
节点也有其他非区块生产的工作要进行,大多数是验证以及对p2p网络中输入的交易和请求做出响应
请注意,直到最近大多数针对“为什么只需要5-10%?”这一点的解释都侧重于另一个不同的问题:因为PoW出块时间不定,验证区块需要很长时间,会增加同时创建多个区块的风险。这个问题有很多修复方法,例如BitcoinNG,或使用PoS权益证明。但这些并没有解决其他四个问题,因此它们并没有如许多人所料在可扩展性方面获得巨大进展。
并行性也不是灵丹妙药。通常,即使是看似单线程区块链的客户端也已经并行化了:签名可以由一个线程验证,而执行由其他线程完成,并且有一个单独的线程在后台处理交易池逻辑。而且所有线程的使用率越接近100%,运行节点的能源消耗就越多,针对DoS的安全系数就越低。
带宽
错误答案:如果没2-3秒都产生10MB的区块,那么大多数用户的网络都大于10MB/秒,他们当然都能处理这些区块
正确答案:或许我们能在每12秒处理1-5MB的区块,但这依然很难
如今,我们经常听到关于互联网连接可以提供多少带宽的广为传播的统计数据:100Mbps甚至1Gbps的数字很常见。但是由于以下几个原因,宣称的带宽与预期实际带宽之间存在很大差异:
“Mbps”是指“每秒数百万bits”;一个bit是一个字节的1/8,因此我们需要将宣称的bit数除以8以获得字节数。
网络运营商,就像其他公司一样,经常编造谎言。
总是有多个应用使用同一个网络连接,所以节点无法独占整个带宽。
P2P网络不可避免地会引入开销:节点通常最终会多次下载和重新上传同一个块(更不用说交易在被打包进区块之前还要通过mempool进行广播)。
当Starkware在2019年进行一项实验时,他们在交易数据gas成本降低后首次发布了500kB的区块,一些节点实际上无法处理这种大小的区块。处理大区块的能力已经并将持续得到改善。但是无论我们做什么,我们仍然无法获取以MB/秒为单位的平均带宽,说服自己我们可以接受1秒的延迟,并且有能力处理那种大小的区块。
存储
错误答案:10TB
正确答案:512GB
正如大家可能猜到的,这里的主要论点与其他地方相同:理论与实践之间的差异。理论上,我们可以在亚马逊上购买8TB固态驱动(确实需要SSD或NVME;HDD对于区块链状态存储来说太慢了)。实际上,我用来写这篇博文的笔记本电脑有512GB,如果你让人们去购买硬件,许多人就会变得懒惰(或者他们无法负担800美元的8TBSSD)并使用中心化服务。即使可以将区块链装到某个存储设备上,大量活动也可以快速地耗尽磁盘并迫使你购入新磁盘。
一群区块链协议研究员对每个人的磁盘空间进行了调查。我知道样本量很小,但仍然…
请点击输入图片描述
此外,存储大小决定了新节点能够上线并开始参与网络所需的时间。现有节点必须存储的任何数据都是新节点必须下载的数据。这个初始同步时间(和带宽)也是用户能够运行节点的主要障碍。在写这篇博文时,同步一个新的geth节点花了我大约15个小时。如果以太坊的使用量增加10倍,那么同步一个新的geth节点将至少需要一周时间,而且更有可能导致节点的互联网连接受到限制。这在攻击期间更为重要,当用户之前未运行节点时对攻击做出成功响应需要用户启用新节点。
交互效应
此外,这三类成本之间存在交互效应。由于数据库在内部使用树结构来存储和检索数据,因此从数据库中获取数据的成本随着数据库大小的对数而增加。事实上,因为顶级(或前几级)可以缓存在RAM中,所以磁盘访问成本与数据库大小成正比,是RAM中缓存数据大小的倍数。
不要从字面上理解这个图,不同的数据库以不同的方式工作,通常内存中的部分只是一个单独(但很大)的层(参见leveldb中使用的LSM树)。但基本原理是一样的。
例如,如果缓存为4GB,并且我们假设数据库的每一层比上一层大4倍,那么以太坊当前的~64GB状态将需要~2次访问。但是如果状态大小增加4倍到~256GB,那么这将增加到~3次访问。因此,gas上限增加4倍实际上可以转化为区块验证时间增加约6倍。这种影响可能会更大:硬盘在已满状态下比空闲时需要花更长时间来读写。
这对以太坊来说意味着什么?
现在在以太坊区块链中,运行一个节点对许多用户来说已经是一项挑战,尽管至少使用常规硬件仍然是可能的(我写这篇文章时刚刚在我的笔记本电脑上同步了一个节点!)。因此,我们即将遭遇瓶颈。核心开发者最关心的问题是存储大小。因此,目前在解决计算和数据瓶颈方面的巨大努力,甚至对共识算法的改变,都不太可能带来gaslimit的大幅提升。即使解决了以太坊最大的DoS弱点,也只能将gaslimit提高20%。
对于存储大小的问题,唯一解决方案是无状态和状态逾期。无状态使得节点群能够在不维护永久存储的情况下进行验证。状态逾期会使最近未访问过的状态失活,用户需要手动提供证明来更新。这两条路径已经研究了很长时间,并且已经开始了关于无状态的概念验证实现。这两项改进相结合可以大大缓解这些担忧,并为显著提升gaslimit开辟空间。但即使在实施无状态和状态逾期之后,gaslimit也可能只会安全地提升约3倍,直到其他限制开始发挥作用。
另一个可能的中期解决方案使使用ZK-SNARKs来验证交易。ZK-SNARKs能够保证普通用户无需个人存储状态或是验证区块,即使他们仍然需要下载区块中的所有数据来抵御数据不可用攻击。另外,即使攻击者不能强行提交无效区块,但是如果运行一个共识节点的难度过高,依然会有协调审查攻击的风险。因此,ZK-SNARKs不能无限地提升节点能力,但是仍然能够对其进行大幅提升(或许是1-2个数量级)。一些区块链在layer1上探索该形式,以太坊则通过layer2协议(也叫ZKrollups)来获益,例如zksync,Loopring和Starknet。
分片之后又会如何?
分片从根本上解决了上述限制,因为它将区块链上包含的数据与单个节点需要处理和存储的数据解耦了。节点验证区块不是通过亲自下载和执行,而是使用先进的数学和密码学技术来间接验证区块。
因此,分片区块链可以安全地拥有非分片区块链无法实现的非常高水平的吞吐量。这确实需要大量的密码学技术来有效替代朴素完整验证,以拒绝无效区块,但这是可以做到的:该理论已经具备了基础,并且基于草案规范的概念验证已经在进行中。
以太坊计划采用二次方分片(quadraticsharding),其中总可扩展性受到以下事实的限制:节点必须能够同时处理单个分片和信标链,而信标链必须为每个分片执行一些固定的管理工作。如果分片太大,节点就不能再处理单个分片,如果分片太多,节点就不能再处理信标链。这两个约束的乘积构成了上限。
可以想象,通过三次方分片甚至指数分片,我们可以走得更远。在这样的设计中,数据可用性采样肯定会变得更加复杂,但这是可以实现的。但以太坊并没有超越二次方,原因在于,从交易分片到交易分片的分片所获得的额外可扩展性收益实际上无法在其他风险程度可接受的前提下实现。
那么这些风险是什么呢?
最低用户数量
可以想象,只要有一个用户愿意参与,非分片区块链就可以运行。但分片区块链并非如此:单个节点无法处理整条链,因此需要足够的节点以共同处理区块链。如果每个节点可以处理50TPS,而链可以处理10000TPS,那么链至少需要200个节点才能存续。如果链在任何时候都少于200个节点,那可能会出现节点无法再保持同步,或者节点停止检测无效区块,或者还可能会发生许多其他坏事,具体取决于节点软件的设置。
在实践中,由于需要冗余(包括数据可用性采样),安全的最低数量比简单的“链TPS除以节点TPS”高几倍,对于上面的例子,我们将其设置位1000个节点。
如果分片区块链的容量增加10倍,则最低用户数也增加10倍。现在大家可能会问:为什么我们不从较低的容量开始,当用户很多时再增加,因为这是我们的实际需要,用户数量回落再降低容量?
这里有几个问题:
区块链本身无法可靠地检测到其上有多少唯一用户,因此需要某种治理来检测和设置分片数量。对容量限制的治理很容易成为分裂和冲突的根源。
如果许多用户突然同时意外掉线怎么办?
增加启动分叉所需的最低用户数量,使得防御恶意控制更加艰难。
最低用户数为1,000,这几乎可以说是没问题的。另一方面,最低用户数设为100万,这肯定是不行。即使最低用户数为10,000也可以说开始变得有风险。因此,似乎很难证明超过几百个分片的分片区块链是合理的。
历史可检索性
用户真正珍视的区块链重要属性是永久性。当公司破产或是维护该生态系统不再产生利益时,存储在服务器上的数字资产将在10年内不再存在。而以太坊上的NFT是永久的。
是的,到2372年人们仍能够下载并查阅你的加密猫。
但是一旦区块链的容量过高,存储所有这些数据就会变得更加困难,直到某时出现巨大风险,某些历史数据最终将……没人存储。
要量化这种风险很容易。以区块链的数据容量(MB/sec)为单位,乘以~30得到每年存储的数据量(TB)。当前的分片计划的数据容量约为1.3MB/秒,因此约为40TB/年。如果增加10倍,则为400TB/年。如果我们不仅希望可以访问数据,而且是以一种便捷的方式,我们还需要元数据(例如解压缩汇总交易),因此每年达到4PB,或十年后达到40PB。InternetArchive(互联网档案馆)使用50PB。所以这可以说是分片区块链的安全大小上限。
因此,看起来在这两个维度上,以太坊分片设计实际上已经非常接近合理的最大安全值。常数可以增加一点,但不能增加太多。
结语
尝试扩容区块链的方法有两种:基础的技术改进和简单地提升参数。首先,提升参数听起来很有吸引力:如果您是在餐纸上进行数学运算,这就很容易让自己相信消费级笔记本电脑每秒可以处理数千笔交易,不需要ZK-SNARK、rollups或分片。不幸的是,有很多微妙的理由可以解释为什么这种方法是有根本缺陷的。
运行区块链节点的计算机无法使用100%的CPU来验证区块链;他们需要很大的安全边际来抵抗意外的DoS攻击,他们需要备用容量来执行诸如在内存池中处理交易之类的任务,并且用户不希望在计算机上运行节点的时候无法同时用于任何其他应用。带宽也会受限:10MB/s的连接并不意味着每秒可以处理10MB的区块!也许每12秒才能处理1-5MB的块。存储也是一样,提高运行节点的硬件要求并且限制专门的节点运行者并不是解决方案。对于去中心化的区块链而言,普通用户能够运行节点并形成一种文化,即运行节点是一种普遍行为,这一点至关重要。