区块链基础知识了解_了解区块链基础知识和用例

区块链基础知识了解

重要要点

  • 区块链可以是公共的或私有的,许可的或不信任的
  • IBM Hyperledger和R3 Corda是两种使用最广泛的企业区块链
  • 实际解决方案的部署仍然有限且不完整
  • 这个空间正在不断发展,并处于早期阶段
  • 企业采用仍需谨慎

区块链领域中使用的一些最重要的术语是:

  • 受信任的第三方-一种系统,其中某些事实(例如,参与者的身份)只能通过引用特权(通常是集中的)权限来验证。
  • 不信任-系统在操作的任何方面(包括交易确认或身份验证)都不依赖任何受信任的第三方。
  • 工作量证明(POW)-寻找没有捷径算法的数学难题(通常是哈希问题)的解决方案,因此必须通过蛮力的计算力来解决。
  • 未花费的交易输出(UTXO)-在某些区块链(例如比特币)中,交易消耗输入而剩下一些(输出)_unspent_。 这些未花费的输出然后可以用作将来交易的输入。
  • 虚拟机模型-一些区块链(特别是以太坊)具有抽象模型,用于表示系统的整体状态以及如何更新此状态。 通常可以通过虚拟状态机(例如以太坊虚拟机(EVM))的形式模型来描述该模型。
  • 智能合约-一种小型的,由事件驱动的程序,可以部署到支持程序执行的区块链中。 部署后,该程序将使用区块链交易作为输入继续执行,并可以采取导致进一步交易执行的操作。 该程序的代码受密码保护。
  • Turing-complete-计算机科学术语,可以读作“功能全面的编程语言”。 所有主流语言(例如Java,Javascript,Python,Ruby,Go等)都具有图灵功能。 由于技术原因,一些区块链可能选择不向智能合约编写者提供全部图灵完备语言的功能。

每个术语都有很多详细信息,但是其中一些最重要的方面包括:

  1. 大多数交易系统完全或部分依赖于某些受信任的第三方。 另一方面,不信任是一个相当显着的特性,但是它并不是廉价获得的-必须付出相当大的额外复杂性和努力才能使系统不信任地运行。 这样做的关键是许多区块链使用的POW共识算法。
  2. 一旦找到了POW问题的解决方案(基本上是大规模的反复试验),那么任何参与者都可以立即证明该解决方案的正确性。 良好的POW问题具有统计特性,可让任何观察者可靠地估计在解决方案上迷失了多少计算时间。 这使得它们适合用作公共区块链(例如比特币)中的分布式共识机制。
  3. UTXO模型提供了一种简单的途径来确保交易的完整性,并防止在两个单独的交易中两次使用相同的比特币(_double-spending problem_)。 这是通过确保对任何事务的任何输入都必须出现在输出的集合-UTXO数据库中。
  4. 相比之下,虚拟机模型(特别是由以太坊实现)提供了显着的扩展-以不信任且完全分散的方式存储任意状态并在网络内运行简单程序的能力。

澄清了这些主要定义(以及一些后果)后,我们现在可以看一下当今世界上使用的一些主要的基于区块链的技术。

比特币

原始加密货币,使用未花费的交易输出(UTXO)模型作为分类帐。 它使用简单的POW算法进行挖掘,基于猜测一个随机字符串,该字符串与最后一个事务块结合使用时,会使复合材料的SHA-256哈希值在数值上小于小阈值。

成功猜出答案的参与者被称为“挖了一个区块”,该区块中包含的交易被添加到分类账中。

然后,这提供了一种非常简单的确定共识的方法-参与者只需同意最长的链条应被视为挖掘下一个交易区块的基础。

比特币并非旨在容纳智能合约。 结果,可用的功能极其有限,主要是通过协议中恰好存在的边信道的新颖使用。 最终的功能绝不是图灵完备的,相反,大多数对比特币的分析都完全忽略了它。

以太坊

该分类账建立在比特币的一些思想之上,但是模拟了单个全局虚拟机的状态,而不是使用UTXO模型。 关键创新是增加了图灵完备的智能合约功能。 这是以太坊虚拟机(EVM),这是一种虚拟机,专门创建用于具有智能合约的分布式分类帐的上下文中。

以太坊网络中的所有完整节点均遵循该模型的规则。 他们可以在其计算机上为任何合同地址的状态计算系统状态,并且只要使用相同的交易(构成以太坊模型内的输入数据),他们就会得出相同的结果。

