编者按:本文来自蓝狐笔记,Odaily星球日报经授权转载。前言:传统web应用架构存在安全性问题,为了确保更高程度的安全,企业耗费巨资,不过依然无法从根本上解决问题。而本文作者DanielLarimer则认为要解决这个问题,需要采用区块链的架构来确保数据库和用户账户的安全,可以防止未经授权的访问和防篡改,同时可以为采用区块链技术的企业节省费用。BM认为区块链是更好的应用服务器/数据库架构,未来会成为很多企业的必备技术,这会是超级大的潜在市场吗?大家如何看?本文由蓝狐笔记的社群“DoTi”翻译。传统的web应用基础架构在设计时考虑了安全性,并且二十五年来,公司一直在试图修补根本上存在不安全的体系架构。该架构设计的假设是服务器可以被信任和保护,但多年的经验告诉我们,没有服务器可以免受外部攻击,更不用说内部的危险了。换言之,服务器从根本上是中心化的。我们曾经把“安全问题”归结为用户和服务器之间的连接,因此,我们引入了SSL和HTTPS。但是,后来我们发现,黑客会破坏数据库并窃取密码。因此,我们开始存储密码的哈希值,但接下来我们又发现,在窃取哈希值后,黑客可以使用暴力破解密码。随后,我们引入密码轮换,这样在黑客进行暴力破解时,密码会发生更改。如此这般的攻防,不断上演。企业花费数十亿美元,试图保护其服务器和数据库,尽管付出这些努力,但依然没有简单方法来审计系统,且能确保企业按他们的意愿运行。Block.one正在构建区块链软件以确保数据库和用户账户的安全,防止未经授权的访问和未经说明的修改。使用区块链时,用户采用高度安全的私钥,这些私钥存储在安全硬件,且私钥用于签名每个用户交互,而不是简单验证与服务器的连接。区块链创建不可篡改的日志,它构建绝对和确定性的顺序,接收用户输入,而智能合约提供确定性的商业逻辑,以确保所有系统的一致性。未来的Block.one正在创建消除密码和昂贵审计的方法,可为公司节省数十亿美元,防止身份被窃取,并为所有人提供更高的可靠性和审计能力。我多年来坚定地认为,每个多用户网站都可以因为采用区块链后端而受益。与流行观点相反,区块链并不一定是缓慢的低效的数据库,也不必一定在抗审查和开放访问的基础上运行。即使区块链完全由公司本身运营,且区块链的所有内容都不公开,区块链也能为公司在安全、审计能力、透明度以及业务流程完整性上提供巨大改进。本文旨在阐明区块链在企业环境中的真正价值,并为区块链行业指明前进方向。常见的误解
BM:ETH不能达成EOS所构建的目标:3月11日消息,有推特网友表示“BM参与创建针对EOS的门户网站值得赞扬和尊重,但两年前就该这么做了。在此期间,所有项目都去了ETH。对EOS的信任已经丧失。”对此,BM回应该网友称,正在尽其所能,并且ETH不能达成EOS所构建的目标。[2021/3/11 18:35:32]
在区块链行业中,很多人的看法是,只有当区块链将彼此不信任的各方连接起来时,区块链才能带来好处。他们认为,传统数据库技术已经可以完成确保业务完整性所需的一切。换句话说,他们认为有了传统的数据库复制和“数据完整性”保证就已经足够。在此过程中,他们要么忽略要么不了解区块链提供的根本不同的安全性和完整性保证:对全球时间顺序的承诺业务逻辑的确定性执行业务逻辑&数据完整性的紧耦合消除密码在传统的业务应用架构中,业务逻辑跟数据库是分离的。通常有应用服务器,例如Node.js或J2EE,其提供了修改数据库的密码。Node.js服务器的作用是通过密码或多因素身份验证机制来实现对用户的验证。一旦应用服务器进行用户身份验证,它将发起会话令牌,该会话令牌用于验证未来的用户交互,直至会话超时或会话的某些元素发生改变为止。很显然,这种传统的设计通过由应用服务器管理的单个登录名/密码来执行所有数据库操作。应用服务器负责用最终的终端使用来执行其自身的身份验证方案。同样,也很显然,通常有多方可以访问用户名和密码。数据库管理员可以对多个不同的应用服务器和/或个人分配和撤销凭证。先进的系统确保,在水平扩展的系统中每个应用服务器都有其自己的用户名/密码,且在某些情况下,它甚至可以使用公钥基础设施和硬件安全模块。然而,即使在这里,数据库也仅对与应用服务器的连接进行验证。为了提供审核日志,它必须记录安全连接的整个数据流。然而,即使这个日志仅记录应用服务器请求的“读取和写入”,该应用服务器已经丢失关于原始用户意图的所有信息。审查这种系统的审核员无法知道应用服务器是否遵循了正确的业务逻辑且正确验证了终端用户。Node.js进程可以将用户操作“记录”到数据库中,便于审核员可以尝试重现相同的计算,但这种记录本身并非不可篡改,且并不附带独立可验证的身份验证,无法验证最终用户是否实际上授权了其记录的操作。可以尝试记录每个用户的连接,但由于用户经常通过这样的连接传输密码,因此,这些记录最终会创建可能会导致泄露用户身份凭证的蜜罐。更负责的系统可能会对这些日志进行加密,以便只有审核员才能读取。假设审核日志没有被篡改,审核员必须通过应用逻辑跑出相同的操作序列,以验证结果数据库状态是否匹配。这意味着应用服务器必须以确定性的方式来实现。确定性计算是不容易的
BM:EOS实现伟大需要强大价值观的社区,而不仅是代币价格:EOS创始人BM(Daniel Larimer)发推称,思考是一种毁灭的行为,一种否定存在的愿望,一种抹去现实的尝试。网友z1i评论称,还是说说EOS吧。对此BM回复称,你显然没有理解这条推特的意思。如果我们想让EOS变得伟大,那么它需要一个有着强大价值观的社区,而不仅仅是代币价格。只有坚实的基础才能建立你所追求的价值。[2020/9/24]
尽管写确定性代码看起来“容易”,实际上,所有通用计算机语言都是非确定性的,因为它们允许开发者访问存在数据库中的外部数据。这可能是一些简单的数据,如时间戳、内存地址、环境变量、IP地址、或其他更微妙的数据,例如硬件上的浮点行为或哈希表的插入顺序。在很多情况下,只是简单地访问长时间运行的应用服务器的内存中的变量就足以引入不确定性。启动/停止应用服务器的实际操作必须被记录和重现,否则在重放过程中每个本地内存访问都可能是非确定性的。事实真相是,对于在通用陷阱中受过训练并积极寻找非确定性的最佳开发者来说,编写确定性的代码是具有挑战性的。典型的商业应用开发者会发现以确定性方式编写代码很难或不切实际。如果我们走得更远,并且假设应用代码是确定性的,那么,应用忠实记录用户事件,我们依然还要面临跟踪在任何特定时间部署的代码版本的挑战。应用是动态的且频繁更新的,因此,应用代码自身也必须是数据库状态的一部分,且其更新必须跟用户操作一样以同等的安全性和可审计进行管理和记录。之后,审核员需要所有应用服务器代码的版本的拷贝,并需要根据每个版本的升级重放用户输入。即使单个应用服务器在其实现和部署方面都能够以确定性的方式运行,它仍然会面临重大的可扩展性问题。应用服务器仅有一个实例能运行在数据库上。通过复杂锁来实现并行访问,但即便是锁上的竞争条件也必须被记录和重现,否则具有不同本地变量的应用逻辑的两个实例可能会产生非确定性的输出。在这一点上,人们可能会试图完全抛弃确定性,但是,如果缺乏确定性,那么些许的差异就会随时间推移而加剧,并最终导致数据集产生巨大差异。审核员将被迫使用模糊逻辑和近似匹配,并且每个人将不得不相信这个“模糊逻辑”足够好。当然,否定编写和部署确定性代码的所有努力的唯一方法是,数据库管理员直接修改代码且神不知鬼不觉。在某些情况下,用户输入日志和状态的仔细更新可能会创建出两个不同的数据库状态,每个都通过确定性测试,然而仍具有不同且不可调和的输出。例如,假设教授将一位学生的分数F提交到系统,然后该学生通过黑客入侵或贿赂方式进入数据库,并更改其成绩以及教授提交的日志。更换密码
金色晨讯 | 深圳晚报:区块链让彩票行业自证清白;BM:在发布Voice之前仍有很多需要解决的问题:1.国税总局司长饶立新:运用区块链技术创新行政管理;
2.深圳晚报:区块链让彩票行业自证清白;
3.IMI副研究员:如果政策上允许可能近期就会推出数字货币 央行在技术上已经做好了储备;
4.诺贝尔经济学奖获得者:区块链是交易市场的里程碑;
5.近200名开发者正评估围绕Taproot和Schnorr的“比特币改进提案” 以增强隐私和可扩展性;
6.天津滨海新区将区块链作为核心技术自主创新的重要突破口;
7.重庆市医疗保障局提出了医疗保障与区块链技术深度融合的研究课题;
8.BM:在发布Voice之前仍有很多需要解决的问题;
9.外媒总结2019年5个接受比特币的商业领域行业;
10.澳大利亚区块链代表:澳大利亚希望成为中国在区块链领域的重要合作伙伴;
11.深圳高交会闭幕 展示区块链等高新技术项目逾万项;
12.浙江省副省长高兴夫:浙江将加快“区块链+实体经济”等方面的融合应用;
13.?BitMEX等交易所交易量骤减 或预示比特币价格将出现大幅波动;
14.江苏省司法厅探索区块链五大应用场景;
15.内蒙古司法厅厅长毕力夫:探索区块链技术推进执法监督和监狱计分考核公开公正。[2019/11/18]
任何关心完整性的多用户系统的最终目标是确保用户输入不会被伪造。用户名/密码的使用,甚至其他多因素身份验证的使用都依赖于服务器得出这种结论:密码匹配或输入了正确的SMS码/邮件链接/双重验证码。很显然,这对于系统的完整性来说是巨大的问题,我会提供一个真实案例,来说明这些系统的严重程度。2016年,我在一个加密交易所的账户被黑客入侵,它允许黑客窃取数万美元价值的比特币。从我的视角,这种黑客行为先是显示有一封“密码重置”的电子邮件发送到我的电子邮箱,然后另外一封邮件显示密码已被成功重置。随后,收到一封邮件,要求确认提取比特币。最后,收到通知说提现已经完成。乍一看,似乎是电子邮件被黑客入侵,但考虑到我在电子邮件中采用了多重因素登录,不太不可能被入侵。快速浏览我的电子邮件安全页面显示,并没有未经授权的访问。我知道是因为谷歌记录并显示了所有访问我电子邮件的IP/设备。而这其中发生的事情是,攻击者在邮件抵达我的邮箱之前截获了交易所发送的邮件。应用服务器无法知道邮件已被拦截,因此只是基于攻击者拥有应用服务器生成的一次性代码,实现密码重置和提现的授权。针对SMS或其他任何依赖于非用户控制私钥的技术,都可能被相同方法利用。归根结底,保障用户账户安全的唯一方法是让所有用户都采用基于硬件的私钥作为其登录凭证,并且结合稳健且耗时的过程,以在硬件密钥丢失时便于安全的重置。在这一点上,多用户业务应用现在可以使用用户私钥签名每个用户请求,将该签名的请求记录在数据库中,并使用确定性代码进行处理。即使这样,也没有提供人们期望的完整性,因为整个用户请求依然可以被删除也有副作用。想象一下,破解警察数据库并删除由警察在提交用户票证时签署的请求。说到此处,精明的工程师会声称,每个我提出的问题都可以通过改变程序逻辑来解决。他说得没错,经验丰富的应用开发者可以使用“传统数据库”、“传统应用服务器”以及“通用加密原语”,并构建相对安全和可审计的系统。基于同样的逻辑,精明的工程师可以声称数据库是完全不必要的,相反,所有内容都应该直接构建在文件系统上。而其他工程师可能会指出,可以通过从头开始编写所有代码来提升性能,而不是依赖于诸如Node.js和J2EE这样的应用服务器框架。几乎所有东西都是由较低层级的技术构建的,我们不妨为实现最佳性能设计晶体管。我提出这一极端建议,是因为它突出了更高层级框架在加速和确保新应用开发安全方面的真正作用。很少有人编写自己的密码学库或算法,而真正编写的人要么是专家,要么是当系统被黑客入侵时充当警戒尾巴。从头开始开发/重构一切会导致每个应用比基于成熟框架构建的应用成本更高。区块链应用程序/数据库服务器的好处
声音 | BM:一票一投机制是不够的,必须激励用户集中选票而非分散投票:据鲸交所消息,BM在电报群就“投票”话题发表言论,以下是内容综述: 1. BM提问社区,对于谁真正控制着21个超级节点,最好的分析在哪里?社区成员表示不知道。BM回复到:“我不关注EOS上的日常投票/。但我在思考,我想保护EOS免受共谋之害,并确保排名前21位的公司是独立的实体,一票一投机制是不够的,必须激励用户整合选票而非将选票分散在30个节点中,这样影响投票效果,让BP的报酬与票数^x成比例,x必须大于1。” 2. BM:将选票集中在单个BP的回报必须大于将选票投给多个BP,同时用户可对投票进行排序,其他BP就不会失去选票,这也会迫使大户在利润和控制权间做出选择。[2019/5/17]
诸如EOSIO这样的区块链和开发框架之所以存在,是为了将应用开发者从不得不重新发明“数据库”以构建安全应用中解放出来。安全性和确定性很难,这就是为什么将技术构建在抽象细节的层上的原因。EOSIO在同一进程中将确定性执行环境和快速数据库结合起来。所有用户操作均由其私钥签名,并记录在复制的分布式的数据库中,且具有向区块头做出公开承诺的能力。像EOSIO这样的框架达成传统系统这般强大和易于开发,只是时间的问题。通过将应用逻辑放在与内存数据库相同的处理空间中,EOSIO的体系结构在很多方面已经比传统系统性能更高。在未来几年中,Block.one旨在添加工具和界面,以使得在区块链上部署业务应用跟在传统业务应用架构上部署应用一样容易。显而易见,区块链技术的采用将会是有责任防止欺诈和进行财务报告的政府机构、上市公司和企业的优先事项。我的看法是,未来不采用区块链技术就像是现在的银行不采用SSL技术一样,一旦区块链技术广泛可用,不采用区块链技术就可能被认为是过失。今天到了该采取行动的时候了。如果没有对当今应用构建方式的根本改变,业务和用户是不安全的。每耽搁一天,业务面临可能有被欺诈和被黑客入侵的风险。
声音 | BM:将发布一份公开的路线图披露Block.one所做的一切:据MEET.ONE消息,继昨日(3月3日)在电报群中发言“好事即将到来”后,3月4日凌晨 BM 再次现身EOS电报群,进一步解释他所说的“好事即将到来”指的是什么。BM称:(会发布)一份公开的路线图来披露我们所做的和将要做的一切,日期已经确定。[2019/3/4]
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。