点击链接查看EOS创始人Daniel Larimer演讲视频:
视频翻译:PANews
1月31日EOS创始人Daniel Larimer参加了由Government Blockchain Association(GBA)在美国国会大厦举行的主题会议,与会过程中发表了《货币、治理和法律的未来》主题演讲。GBA政府区块链协会的愿景希望在世界范围将政府组织及各行各业进行联结,以期有效、合理地推进区块链技术应用。
本次主题会议由国会议员Darren Soto主持,主讲嘉宾为DFJ创始合伙人 Timothy Draper、Block.one CTO Daniel Larimer(BM)、区块链技术创始人之一 Scott Stornetta(中本聪所著比特币白皮书曾三次引用其作品),与会人员包括国会代表Bill Rockwood、内阁成员Elizabeth Tanner、克罗地亚共和国税务局财政部税务风险分析主管 Ksenija Cipek、纽约州议会议员 Ron Kim、美国商品期货交易委员会(CFTC)分布式账本技术主席 Shawnna Hoffman、IMPACT数字经济研究所所长 Mihaela Ulieru等。PANews为大家翻译了Daniel Larimer部分演讲内容。
Daniel Larimer部分演讲稿翻译:
区块链似乎是当今最热门的话题,我认为这是一个十分具有争议性的话题,人们有很多不同的角度去解释它到底是什么,以及它的优点和缺点有哪些。今天,我想要告诉大家的是,区块链是一种通用的技术,它从根本上改变着我们每一项业务的方方面面,我将向你们展示我们一直依赖的基础设施,是如何被区块链彻底变革的,以及我们为何需要区块链。
在过去的二十五年里,我们一直设计带有服务器的系统,安全问题往往在事后才会考虑。我们为服务器添加密码,也添加ssl,以防止人们在与服务器通信时获得密码,我们发现有人会入侵服务器并将密码从数据库中取出,因此,我们开始对密码进行散裂化以还原数据库,但这样操作效果并不明显,所以我们总是需要不断更换密码。
当有人进行暴力破解时,被入侵的数据库密码被修改,在黑客攻击后我们不断修复,试图封堵最初的安全漏洞。
让我们思考一下如今的系统应该如何设计,我们假设服务器是安全的,我们构建了一个web应用程序,web应用程序通常分为两部分,首先你想好应用程序的逻辑,你是用PHP,还是用JS,或是java。然后你需要有一个数据库,不管是你的Oracle,或是你的SQL之类的,应用服务器将与数据库互联,并使用密码登录,所有对数据库的更改操作,都需要使用服务器的密码。紧接着,用户与应用程序服务器交互,向应用服务器提供凭证,应用程序开始与数据库交互,但是并不一定匹配,如果是样它对所有的改变都适用,服务器系统中没有任何跟踪能力。
在任何时候,管理员都能修改数据库,即便这个管理员是可信任的,那应用程序逻辑在那里运行什么代码?这些代码是否有备份?这些庞大的系统接收着所有用户的信息输入,我们无法复制和验证它的合法性,这些问题给世界各地的企业带来了巨大的安全隐患,数十亿美金被用于解决这些问题,但始终不奏效,而区块链正是解决方案。
但问题所在是,很多人认为区块链的可扩展性不够,使用起来太困难,或区块链限制了他们应用的发展。不过,我还是想消除区块链无所不能的神话,因为我相信如果你运营过多用户网站或服务,无论是私人的还是公共的,需要基于区块链建立,需要以硬件基础秘钥体系代替密码,这就是未来。因此,我们不需要四处寻找区块链到底能应用在哪里,你所要做的问问你自己,你有数据库吗?你有超过一个用户么?如果是,你可能就需要区块链。
许多关注区块链的人认为这项技术对政府和企业是无价的,因为它们并不信任对方,但我今天想说的是区块链的价值一直存在,即使它由一家独立公司运营,即使它私属于这家公司,它始终能提供价值。
让我们来聊聊这些,如你们所知,区块链不仅仅是一套代币系统,也不仅是一套治理体系,在不同的用户社区之间随波逐流,它在你的业务中也是非常有用的。但你试图构建一套传统的数据库应用程序时,有一种观点认为区块链不具备较强的可扩展性。
我退一步来讲几个例子,某次,当我登录交易所,在进行交易时,我的账户被黑了,在某日清晨,我收到了一封电子邮件,这封邮件内说我的密码正被修改,这很奇怪,因为我并没有这么做,但当我接到下一封电子邮件时,我的密码已经被修改了,我想这可不是一个好兆头,大约30秒后,我收到了另一封电子邮件,上面写着有人试图将我所有的比特币从交易所账户提现,紧接着,又来了一封邮件,上面写着已经成功授权账户内所有比特币转出,我的财产被盗了,损失了大约8万美元的比特币,这些币原本存放在交易所中。
这件事是如何发生的?一开始,我认为我的电子邮件帐户被黑了,我登录谷歌,但谷歌显示登录电子邮箱的IP地址都是已知被记录的。我的邮件到底是怎么被黑的?或者我在交易所里的资金是如何被盗的?事实证明,是交易所本身遭到了黑客攻击,并非我的邮件被黑了,他们监听了交易所发来的邮件,所以当交易所生成邮件发给我时,他们把验证码取出,然后再寄回去,当他们给我发短信的时候,他们把它从交易所数据库中拿出来,再放回去,然后我的币就丢了。幸运地是,交易所承认了这是他们的过失,因为我的电子邮件创建了多因素身份保护,他们承认错误并作出赔偿方案。但是,当每个企业试图对用户进行身份验证时,都会遇到相同的问题,当你试图验证你的用户时,你希望确认这些授权是正规的。
想象一下你的不受控的推特账户,而正巧你是一名高管,忽然间,它自己发了一条推文,而推文的内容可能令市场走向非法。如果你是一家上市公司,你不能公开一些确定性事件,谁该受到责备?是发布信息的用户么?是不是推特内部有人黑进了数据库并篡改了记录?这就是我们依赖用密码系统验证身份总会遇到的问题,甚至使用多因素身份验证系统时,无论是短信验证、谷歌验证或是任何我们如今开发出的验证工具,都存在的问题是 我们没有不可篡改、可追踪的审计日志,它包含每个用户已签名、已验证的信息。当今现实中每套系统,你都可以将其想象成一张白纸 人们在上面签名授权,做各种各样的事。给出一组符号语句按照它们接收与处理顺序,结合确定性的业务逻辑,我们可以达成某些共识,我们可以预测什么即将发生,什么事不会发生。
区块链的强大之处在于它将共识、确定性执行和可独立验证的签名消息结合在一起,这些技术共同提供了我们需要的安全性,这种安全性确实存在,无论它是由单独公司运营的区块链系统,或是由多家公司共同运营的去中心化系统,无论是私链或是公开了哈希数据的链。
如果你有一套区块链系统,记录了每个用户的操作信息,并且这些信息进行了签名,你可以向任何人证明 “谁在什么时候做了这些”,现在你可以就应该发生的结果达成一致。
如果你想达到上述目标却不通过区块链系统呢?因为有很多人提出过观点,因为有很多人提出过观点称“ 我们不需要区块链 ”“ 我可以用传统数据库来达到这个目的 ”你当然可以使用传统数据库,你无时不刻不在登录你的谷歌账户 这难道不安全么?真实情况是我们现有的所有技术,它们都验证了与应用服务器的连接,但却没有提供可供审计的追溯体系,不然任何人都可以在事后证明你曾经对其授权,就像在俱乐部验证你的身份信息时,对方表示“好了,你可以进去办事了”,但没人能证明事后发生了什么。
就像你要去银行,银行柜员要验证你的身份,你说我想把一些钱从某个账户转别的账户,柜员在电脑中开会输入信息来转移资金,他们在系统中核实你的身份记录。现在情况变得更糟了,因为银行柜员实际上并不只是转移钱财,他们转身去和佛罗里达的系统交互,也就是系统数据库“嘿,数据库”,将这个账户的余额转移到另外一个账户的余额,即使你把你所有已知信息都记录在数据库里,它只是跟踪读取和写入,并没有跟踪系统中用户的意图,两者间存在巨大差别。如果你试图不通过区块链创建一个系统,而你又想要可追溯性和可审计性,你需要使用确定性的代码,这样的代码十分难以编写,但这却是区块链开发者所擅长的。
但是,构建您的Web应用程序的传统开发人员并不是这方面的专家,确定性代码非常非常容易出错。确定性代码的目的是如果你使用相同的输入,你会得到同样的输出,如果你的代码是非确定性的,你将得到两种不同的释义,在一个数据库中是显示了我的账户余额,另外的地方,我的账户余额又不一样了,有时候即使是微小的差异也会使许多行为变得非常不同,特别是当你在处理金融系统时,或交易所系统等等,因此,编写确定性代码实际上是共识形成的核心部分。
共识由两部分组成,首先是就事情的发生顺序达成一致,然后就规则达成一致 接着我们将使用这些规则来推导状态。在某些情况下,这就是你的余额,在其他情况下,如你在社交媒体上的花费,你又赚取了多少积分,又可能是一场拍卖会,看谁是第一个出价,也可能是你的学校、你的成绩、你的荣誉证书,以及你的身份信息,所有这些东西都是根据人们提交数据的顺序推导出来的,确定性代码是至关重要的。但是如果你尝试在现有框架内编写确定性代码,如果你要使用React 、Node.js或者java,开发人员允许他们的代码接入任何信息,内存地址,随机数,或是任何不是来自数据库本身的东西,都会造成非确定性。
你无法根据用户输入重现计算结果从而得出一个可追踪的数据库状态,以提高审计能力,来自我验证你的业务正按预期进行,因为我们所要做的,我们有业务,我们曾决定要以某种方式推进工作,现在我们要证明自己确实是按计划进行的。然后,消耗了数十亿美元后,我们明确知道这些钱在哪里如何消耗了,当出现bug或某些东西不能正常运行时,你想找到原因,想复现出错场景,如果你没有记录谁在何时说了什么,你无法解决这些问题。数据库出错了,你手上的事情一团糟。
虽然你可能有拥有真正优秀的开发人员,来实现真正安全的数据库解决方案,加密你所有密码,加密你所有的链接,使你的业务逻辑具备确定性,记录所有用户的日志,做了区块链所有的事情,但这并不是区块链。以种方式构建应用程序将会非常昂贵,我们Block.one开发的EOSIO软件,使任何人都可以很容易地在数据库上构建Web应用程序,而数据库的执行效率很高,并且以确定性的方式运行,也会生成可追踪的审计信息,每个用户操作都由私钥签名,这是一个“无密码”的未来场景,也使终端用户的操作更加简单。
如果你的系统处理密码问题,这件事本身就是有问题的,你已经走在了错误的方向。从第一个WEB应用程序开始,我们就在做密码处理。这不是一个区块链是否适用于我所处行业的问题,如果你有数据库 并且你有多个用户,区块链系统是100%有必要的,区块链的可扩展性并不是问题,因为区块链一定会增加可扩展性。如果你试图绕过区块链来得到区块链的优势,你需要做大量的工作,就像你要求开发人员重新开发自己的一套密码系统,重新研发多因素身份验证系统,重新开发一套加密体系,你不会样做,因为里面有大量的不必要工作,并且十分容易出错。
我们要做的是使用区块链,这样做十分迅速, 样你就能获得区块链的优势,样你就能获得具备追踪能力的好处,即追踪能力,可审计性和易用性以及去中心化,如果你想得到这些,你不必重复造轮子,而且可以保护你系统的安全。
这是一项非常基础的技术,如果这不是的话,在你将自己的系统转移至区块链的时候,当区块链成为最佳解决方案时,这将成为一个大问题。
我在我看来,在未来如果企业的系统不采用区块链技术,就像托管银行不采用SSL协议而要在数据库中直接输入密码一样,将成为一种疏忽,一旦有了这种技术,而且我知道技术就在那里,因为使用EOSIO系统,我们每秒钟可以将成千上万的用户操作信息,我们已经准备好了开发环境,因此,不久你就可以构建和部署后端使用区块链系统的大型数据库服务,来创建WEB应用及移动端应用,比你现在所用的技术更快、成本更低。这是为何我认为这项技术正蓬勃发展的原因,也是为何我认为区块链对于每一个关心其商业模式完整性的企业都是至关重要的,以及对自身行为负责。
区块链还有其他特点,它可以让你的企业更有效地与其他企业进行交互,如果你的企业给出了链上数据哈希,你就可以向其他企业进行证明,这就是我们所说的区块链内部通信,当我能证明一笔交易是由我的公司签署的,你就可以在你的公司里使用它。还有一些简单的事情,比如你想要证明自己具备某个学位,你需要去大学的官网上,然后把你的成绩单副本寄给你的雇主,但是有了区块链,我只需要提交链上记录,就能证明我的学位,他们可以对记录进行验证,所以区块链的基本功能可以用于,改善我们的投票系统,在财务上能改善会计系统及人力资源系统。我们今天使用的每个数据库都可以从区块链中受益,即使这些数据库是完全私密的,也能从区块链中受益。由公司内部或跨公司单部门或多部门协同管理,甚至采取完全公开或分布式的结构,区块链对其仍然能产生益处。