编者按:本文来自蓝狐笔记,Odaily星球日报经授权转载。前言:传统web应用架构存在安全性问题,为了确保更高程度的安全,企业耗费巨资,不过依然无法从根本上解决问题。而本文作者DanielLarimer则认为要解决这个问题,需要采用区块链的架构来确保数据库和用户账户的安全,可以防止未经授权的访问和防篡改,同时可以为采用区块链技术的企业节省费用。BM认为区块链是更好的应用服务器/数据库架构,未来会成为很多企业的必备技术,这会是超级大的潜在市场吗?大家如何看?本文由蓝狐笔记的社群“DoTi”翻译。传统的web应用基础架构在设计时考虑了安全性,并且二十五年来,公司一直在试图修补根本上存在不安全的体系架构。该架构设计的假设是服务器可以被信任和保护,但多年的经验告诉我们,没有服务器可以免受外部攻击,更不用说内部的危险了。换言之,服务器从根本上是中心化的。我们曾经把“安全问题”归结为用户和服务器之间的连接,因此,我们引入了SSL和HTTPS。但是,后来我们发现,黑客会破坏数据库并窃取密码。因此,我们开始存储密码的哈希值,但接下来我们又发现,在窃取哈希值后,黑客可以使用暴力破解密码。随后,我们引入密码轮换,这样在黑客进行暴力破解时,密码会发生更改。如此这般的攻防,不断上演。企业花费数十亿美元,试图保护其服务器和数据库,尽管付出这些努力,但依然没有简单方法来审计系统,且能确保企业按他们的意愿运行。Block.one正在构建区块链软件以确保数据库和用户账户的安全,防止未经授权的访问和未经说明的修改。使用区块链时,用户采用高度安全的私钥,这些私钥存储在安全硬件,且私钥用于签名每个用户交互,而不是简单验证与服务器的连接。区块链创建不可篡改的日志,它构建绝对和确定性的顺序,接收用户输入,而智能合约提供确定性的商业逻辑,以确保所有系统的一致性。未来的Block.one正在创建消除密码和昂贵审计的方法,可为公司节省数十亿美元,防止身份被窃取,并为所有人提供更高的可靠性和审计能力。我多年来坚定地认为,每个多用户网站都可以因为采用区块链后端而受益。与流行观点相反,区块链并不一定是缓慢的低效的数据库,也不必一定在抗审查和开放访问的基础上运行。即使区块链完全由公司本身运营,且区块链的所有内容都不公开,区块链也能为公司在安全、审计能力、透明度以及业务流程完整性上提供巨大改进。本文旨在阐明区块链在企业环境中的真正价值,并为区块链行业指明前进方向。常见的误解
声音 | BM:去中心化解决方案在维护自由和完整性上更便宜:BM今日发推并和网友互动称,去中心化意味着增加中间人和增加成本。没有人应该幻想去中心化解决方案会更便宜。分散的解决方案在财务方面更昂贵,这不是坏事,因为它们在非财务方面更便宜,比如维护自由和完整性。问题在于,不能在保持价格便宜的同时又支持冗余的自由需求。只有市场参与者对非金融属性的商品和服务给予更高的重视,才能看到自由。[2019/12/18]
在区块链行业中,很多人的看法是,只有当区块链将彼此不信任的各方连接起来时,区块链才能带来好处。他们认为,传统数据库技术已经可以完成确保业务完整性所需的一切。换句话说,他们认为有了传统的数据库复制和“数据完整性”保证就已经足够。在此过程中,他们要么忽略要么不了解区块链提供的根本不同的安全性和完整性保证:对全球时间顺序的承诺业务逻辑的确定性执行业务逻辑&数据完整性的紧耦合消除密码在传统的业务应用架构中,业务逻辑跟数据库是分离的。通常有应用服务器,例如Node.js或J2EE,其提供了修改数据库的密码。Node.js服务器的作用是通过密码或多因素身份验证机制来实现对用户的验证。一旦应用服务器进行用户身份验证,它将发起会话令牌,该会话令牌用于验证未来的用户交互,直至会话超时或会话的某些元素发生改变为止。很显然,这种传统的设计通过由应用服务器管理的单个登录名/密码来执行所有数据库操作。应用服务器负责用最终的终端使用来执行其自身的身份验证方案。同样,也很显然,通常有多方可以访问用户名和密码。数据库管理员可以对多个不同的应用服务器和/或个人分配和撤销凭证。先进的系统确保,在水平扩展的系统中每个应用服务器都有其自己的用户名/密码,且在某些情况下,它甚至可以使用公钥基础设施和硬件安全模块。然而,即使在这里,数据库也仅对与应用服务器的连接进行验证。为了提供审核日志,它必须记录安全连接的整个数据流。然而,即使这个日志仅记录应用服务器请求的“读取和写入”,该应用服务器已经丢失关于原始用户意图的所有信息。审查这种系统的审核员无法知道应用服务器是否遵循了正确的业务逻辑且正确验证了终端用户。Node.js进程可以将用户操作“记录”到数据库中,便于审核员可以尝试重现相同的计算,但这种记录本身并非不可篡改,且并不附带独立可验证的身份验证,无法验证最终用户是否实际上授权了其记录的操作。可以尝试记录每个用户的连接,但由于用户经常通过这样的连接传输密码,因此,这些记录最终会创建可能会导致泄露用户身份凭证的蜜罐。更负责的系统可能会对这些日志进行加密,以便只有审核员才能读取。假设审核日志没有被篡改,审核员必须通过应用逻辑跑出相同的操作序列,以验证结果数据库状态是否匹配。这意味着应用服务器必须以确定性的方式来实现。确定性计算是不容易的
声音 | BM:EOS Authenticator 只是一个更安全的 LastPass:据 IMEOS 报道,BM 在电报群与社区激励讨论,社区成员在讨论很多钱包的 IOS 版本都下架了众多 DApp,甚至连 DApp 浏览器的入口都没有了。BM 回答道:EOS Authenticator 是安全的因为它没有内置浏览器,这是它的设计基础。EOS Authenticator 只是一个更安全的 LastPass。[2019/7/19]
尽管写确定性代码看起来“容易”,实际上,所有通用计算机语言都是非确定性的,因为它们允许开发者访问存在数据库中的外部数据。这可能是一些简单的数据,如时间戳、内存地址、环境变量、IP地址、或其他更微妙的数据,例如硬件上的浮点行为或哈希表的插入顺序。在很多情况下,只是简单地访问长时间运行的应用服务器的内存中的变量就足以引入不确定性。启动/停止应用服务器的实际操作必须被记录和重现,否则在重放过程中每个本地内存访问都可能是非确定性的。事实真相是,对于在通用陷阱中受过训练并积极寻找非确定性的最佳开发者来说,编写确定性的代码是具有挑战性的。典型的商业应用开发者会发现以确定性方式编写代码很难或不切实际。如果我们走得更远,并且假设应用代码是确定性的,那么,应用忠实记录用户事件,我们依然还要面临跟踪在任何特定时间部署的代码版本的挑战。应用是动态的且频繁更新的,因此,应用代码自身也必须是数据库状态的一部分,且其更新必须跟用户操作一样以同等的安全性和可审计进行管理和记录。之后,审核员需要所有应用服务器代码的版本的拷贝,并需要根据每个版本的升级重放用户输入。即使单个应用服务器在其实现和部署方面都能够以确定性的方式运行,它仍然会面临重大的可扩展性问题。应用服务器仅有一个实例能运行在数据库上。通过复杂锁来实现并行访问,但即便是锁上的竞争条件也必须被记录和重现,否则具有不同本地变量的应用逻辑的两个实例可能会产生非确定性的输出。在这一点上,人们可能会试图完全抛弃确定性,但是,如果缺乏确定性,那么些许的差异就会随时间推移而加剧,并最终导致数据集产生巨大差异。审核员将被迫使用模糊逻辑和近似匹配,并且每个人将不得不相信这个“模糊逻辑”足够好。当然,否定编写和部署确定性代码的所有努力的唯一方法是,数据库管理员直接修改代码且神不知鬼不觉。在某些情况下,用户输入日志和状态的仔细更新可能会创建出两个不同的数据库状态,每个都通过确定性测试,然而仍具有不同且不可调和的输出。例如,假设教授将一位学生的分数F提交到系统,然后该学生通过黑客入侵或贿赂方式进入数据库,并更改其成绩以及教授提交的日志。更换密码
声音 | BM::团队在积极努力提升去中心化治理:据MEET.ONE消息,今日,BM现身电报群就某社区成员认为“Voice 将会失败,Block.one 花几十亿做什么?”这一观点回复并与社区成员进行积极讨论。对此,BM 回复:我们团队在积极地构建底层扩容,努力提升去中心化治理。EOSIO 规范存储库就是我们的大计划。关于 Voice 的新动态, BM 表示目前正积极在主网上构建,并且会让监管机构参与进来,KYC 认证将会启用大量新的 apps 。[2019/7/9]
任何关心完整性的多用户系统的最终目标是确保用户输入不会被伪造。用户名/密码的使用,甚至其他多因素身份验证的使用都依赖于服务器得出这种结论:密码匹配或输入了正确的SMS码/邮件链接/双重验证码。很显然,这对于系统的完整性来说是巨大的问题,我会提供一个真实案例,来说明这些系统的严重程度。2016年,我在一个加密交易所的账户被黑客入侵,它允许黑客窃取数万美元价值的比特币。从我的视角,这种黑客行为先是显示有一封“密码重置”的电子邮件发送到我的电子邮箱,然后另外一封邮件显示密码已被成功重置。随后,收到一封邮件,要求确认提取比特币。最后,收到通知说提现已经完成。乍一看,似乎是电子邮件被黑客入侵,但考虑到我在电子邮件中采用了多重因素登录,不太不可能被入侵。快速浏览我的电子邮件安全页面显示,并没有未经授权的访问。我知道是因为谷歌记录并显示了所有访问我电子邮件的IP/设备。而这其中发生的事情是,攻击者在邮件抵达我的邮箱之前截获了交易所发送的邮件。应用服务器无法知道邮件已被拦截,因此只是基于攻击者拥有应用服务器生成的一次性代码,实现密码重置和提现的授权。针对SMS或其他任何依赖于非用户控制私钥的技术,都可能被相同方法利用。归根结底,保障用户账户安全的唯一方法是让所有用户都采用基于硬件的私钥作为其登录凭证,并且结合稳健且耗时的过程,以在硬件密钥丢失时便于安全的重置。在这一点上,多用户业务应用现在可以使用用户私钥签名每个用户请求,将该签名的请求记录在数据库中,并使用确定性代码进行处理。即使这样,也没有提供人们期望的完整性,因为整个用户请求依然可以被删除也有副作用。想象一下,破解警察数据库并删除由警察在提交用户票证时签署的请求。说到此处,精明的工程师会声称,每个我提出的问题都可以通过改变程序逻辑来解决。他说得没错,经验丰富的应用开发者可以使用“传统数据库”、“传统应用服务器”以及“通用加密原语”,并构建相对安全和可审计的系统。基于同样的逻辑,精明的工程师可以声称数据库是完全不必要的,相反,所有内容都应该直接构建在文件系统上。而其他工程师可能会指出,可以通过从头开始编写所有代码来提升性能,而不是依赖于诸如Node.js和J2EE这样的应用服务器框架。几乎所有东西都是由较低层级的技术构建的,我们不妨为实现最佳性能设计晶体管。我提出这一极端建议,是因为它突出了更高层级框架在加速和确保新应用开发安全方面的真正作用。很少有人编写自己的密码学库或算法,而真正编写的人要么是专家,要么是当系统被黑客入侵时充当警戒尾巴。从头开始开发/重构一切会导致每个应用比基于成熟框架构建的应用成本更高。区块链应用程序/数据库服务器的好处
声音 | BM:EOS公链目前占整个区块链交易的60%以上:据AMBCrypto消息,Block.one CTO Dan Larimer(BM)在B1JUNE演讲中表示,”仅仅一年时间,我可以自豪地宣布,EOSIO已经成为世界上最快、最可扩展、最活跃的区块链软件之一。” BM声称,EOS公链目前占整个区块链交易的60%以上。根据Blocktivity数据(Activity指数为最近24小时内在区块链上执行的操作数量),EOS位居首位,ETH和TRX分别位居第五和第六位。 他还表示,EOS拥有超过48%的每日活跃区块链用户。就DApp生态系统而言,其他区块链的表现相比之下似乎相形见绌,因为5款EOS DApp占据DAppradar排行榜的前八名。[2019/6/3]
诸如EOSIO这样的区块链和开发框架之所以存在,是为了将应用开发者从不得不重新发明“数据库”以构建安全应用中解放出来。安全性和确定性很难,这就是为什么将技术构建在抽象细节的层上的原因。EOSIO在同一进程中将确定性执行环境和快速数据库结合起来。所有用户操作均由其私钥签名,并记录在复制的分布式的数据库中,且具有向区块头做出公开承诺的能力。像EOSIO这样的框架达成传统系统这般强大和易于开发,只是时间的问题。通过将应用逻辑放在与内存数据库相同的处理空间中,EOSIO的体系结构在很多方面已经比传统系统性能更高。在未来几年中,Block.one旨在添加工具和界面,以使得在区块链上部署业务应用跟在传统业务应用架构上部署应用一样容易。显而易见,区块链技术的采用将会是有责任防止欺诈和进行财务报告的政府机构、上市公司和企业的优先事项。我的看法是,未来不采用区块链技术就像是现在的银行不采用SSL技术一样,一旦区块链技术广泛可用,不采用区块链技术就可能被认为是过失。今天到了该采取行动的时候了。如果没有对当今应用构建方式的根本改变,业务和用户是不安全的。每耽搁一天,业务面临可能有被欺诈和被黑客入侵的风险。
声音 | BM:坏BP有两方面:在EOS主网BP的电报群中,BM表示坏BP有两方面:一个是身份不明的节点;另一个是没有能力保证主网运行的节点。[2018/7/13]
在以太坊智能合约开发中,合约调用交易经常发生。合约调用交易包括三种,创建合约交易,调用合约交易和直接向合约地址转帐的交易.
1900/1/1 0:00:00DegameLabs之前的文章里已经对区块链游戏的特点以及一些技术机制进行了介绍,那么说了这么多区块链游戏的好处,链游玩起来到底是什么感觉呢?本系列就选取当前市场成绩不错的一些链游产品.
1900/1/1 0:00:00Odaily译者|Moni 所谓”道高一尺魔高一丈“,2019年,加密货币交易所与黑客之间的较量愈演愈烈,虽然黑客实施的攻击数量越来越多,但相比于2018年.
1900/1/1 0:00:00作者|秦晓峰编辑|郝方舟出品|Odaily星球日报 一、整体概述上周,为纪念李文亮医生,社区用户已在以太坊区块链上为其树下一座墓碑,区块高度9432824.
1900/1/1 0:00:00编者按:本文来自:以太坊爱好者,作者:JordiBaylina,Odaily星球日报经授权转载.
1900/1/1 0:00:00编者按:本文来自链捕手,作者:王大树,Odaily星球日报经授权转载。疫情之下安有完卵,矿业作为区块链唯一的实体产业所受冲击较大,延期复工、停产、停售带来产业链上一系列连锁反应,华强北全部停业,
1900/1/1 0:00:00