您的位置: 首页 > 新闻动态 > 企业新闻

大阳城8722:EOS的BM:为什么区块链是更好的应用服务器/数据库架构?

发布日期:2024-05-01 01:48:02 浏览次数:
本文摘要:前言:传统web应用于架构不存在安全性问题,为了保证更高程度的安全性,企业花费巨资,不过仍然无法彻底解决问题。

前言:传统web应用于架构不存在安全性问题,为了保证更高程度的安全性,企业花费巨资,不过仍然无法彻底解决问题。而本文作者Daniel Larimer(也就是众所周知的EOS的BM)则指出要解决问题这个问题,必须使用区块链的架构来保证数据库和用户账户的安全性,可以避免予以许可的采访和以防伪造,同时可以为使用区块链技术的企业节省费用。

BM指出区块链是更佳的应用服务器/数据库架构,未来不会沦为很多企业的不可或缺技术,这不会是超级大的潜在市场吗?大家如何看?本文由蓝狐笔记的社群“DoTi”翻译成。传统的web应用于基础架构在设计时考虑到了安全性,并且二十五年来,公司仍然在企图修复显然上不存在不安全性的体系架构。

该架构设计的假设是服务器可以被信任和维护,但多年的经验告诉他我们,没服务器可以免遭外部反击,更加不用说内部的危险性了。换言之,服务器彻底是中心化的。

我们曾多次把“安全性问题”归结用户和服务器之间的相连,因此,我们引进了SSL和HTTPS。但是,后来我们找到,黑客不会毁坏数据库并盗取密码。因此,我们开始存储密码的哈希值,但接下来我们又找到,在盗取哈希值后,黑客可以用于暴力破解密码。随后,我们引进密码换人,这样在黑客展开暴力破解时,密码不会再次发生变更。

如此这般的攻守,大大首演。(蓝狐笔记:SSL是为网络通信获取安全性的协议,SSL协议坐落于TCP/IP协议和应用层协议之间,对网络连接展开加密。而HTTPS则是在HTTP的基础上重新加入SSL。

)企业花费数十亿美元,企图维护其服务器和数据库,尽管代价这些希望,但仍然没非常简单方法来审核系统,且能保证企业按他们的意愿运营。Block.one正在建构区块链软件以保证数据库和用户账户的安全性,避免予以许可的采访和予以解释的改动。用于区块链时,用户使用高度安全性的私钥,这些私钥存储在安全性硬件,且私钥用作亲笔签名每个用户交互,而不是非常简单检验与服务器的相连。

(蓝狐笔记:Block.one是研发EOSIO软件的公司)区块链创立不能伪造的日志,它建构意味著和确定性的顺序,接管用户输出,而智能合约获取确定性的商业逻辑,以保证所有系统的一致性。未来的Block.one正在创立避免密码和便宜审核的方法,可为公司节省数十亿美元,避免身份被盗取,并为所有人获取更高的可靠性和审核能力。我多年来忠诚地指出,每个多用户网站都可以因为使用区块链后端而获益。

与风行观点忽略,区块链不一定是较慢的陈旧的数据库,也不用一定在抗审查和对外开放采访的基础上运营。即使区块链几乎由公司本身运营,且区块链的所有内容都不公开发表,区块链也能为公司在安全性、审核能力、透明度以及业务流程完整性上获取极大改良。本文目的阐述区块链在企业环境中的确实价值,并为区块链行业说明前进方向。

少见的误会在区块链行业中,很多人的观点是,只有当区块链将彼此不信任的各方连接起来时,区块链才能带给益处。他们指出,传统数据库技术早已可以已完成保证业务完整性所需的一切。换句话说,他们指出有了传统的数据库拷贝和“数据完整性”确保就早已充足。

在此过程中,他们要么忽视要么不理解区块链获取的显然有所不同的安全性和完整性确保:· 对全球时间顺序的允诺· 业务逻辑的确定性继续执行· 业务逻辑数据完整性的凸耦合· 避免密码在传统的业务应用于架构中,业务逻辑跟数据库是分离出来的。一般来说有应用服务器,例如Node.js或J2EE,其获取了改动数据库的密码。

Node.js服务器的起到是通过密码或多因素身份验证机制来构建对用户的检验。一旦应用服务器展开用户身份验证,它将发动不会话令牌,该会话令牌用作检验未来的用户交互,以后不会话超时或不会话(如IP)的某些元素再次发生转变为止。很似乎,这种传统的设计通过由应用服务器管理的单个登录名/密码来继续执行所有数据库操作者。

