选择区块链平台前要问的四个问题
介绍
在过去的几年中,对区块链技术的兴趣大幅上涨。分布式分类帐技术能够解决我们日益联系的社会中出现的许多问题,并解决现实世界中的业务问题。从汇款到供应链物流再到安全的用户身份验证,区块链正被应用于不断扩展的领域。由于这些原因,全球各地的企业都在设计自己的去中心化应用程序。
在考虑构建区块链应用程序时,您需要提出许多问题。人们经常提出错误的问题,最终他们得到的解决方案并非最优。
使这个问题更加复杂的是,生态系统每天每分钟都在增长,这使得新开发人员几乎既不可能了解当前环境的内幕,也无法跟上最新研究的步伐。
Object Computing,Inc.(OCI)的区块链分析师和工程师在区块链领域拥有数十年的综合经验和技术知识,从简单的Merkle树和共识算法到零知识证明。我们整理了以下四个关键问题列表,涵盖了选择区块链平台时应考虑的主要设计标准。
1.您的应用程序需要多少隐私?
区块链有很多种口味。有些是中心化的,这意味着一个权限可以控制网络以及普通用户可以使用的信息。其他则去中心化,这意味着工作和数据在整个网络中共享。甚至还有混合解决方案,其中中心化的子链连接到去中心化的主网络。
如果您的应用程序需要在用户之间共享任何数量的私人信息(例如,现实世界的名称,地址,商业文档等),您可能会希望避免使用完全去中心化的解决方案,因为任何数据对于公众。
相反,如果您的应用程序正在促进业务透明性和不信任度,那么您将希望在公共链上存储适当的数据,以便可以轻松且可验证地访问它们。
请记住,并非您的所有应用程序信息都必须放在区块链上。您可以点对点交易所信息,而无需包括区块链。如果不需要或不希望永久存储或公开验证您的数据,则最好始终将其链下维护。
有时,您的用户会希望显示他们具有正确的私人信息,但不共享实际数据。为了证明数据存在但不泄露,您可以使用加密货币哈希为该数据创建唯一的标记。密码散列是单向的街道。您可以轻松地使用数据来重新创建哈希,但是不能使用哈希来重新创建数据。具有该数据的其他任何人都可以使用相同的算法来生成相同的哈希,并且比较哈希可以告诉您您共享相同的信息。将哈希标签可靠且经济高效地放置在区块链上,可以告诉世界您有一组特定的数据,而无需透露数据是什么。
隐私的另一个方面是匿名性的概念。对于真正的匿名系统,应该没有办法知道哪些用户执行了哪些操作。与普遍的看法相反,大多数区块链不是匿名的。它们是假名。这意味着虽然可能不容易将用户与网络中的真实身份进行具体关联,但可以使用从外部服务连接的信息来完成。
例如,比特币用户被隐藏在公共地址后面,并且可以被隐藏在无限的公共地址后面。但是,购买比特币需要注册交易所,然后交易所要有您的全名和至少一个钱包地址。从那里,交易所可以轻松跟踪所购买的比特币在帐户中移动时的去向。
即使您不使用交易所购买比特币,如果收件人也知道您的真实信息(例如,在购买要交付的商品时),花钱也可能会带来同样的问题。组合多个数据源可以提供每个玩家及其使用比特币的完整图片。实际上,有许多公司为此目的开发了软件。
如果需要真正的匿名性,则有一些区块链(称为隐私链)使用更复杂的加密货币技术来进一步隐藏数据的来源。其中最流行的是ZCash和Monero。但是,即使用户不知不觉地将自己的链上活动与实际行为相关联,或者甚至只是使用标准的默认软件设置的多个人,也可能损害隐私链。最后,保持真正的匿名比系统的核心设计更多地取决于用户的努力。
无论您的隐私要求是什么,重要的是要考虑可以在您的应用程序中破坏隐私的所有方法。发送交易的用户是否彼此认识?计算机可以通过网络跟踪IP地址吗?是否存在可以定位特定用户的地理环境,例如网络滞后或口头语言?这些问题并不总是很明显,但是如果仔细考虑,答案可能会极大地影响您的应用程序的体系结构。
2.您需要将应用扩展到什么规模?
区块链是一种分布式数据库,可以潜在地存储来自传统应用程序的任何信息。但是,它们是分布式的事实极大地改变了它们的扩展能力。随着分布式系统的发展,从所有可用节点(即计算机)获取所需信息变得越来越困难。在节点之间查找和路由信息需要花费时间(我们称之为延迟)和工作量(我们称之为计算开销)。这种路由的大部分必须按正确的顺序进行,因此与任何网络相关联的等待时间总是最小的。
可以认为网络流量与常规流量很像。小镇的道路并不多,但是由于每条道路上的汽车数量很少,因此无论如何交通都非常少。城镇规模每增加一倍,突发事件(例如交通)就会增加15%。可以想象这种交通最终会达到一个断点,因为城市的任何增长都会导致频繁,无法忍受的交通拥堵。城市有时可以克服这些类型的扩展问题,但往往需要对城市的主要基础设施进行昂贵的重建。这正是我们在提出此扩展问题时要避免的方法。
一般来说,增加您的区块链网络中的节点数量会使其变慢。那里有不是区块链的分布式账本技术(DLT)。随着网络的发展,其中一些其他DLT继续以相同的速度运行,有时甚至更快。这些通常基于有向无环图(DAG),可以将其视为一系列相互依存,交织的区块链。如果DAG不使用很多复杂的查询或细粒度的权限,则它可能是您的应用程序的不错选择。请您的OCI代表了解有关此实验性新领域的更多信息。
节点数
区块链网络的规模通常由网络中节点的数量来表示。“节点”可以是大型旋转数据中心内成千上万个盒子中的任何一个。它可能是一部手机,台式计算机,甚至是一个简单的树莓派板。所有这些设备是否兼容并在经济上有利于连接网络取决于所选择的区块链平台。例如,比特币区块链的节点客户端可以在具有足够内存的任何计算机上运行,但是在小型计算机上这样做在经济上是不负责任的。这是因为比特币共识算法基于节点对减轻系统计算开销的贡献来按比例奖励节点。小型计算机对此工作的贡献不大,因此,
计算支持应用程序的预计用户群所需的节点数非常困难。每个流行的区块链平台都有其速度和规模基准测试的潜力,但这些数字很少能说明全部情况。区块链生态系统自豪地宣布其每秒交易量(TPS),但这个数字很少转化为现实生活。与节点数量相比,网络的速度很少包含对这些节点的使用方式及其相对距离的同时比较。本文说明了计算最大大小和最小延迟的复杂程度。
客户数量
节点数仅告诉我们网络中有多少台计算机,但这不是用户数的上限。换句话说,节点通常可以为多个客户端提供服务。客户端是我们与互联网上基于Web的软件进行交互时使用的界面。如果单个节点可以同时为一百个节点提供服务,那么一个200节点的区块链网络可以同时为多达20,000个用户提供服务。
评估节点可服务的客户端数量也是一项复杂的计算。此数字取决于所选的DLT,共识算法,节点之间的距离,用户的地理位置分布,交易的复杂性以及所涉及的Internet访问和计算机的速度。可以肯定地说,大多数应用程序在发达国家的运行速度将比在新兴经济体中的运行速度快得多。
更多扩展注意事项
当您深入了解应用程序的需求时,重要的是要认识到与扩展相关的技术和地理限制。您还必须考虑其他一些因素:
- 您的节点和客户端相距多远?
- 您的查询有多复杂?更复杂的查询会增加您的成本,延迟和计算开销。
- 加密货币是分布式系统必须承担的最繁琐的计算工作和最慢的过程之一。减少加密货币量通常可以加快网络速度,但会降低其隐私性。
当我们尝试扩展小型系统时,它们并不总是起作用。为了创建弹性,可持续的应用程序体系结构,必须尽早回答有关应用程序的速度和规模的问题。
3.数字资产如何适合您的策略?
对于业内人士来说,混淆“区块链”和“加密货币”是很常见的。
加密货币是运行在复杂的分布式数据库之上的协议,使我们能够在数字空间中建立有限的供应。换句话说,它们无法复制和粘贴,因此可以保留价值。
从历史上看,大多数加密货币都建立在区块链或其他分布式账本架构(例如DAG)之上。
当休闲用户发现有一些专用于维护一种加密的区块链而没有其他东西时,这些定义就变得特别模糊,而与此同时,诸如以太之类的加密货币既可以作为价值的存储又可以作为某种形式的存储。 “加密货币燃料”的概念,使用户能够购买遍布以太坊网络的计算能力。换句话说,以太的价值既是美元或欧元之类的感知产品,又是石油等其固有功能的产品。
在像EOS这样的生态系统中,这种定价模型更加精确,复杂,可以动态评估可用的计算能力和可用的内存空间。
以太坊也可以为使用定价,但通常通过storj之类的令牌来抽象。其他平台(例如Sia)仅使用内存。
代币经济学和共识算法
在本系列的前面,我们讨论了共识协议,例如工作量证明和权益证明。这些协议描述了激励人们使用“无信任”分布式网络的规则和奖励机制。
分布式分类帐被称为“不信任”,因为了解您的交易对手是值得信任的负担,并且无需使用复杂的数学方法就可以抽象出来。
但是,实际上,信任仍在投资,而是在技术系统而不是人类中。
这就意味着,分布式系统本身必须被设计为向用户提供足够的利益,同时保持相对公平且不受干扰的跟踪记录,直到值得用户承担风险为止。
使用工作量证明,集体的信心是,任何一方都无法胜过经典计算机上对素数的数学搜索,实际上根本就不需要信任,而且矿工几乎没有风险。
权益证明共识需要用户冒险才能参与。这种“风险质押”是数字锁定在矿工账户中的预定义数量的加密货币,以消除激励他们篡改或贬值系统的动机。作为对他们风险的补偿,他们将获得从系统中获得的缓慢滴流利息。
分布式协议奖励托管这些资金的账户,因此从这些账户中铸造了权益证明加密货币。随着新的共识协议的发展,这些安排的多样性和复杂性增加。
管理经济或奖励制度时的货币政策取决于货币的供求量。
如果我们将这一思想的范围扩大到不仅涉及货币,而且涉及任何定量或针对特定环境的资源,那么越来越清楚的是,这些系统及其相应的经济系统将会变得多么复杂。
想象一下,如果美联储正在寻求降低利率,而他们是通过开放数据中心并为该系统引入了新的计算能力来实现的。想象一下,如果发行了一种在其功能中内置了累进销售税的货币,从而使任何一方都无法增持到一定数量以上?
在这一点上,现在很难知道分布式分类账对整个经济学的影响。但是,业务领导者现在可以问自己几个问题,以构建最直观,最灵活的系统。
我们今天可以问的问题
- 您打算让平台成为私有链吗?大多数私有链,包括建立在公共生态系统的私有分支上或超级账本之类的私有生态系统中的链,很少需要令牌或加密货币。如果企业正在采用这种策略,则应认真考虑是否甚至需要代币或代币。
- 您的平台收费吗?如果您使用的是EOS或Ethereum之类的公共链之一,您会注意到每笔交易都会花费加密货币或类似费用。以太坊等系统上的定价模型大多是静态的,而EOS等系统则更为动态,并取决于社区的状况。即使您像许多客户端一样,构建具有中心化网关和微服务的系统,如果移植到任何类型的公共链,您的业务也将受到支付这些计算所需的费用。这些成本应该是近似的,并考虑到未来的成本和设计决策中。
- 您是否希望您的平台可以与其他链条互操作?随着在生态系统之间转移代币和代币的时间,金钱和计算成本的减少,我们可能会看到上下文特定效用代币的迅速贬值。例如,如果一个欧洲美国人能够在销售点立即免费将其美元兑换成欧元,那么为什么他或她会不愿意提前兑换货币呢?欧元的价值取决于其供应是否足够低。如果没有理由持有欧元,因为一个人以后总是可以兑换,那么欧元的价值就会下跌,价值和需求将中心化在流动性最高的货币上。
企业应考虑到他们认为转换成本将减少到他们对经济的期望中的程度。
进一步思考
代币经济学非常复杂,并且仍在发展中。随着我们在经济理论的黑暗中慢慢爬行,游戏理论证明最终将在最有效的系统中可用,希望加密货币将帮助我们解决围绕公平性,保真度和公平性的一些最大难题。现在,业务领导者需要关注令牌对于他们的项目是否确实必要以及他们如何期望其业务适应截然不同的经济环境。
4.您的应用程序的可访问性要求是什么?
所有软件都是关于支持人们目标的。迟早您的区块链项目将需要用户访问。考虑用户应该具有哪些功能。这些可能是它们交易所的代币的种类,可以轻松发起智能合约的代币,或者是它们有助于去中心化系统治理的杠杆。
使用者介面
DLT空间的用户界面以Web应用程序,移动应用程序或桌面节点的形式出现。终端用户应避免存储未加密的数据,以保护他们。私钥和种子只能在非常特定的情况下分发。这意味着要尽可能隔离项目的前端和后端功能,并要求所有形式的用户输入验证以及对后端的调用。
Web API
Web API是特定于编程语言的基于Web的信标,用于访问您的区块链项目的功能。这些API公开了一组预定义的操作,可以由其他通过Internet访问的操作触发。所有主要的区块链和分布式分类帐平台都通过托管分类帐本身的相同节点提供Web API。Javascript,Java,Python和Go是区块链领域Web API最受欢迎的语言。
通用化
为了使您的区块链项目高度可用,重要的是要尽可能“通用”。选择的平台将确定使用该系统所需的硬件种类,或者给定的用户是否会因为其哈希功能而处于优势。
可通用化的系统不需要高度特定的硬件,也不需要冗长的培训和教育就可以使用。
数据存储
一些区块链平台允许将复杂的数据和功能存储在链上,但是通常最好是将复杂的非区块链数据离线存储。这可能意味着服务器在托管应用程序级数据(例如与存储在区块链上的用户的财务交易相吻合的图形)的上下文中。
使用诸如Internet协议文件存储(IPFS)之类的分布式系统的去中心化存储,使开发人员可以提供Internet地址作为对外部存储数据库的引用。这样可以保护最终用户免受黑客等恶意管理的侵害。
地域可用性
考虑您的应用程序延迟和代币经济学可能如何取决于互联网速度和用户地理位置。确保以地理分布的方式创建数据冗余。它可以像网状网络一样去中心化,也可以只是在云中运行的适当位置的服务器进行去中心化。
结论
应当清楚的是,分布式分类帐空间中存在各种各样的可能性。我们正处于金融和人类组织新纪元的转折点,尽管许多领域尚未揭晓,但区块链技术的前景从未如此清晰。
随着分布式分类帐的出现,我们会发现它们增加了我们所有业务和民用基础设施的安全性,效率和可能性。很快,我们的供应链将前所未有地运转,激励机制也将如此。我们的身份将在整个数字平台上保持不变。我们的数据分析将充满信心,只有分布式验证的自动化系统才能提供。
在考虑分布式应用程序或协议时,请记住首先定义我们讨论过的隐私,规模,经济性和可访问性。希望这个系列阐明了一个过程,通过该过程,人们可以开始使用分布式计算空间,并开始以适应性更强的商业模式进行操作,从而使竞争者scratch之以鼻。
OCI的技术人员为我们为日益互联的世界建立一个更加统一的数字社会奠定的基础感到非常自豪。立即与我们联系,以了解我们如何帮助您塑造组织,塑造未来