由于以太坊使用全局共识算法并具有全局最新区块的概念,因此以太坊虚拟机的总体交易处理速率(即有效时钟速度)受区块生产率的限制。 为以太坊网络增加更多的硬件和计算能力并不会使其变得更快或更强大,而仅仅是防篡改。

使用图灵完备的智能合约可以在网络顶部添加其他功能,而无需所有参与者都知道它们。 例如,这允许以太坊网络发布以令牌形式保存在以太坊虚拟机中的软件令牌。 这构成了所谓的初始代币发行(ICO)的基础。

EVM从表面上类似于JVM和类似的环境,但是在某些重要领域进行了不同的设计。 特别是,EVM字节码的设计使对已编译代码的静态分析比已建立的替代方法更加困难。 对于需要高度透明性和可验证性的执行环境,这不是卖点。

低级EVM环境也不是特别适合人类的编程环境。 结果,已经创建了几种高级语言,它们可以编译为EVM字节码。 其中,最著名的是Solidity。

受更主流的编程语言(例如Javascript和Java)启发,Solidity语言还融合了新颖的功能,可与以太坊区块链进行交互。

在某些方面,以太坊是其自身成功的受害者。 它作为ICO首选平台的出现在2018年初导致ETH(以太坊代币)的高昂价格。以太坊团队本身持有的这种加密货币的数量导致许多主要参与者拥有大量既得利益的情况对现状感兴趣,并希望实现其纸面利润。

科尔达

R3 Corda使用UTXO模型(如比特币),但在设计中还包括了图灵完全智能合约。 这些合同用JVM字节码表示,具有可选的附加确定性保证,可以限制合同语义。

该方法不使用单个全局锁(块高度)来控制分类帐状态的前进,而是允许无冲突的事务并行进行。 这样可以有效地对锁进行细化,以要求更复杂和微妙的时间和时钟概念为代价。 在Corda模型中,简单的“最长链胜”规则已不足以作为共识算法。

由于第三方身份验证是Corda架构的自然组成部分,因此参与者是众所周知的和受信任的。

作为消除全局总帐锁的愿望的副作用,Corda包含退出/进入语义,以使交易与主链分离,并防止所有交易随时间纠缠在一起。 这是可能的,因为体系结构强烈依赖于受信任的第三方模型。

结果,身份认证机构可以确保某些参与者退回分类账项目(等同于加密货币中的硬币)并将其替换为没有交易历史的新鲜铸造等价物的权限。

这将Corda定位为旨在供组织使用的企业区块链,这些组织可以受益于通用基础结构和对世界状况的共享视图,而不是维护单独的记录版本,这不可避免地导致对账问题。

超级账本

由IBM启动的HyperLedger项目是另一个领先的企业区块链解决方案。
Hyperledger Fabric是一个区块链框架实现,是Linux基金会托管的Hyperledger项目之一。
IBM该项目的主要设计目标包括机密性,弹性,灵活性和可伸缩性。
像Corda一样,Hyperledger使用许可的体系结构。
它实现了确定性的实用拜占庭式容错(PBFT)算法,该算法可确保一旦收到交易完成通知,便能真正完成。

IBM已投资于可靠的Docker集成,包括在容器内进行测试。
Hyperledger的智能合约可以用Java编写,并提供一个SDK(也可以使用Go合约)。
Hyperledger按角色将节点分开,这些角色包括完整对等方,证书颁发机构节点(需要许可)和将事务分组为多个块的订购者。

Hyperledger的代码和体系结构仍在快速发展,但是实际的生产试用开始出现,并且它与Corda一起出现,成为企业更可能使用的解决方案之一。

用例

区块链的用例仍在争论中。
有明显的抗审查数字货币的例子。
但是,2018年加密货币市场中出现的波动性和碎片化似乎表明无信任数字货币的实际适用性受到限制。

从企业的角度来看,很明显,它们还可以用于创建系统或网络,这些系统或网络可以作为多个实体之间的共享结构部署,这些实体不一定彼此信任,但希望共享数据并保持某种形式的共识。关注各方关心的问题。

随着进入2019年的更多项目进入市场,还有待观察的是,区块链的承诺是否会构成其倡导者已经许诺一段时间的主要影响。

翻译自: https://www.infoq.com/articles/blockchain-basics-use-cases/?topicPageSponsorship=c1246725-b0a7-43a6-9ef9-68102c8d48e1

区块链基础知识了解

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值