应用服务器负责管理用最后的终端用于来继续执行其自身的身份验证方案。某种程度,也很似乎,一般来说有多方可以采访用户名和密码。

数据库管理员可以对多个有所不同的应用服务器和/或个人分配和撤消凭证。先进设备的系统保证,在水平拓展的系统中每个应用服务器都有其自己的用户名/密码,且在某些情况下,它甚至可以用于公钥基础设施(PKI)和硬件安全模块(HSM)。然而,即使在这里,数据库也仅对与应用服务器的相连展开检验。

为了获取审查日志,它必需记录安全性相连的整个数据流。然而,即使这个日志仅有记录应用服务器催促的“加载和载入”,该应用服务器早已遗失关于完整用户意图的所有信息。审查这种系统的审核员无法告诉应用服务器(如Node.js)否遵循了准确的业务逻辑且准确检验了终端用户。

Node.js进程可以将用户操作者“记录”到数据库中,便于审核员可以尝试再现完全相同的计算出来,但这种记录本身并非不能伪造,且并不附带独立国家可验证的身份验证,无法检验最终用户否实质上许可了其记录的操作者。可以尝试记录每个用户的相连,但由于用户常常通过这样的相连传输密码,因此,这些记录最后不会创立可能会造成泄漏用户身份凭证的蜜罐。(蓝狐笔记:蜜罐意为黑客讨厌反击的喜乐之地)更加负责管理的系统可能会对这些日志展开加密,以便只有审核员才能加载。

假设审查日志没被伪造,审核员必需通过应用逻辑跑出完全相同的操作者序列,以检验结果数据库状态否给定。这意味著应用服务器必需以确定性的方式来构建。确定性计算出来是不更容易的尽管写出确定性代码看上去“更容易”,实质上,所有标准化计算机语言都所谓确定性的,因为它们容许开发者采访不存在数据库中的外部数据。

这有可能是一些非常简单的数据,如时间砍、内存地址、环境变量、IP地址、或其他更加错综复杂的数据,例如硬件上的浮点不道德或哈希表的放入顺序。在很多情况下,只是非常简单地采访长时间运营的应用服务器的内存中的变量就不足以引进不确定性。

启动/暂停应用服务器的实际操作必需被记录和再现,否则在纠错过程中每个本地内存采访都有可能所谓确定性的。事实真相是,对于在标准化陷阱中接受训练并大力找寻非确定性的最佳开发者来说,撰写确定性的代码是具备挑战性的。典型的商业应用于开发者不会找到以确定性方式撰写代码很难或不切实际。

如果我们回头得很远,并且假设应用于代码是确定性的,那么,应用于心目中记录用户事件,网卓新闻网,我们仍然还要面对追踪在任何特定时间部署的代码版本的挑战。应用于是动态的且频密改版的,因此,应用于代码自身也必需是数据库状态的一部分,且其改版必需跟用户操作者一样以同等的安全性和可审核展开管理和记录。

之后,审核员必须所有应用服务器代码的版本的拷贝,并必须根据每个版本的升级纠错用户输出(并在过去每次重新启动时重新启动代码)。即使单个应用服务器在其构建和部署方面都需要以确定性的方式运营,它依然不会面对根本性的可扩展性问题。应用服务器仅有一个实例能运营在数据库上。

通过简单锁来构建分段采访,但即便是上锁的竞争条件也必需被记录和再现,否则具备有所不同本地变量的应用逻辑的两个实例可能会产生非确定性的输入。在这一点上,人们可能会企图几乎舍弃确定性,但是,如果缺少确定性,那么些许的差异就不会随时间推移而激化,并最后造成数据集产生极大差异。审核员将不得不用于模糊不清逻辑和近似于给定,并且每个人将被迫坚信这个“模糊不清逻辑”充足好。当然,驳斥撰写和部署确定性代码的所有希望的唯一方法是,数据库管理员必要改动代码且神不知鬼不觉。

在某些情况下,用户输出日志和状态的细心改版可能会创立出有两个有所不同的数据库状态,每个都通过确定性测试,然而仍具备有所不同且不能调和的输入。例如,假设教授将一位学生的分数F递交到系统,然后该学生通过黑客侵略或行贿方式转入数据库,并变更其成绩以及教授递交的日志。替换密码任何关心完整性的多用户系统的最终目标是保证用户输出会被假造。

