典型的企业应用程序开发人员会发现以确定性的方式编写代码是困难的或不切实际的。你的生意就会面临欺诈或黑客攻击的风险。如硬件上的浮点行为或哈希表的插入顺序。
口罩生产如何做区块链溯源?
刚刚兴起的区块链行业,还来不及在这次抗疫行动中大展身手。
写在前面:本文作者为EOS创始人Daniel Larimer。他在文章中剖析了传统互联网中的数据库等基本架构和设想的缺点并指出区块链是最好的处理方案:诸如EOSIO之类的区块链开放式框架使得开发者无需为了构建平安的运用程序而从新建立“数据库”,因为一切用户运用私钥对自身的行动署名,可追溯和查证。将来B1的一个目的是增加东西和接口,促使在区块链上布置营业的历程和传统互联网上布置营业类似(以至更简朴)。
传统的网页运用程序基本构造在设想时将平安性作为预先斟酌事项,在过去的25年中,许多公司一向在试图修补一个基础不平安的架构。这类架构在设想时就预设服务器是能够被信托和庇护的,然则多年的履历关照我们,没有服务器是平安的,更不用说内部的进击了。换句话说,服务器基本上是中间化的。
我们过去以为“问题”在于用户和服务器之间的衔接,因而我们引入了SSL和HTTPS。但厥后我们发明,黑客会损坏数据库并偷取暗码。所以我们入手下手存储暗码的哈希值,但厥后我们发明黑客会在偷取哈希值后强行破解暗码。然后,我们引入了暗码切换机制,以便在暴力破解时变动暗码,诸如此类的步伐另有许多。
为了庇护服务器和数据库,企业须要消费数十亿美圆,只管支付了一切勤奋,但依然没有简朴的方法来检察体系并确保企业按预期运转。
Block.one正在构建区块链软件,以坚持数据库和用户账户的平安,防备未经受权的接见和未予诠释的修正。有了区块链,用户能够运用高度平安的私钥,这些密钥存储在平安的硬件中,用于对每一个用户交互举行署名,而不是简朴地举行服务器衔接的身份考证。区块链建立了一个不可变动的纪录,建立了吸收用户输入的相对和肯定性的次序,而智能合约供应了肯定性的营业逻辑,确保了一切体系之间的一致性。
将来的Block.one正在消弭暗码和高贵的审计,为企业节约数十亿美圆,防备身份偷窃,并供应更高的可靠性和可审计才。
多年来,我一向以为每一个多用户网站都能够从区块链后端中获益。和许多人的认知差别,区块链没必要是迟缓、低效的数据库,也没必要在抗检察、开放的基本上运转。区块链能够在平安性、审计才、透明度和营业流程的完整性方面供应重要的革新,纵然区块链完整由公司自身操纵,个中的一切内容都不会公然。本文旨在展现区块链在企业环境中的真正代价,并为区块链行业的生长指明方向。
罕见的误会
在区块链行业中,许多人以为区块链只要在将互不信托的介入方衔接起来时才会制造上风。他们以为,传统的数据库手艺已能够完成确保营业所需的一切事情。换句话说,他们以为传统的数据库复制和“数据完整性”保证就足够了。在这个历程当中,他们要么忽视要么忽视区块链所供应的完整差别的平安性和完整性保证:
1. 对全局事宜序列的许诺
2. 营业逻辑确实定性实行
3. 营业逻辑和数据完整性的严密耦合
4. 消弭暗码
在传统的营业运用程序架构中,营业逻辑与数据库是星散的。一般有一个运用服务器,如Node.js或J2EE,供应了修正数据库的暗码。Node.js服务器的作用是经由过程暗码或多要素认证机制对用户举行身份考证。一旦运用服务器对用户举行了身份考证,它就会发出一个会话令牌,用于对将来的用户交互举行身份考证,直到超时或会话的某些元素(如IP)发作变动。
明显,这类传统设想经由过程运用服务器治理的单次登录/暗码实行一切数据库操纵。经由过程终究用处,运用服务器担任布置身份认证机制。明显,一般有多个用户能够接见用户名和暗码。数据库治理员能够向许多差别的运用服务器或个人分派和打消凭据。
高等体系确保在横向扩大的体系中,每一个运用服务器都有自身的用户名和暗码,在某些情况下以至能够运用公钥基本设施(PKI)和硬件平安模块(HSM)。然则,纵然在这里,数据库也只认证运用服务器的衔接。为了供应审计日记,它必需纪录平安衔接的全部数据流。然则,纵然这个日记也只能纪录运用程序服务器请求的“读写操纵”,而运用程序服务器已丧失了最初用户企图的一切信息。
检察如许一个体系的审计师没法晓得运用服务器(比方Node.js)是不是遵照准确的营业逻辑,是不是准确地考证了终究用户的身份。Node.js历程能够将用户操纵纪录到数据库中,轻易审计师复制一样的盘算,但如许的纪录并不是不可改动,而且没有自力认证考证,没法相识终端用户真的受权了某一行动。
能够尝试纪录每一个用户的衔接,然则因为用户常常经由过程衔接传输他们的暗码,这些纪录终究会成为一个泄漏用户信息的蜜罐。更庞杂的体系能够对这些纪录举行加密,如许只要审计职员才读取它们。
假定审计日记没有被改动,审计职员将不得不经由过程运用程序逻辑运转雷同的操纵序列,以考证终究数据库状况是不是婚配。这意味着运用服务器必需以肯定性的体式格局完成。
肯定性盘算很难
虽然编写肯定性代码彷佛很简朴,但实际上一切罕见的盘算机语言都黑白肯定性的,因为它们许可开发职员猎取存储在数据库之外的数据。能够是一些简朴的东西,如时刻戳、内存地点、环境变量、IP地点,也能够是一些更玄妙的东西,如硬件上的浮点行动或哈希表的插进去次序。在许多情况下,接见长时刻运转的运用程序服务器的内存变量就足以引入不肯定性。启动/住手运用程序服务器的行动必需被纪录和复制,否则在重放时期每一个当地内存接见多是不肯定的。
事实是,编写肯定性代码关于受过罕见误区培训、主动寻觅非肯定性的最好开发职员来说是一个应战。典范的企业运用程序开发职员会发明以肯定性的体式格局编写代码是难题的或不切实际的。
假如我们进一步假定运用程序代码是肯定性的,运用程序照实纪录用户事宜,那末我们依然面对跟踪布置的代码版本的应战。运用程序是动态的,而且常常更新,因而运用程序代码自身也必需是数据库状况的一部分,而且其更新的治理和纪录与用户操纵的平安性和可审计性雷同。然后,审计职员须要具有运用服务器代码的一切版本的副本,并依据须要经由过程每次版本升级来重放用户输入(以及重启代码)。
纵然单个运用程序服务器在装置和布置方面都能够以肯定的体式格局举行操纵,它依然会碰到一个重要的可扩大性问题。只要一个运用服务器实例能够在数据库举行操纵。并行接见能够经由过程庞杂的锁完成,然则纵然锁上的合作前提也必需被纪录和复制,或许两个具有差别当地变量的运用程序逻辑实例也大概发生不肯定的输出。
此时人们大概会完整摒弃肯定性,然则肯定性在缺席以后,会逐渐在终究数据集积累大批的误差。审计职员将被迫运用隐约逻辑和近似婚配,每一个人都必需置信“隐约逻辑”已够好了。
固然,要否认编写和布置肯定性代码所支付的一切勤奋,唯一要做的就是让数据库治理员直接修正数据库而不举行跟踪。在某些情况下,对用户输入日记和状况的细致更新大概会建立两个差别的数据库状况,每一个状况都经由过程了肯定性测试,但依然具有差别的和不可折衷的输出。比方,假定一个传授向体系提交了一个门生的结果为F,然后这个门生能够经由过程黑客或行贿的体式格局进入数据库来变动他的结果和传授提交的纪录。
消弭暗码
任何注重完整性的多用户体系的终究目的都是确保不能捏造用户输入。用户名/暗码或其他主观的多要素认证(如SMS或谷歌考证)的运用依赖于服务器来推断暗码是不是婚配,或许是不是输入了准确的SMS代码/电子邮件链接/考证码。很明显,这对体系的完整性来说是一个庞大的问题,我将供应一个实在的例子来申明这些体系有多蹩脚。
2016年,我在一家加密钱银交易所开设了一个账户,厥后这家遭到黑客进击,黑客偷取了代价数万美圆的比特币。我当时一共收到了4封邮件,第一封是 “暗码重置”邮件,然后是另一封表明我的暗码已胜利重置的邮件。然后我收到一封请求确认我的比特币提取(带有代码/链接)的邮件。然后我收到了一个关照,说我的提币手续已办完了。
乍一看,我的邮箱彷佛被黑了,但这是不大概的,因为我采纳了多要素认证。我的邮箱平安页面显现,没有未经受权的接见。我也能看出来,因为谷歌会纪录并显现一切接见我邮箱的IP和装备。
事实上,进击者在邮件抵达我的邮箱之前就截获了邮件。运用服务器没法晓得邮件被截获,因而就算进击者只要运用服务器生成的一次性代码,其照样能取得暗码重置和提币的受权。
一样的破绽也可用于SMS或依赖于用户掌握的私钥之外的其他手艺。真正平安的用户账户是为一切用户采纳基于硬件的私钥作为他们的登录凭据,在硬件密钥丧失的情况下,采纳一个妥当的和费时的历程来增进平安复位。
此时,多用户营业运用程序能够运用用户的私钥对每一个用户请求署名,将这个署名的请求纪录到数据库中,并运用肯定性代码处置惩罚它。纵然如许也不能供应人们所希冀的完整性,因为用户请求依然大概被删除,同时还会发生副作用。设想一下,当一位警官提交了你的罚单,然后一切的州都产出了这个请求,你就可以够入侵警员数据库并删除他签订的请求。
此时,夺目的工程师会宣称,我提出的每一个问题都能够经由过程变动运用程序逻辑来处理。他是对的,一个成熟的运用程序开发职员能够运用传统的数据库、传统的运用程序服务器和罕见的暗码原语来构建一个相对平安且可审计的体系。依据一样的逻辑,一个夺目的工程师能够宣称数据库是完整没必要要的,一切的东西都应当直接构建在文件体系上。也有工程师大概会指出,我们能够从头入手下手编写代码,不再依赖于Node.js和J2EE等运用服务器框架,如许就可以进步机能。这就彷佛一切的东西都是由低水平的手艺制造出来的,我们也能够设想出机能最好的晶体管。
我之所以指出这个极度,是因为它强调了了高等框架在加快和庇护新运用程序开发方面的真正功效。很少有人编写自身的暗码库或算法,而编写这些库或算法的人要么是专家,要么在自身的体系遭到黑客进击时成为了反面教材。从头入手下手开发/从新开发一切东西的本钱大概会使每一个运用程序都比在经由考证的框架上构建更高贵。
区块链运用和数据服务器的上风
区块链和EOSIO如许的开发框架之所以存在,是为了让运用程序开发职员没必要为了构建平安的运用程序而从新建立“数据库”。平安性和肯定性很难完成,这就是为何手艺构建在笼统细节的层中。EOSIO在统一历程当中将肯定性实行环境(WebAssembly)与疾速数据库相结合。一切的用户操纵都由他们自身的私钥署名,并纪录在一个复制和分布式的数据库中,该数据库具有对区块头举行公然许诺的才。
EOSIO如许的框架变得与传统的不平安体系一样壮大且易于开发,只是时刻问题。在许多方面,EOSIO的架构已比传统体系具有更高的机能,这是因为它将运用程序逻辑放在与内存数据库雷同的历程空间中。这就建立了肯定性存储历程。
在将来的几年里,Block.one的目的是增加东西和接口,使在区块链上布置企业运用程序就像在传统企业运用架构上布置同类运用一样轻易(或更轻易)。
很明显,采纳区块链手艺应当成为政府机构、上市公司和有义务防备敲诈或举行财务报告的企业的优先事项。在我看来,将来几年不采纳区块链手艺就像银行不采纳SSL,一旦该手艺获得普遍运用,不运用区块链手艺就会被以为是忽视。
是时刻入手下手行动了。假如运用程序的构建体式格局没有基础性的转变,你的企业和用户就不会平安。每延宕一天,你的买卖就会面对敲诈或黑客进击的风险。
比特币; https://www.btcmoney.cc/detail/68109.html
加入新手交流群:每天早盘分析、币种行情分析
添加助理微信,一对一专业指导:chengqing930520
上一篇:
加密钱银势不可挡,特朗普宣布2021财年预算欲加大羁系
下一篇:
口罩生产如何做区块链溯源?
加入新手交流群:每天早盘分析、币种行情分析,添加助理微信
一对一专业指导:chengqing930520
最新资讯
提供比特币数字货币以太坊eth,莱特币ltc,EOS今日价格、走势、行情、资讯、OKEX、币安、火币网、中币、比特儿、比特币交易平台网站。
2021 数字货币 网站地图