用户名/密码的用于,甚至其他多因素身份验证(如SMS或谷歌双重检验)的用于都依赖服务器得出结论这种结论:密码给定或输出了准确的SMS码/邮件链接/双重验证码。很似乎,这对于系统的完整性来说是极大的问题,我会获取一个现实案例,来解释这些系统的相当严重程度。

2016年,我在一个加密交易所的账户被黑客侵略,它容许黑客盗取数万美元价值的比特币。从我的视角,这种黑客不道德趁此机会表明有一封“密码重置”的电子邮件发送到我的电子邮箱,然后另外一封邮件表明密码已被顺利重置。随后,接到一封邮件,拒绝证实萃取比特币(附有代码/链接)。

最后,接到通报说道提现早已已完成。乍一看,或许是电子邮件被黑客侵略,但考虑到我在电子邮件中使用了多重因素指定,不过于不有可能被侵略。较慢网页我的电子邮件安全性页面表明,并没予以许可的采访。

我告诉是因为谷歌记录并表明了所有采访我电子邮件的IP/设备。而这其中再次发生的事情是,攻击者在邮件到达我的邮箱之前求救了交易所发送到的邮件。应用服务器无法告诉邮件已被截击,因此只是基于攻击者享有应用服务器分解的重复使用代码,构建密码重置和提现的许可。

针对SMS或其他任何依赖非用户掌控私钥的技术,都有可能被完全相同方法利用。归根结底,确保用户账户安全性的唯一方法是让所有用户都使用基于硬件的私钥作为其指定凭证,并且融合务实且耗时的过程,以在硬件密钥遗失时便于安全性的重置。

在这一点上,多用户业务应用于现在可以用于用户私钥亲笔签名每个用户催促,将该亲笔签名的催促记录在数据库中,并用于确定性代码展开处置。即使这样,也没获取人们希望的完整性,因为整个用户催促仍然可以被移除也有副作用。想象一下,密码警员数据库并移除由警员在递交用户票证时签订的催促。

说道到此处,聪明的工程师不会声称,每个我明确提出的问题都可以通过转变程序逻辑来解决问题。他说道得到底,经验丰富的应用于开发者可以用于“传统数据库”、“传统应用服务器”以及“标准化加密原语”,并建构比较安全性和可审核的系统。基于某种程度的逻辑,聪明的工程师可以声称数据库是几乎不必要的,忽略,所有内容都应当必要建构在文件系统上。

而其他工程师可能会认为,可以通过从头开始撰写所有代码来提高性能,而不是依赖诸如Node.js和J2EE这样的应用服务器框架。完全所有东西都是由较低层级的技术建构的,我们不妨为构建最佳性能设计晶体管。(蓝狐笔记:此处意为这些解决方案的成本极高)我明确提出这一极端建议,是因为它引人注目了更高层级框架在加快和保证新的应用于研发安全性方面的确实起到。很少有人撰写自己的密码学库或算法,而确实撰写的人要么是专家,要么是当系统被黑客侵略时当作警戒尾巴。

从头开始研发/重构一切不会造成每个应用于比基于成熟期框架建构的应用于成本更高。区块链应用程序/数据库服务器的益处诸如EOSIO这样的区块链和研发框架之所以不存在,是为了将应用于开发者从被迫新的发明者“数据库”以建构安全性应用于中解放出来。

安全性和确定性很难,这就是为什么将技术建构在抽象化细节的层上的原因。EOSIO在同一进程中将确定性继续执行环境(WebAssembly)和较慢数据库融合一起。所有用户操作者皆由其私钥亲笔签名,并记录在拷贝的分布式的数据库中,且具备向区块头作出公开发表允诺的能力。像EOSIO这样的框架达成协议传统系统这般强劲和更容易研发,只是时间的问题。

通过将应用逻辑(Web Assembly)放到与内存数据库完全相同的处置空间中,EOSIO的体系结构在很多方面早已比传统系统性能更高。在未来几年中,Block.one目的加到工具和界面,以使得在区块链上部署业务应用于跟在传统业务应用于架构上部署应用于一样更容易(或更容易)。显而易见,区块链技术的使用将不会是有责任避免欺诈和展开财务报告的政府机构、上市公司和企业的优先事项。我的观点是,未来不使用区块链技术就看起来现在的银行不使用SSL技术一样,一旦区块链技术普遍能用,不使用区块链技术就有可能被指出是过错。

今天到了该采取行动的时候了。如果没对当今应用于建构方式的显然转变,业务和用户是不安全性的。每推迟一天,业务面对有可能有被欺诈和被黑客侵略的风险。


本文关键词:大阳城8722

本文来源:大阳城8722-www.meatatwelshys.com