区块链协议函数编程的优势-20181015


#1

描述区块链技术引人入胜,这是一种轻描淡写的说法。目前数百个区块链项目已经部署,未来几个月将再推出数百个。随着公司开发更先进的区块链基础设施和应用,围绕区块链技术的未来已经日渐清晰。

区块链平台开发中使用的一些最着名的编程语言是面向对象的语言。到目前为止,C ++,Python和Ruby等语言在区块链场景中占主导地位。

如果最近的发展是可行的,函数式编程语言是一种需要考虑的力量。他们为区块链技术提供独特的功能,帮助他们展现出重要的比较优势。

那么目前正在使用哪些函数式编程语言来开发开放区块链协议?这里有一些例子。

函数编程语言

  • OCaml

OCaml是一种经得起时间考验的函数式编程语言。它有一个静态类型系统,可以帮助消除运行时错误。与用C#或Java编写的程序相比,用OCaml编写的程序通常启动和运行速度更快,并且消耗更少的内存。

除了支持链接到C基元的外部函数接口之外,OCaml的其他功能还包括一流的词法闭包,参数多态、异常处理、尾递归和模式匹配,还有用于自动内存管理的垃圾收集器功能。

  • Haskell

Haskell是一种基于lambda演算的纯函数式编程语言。它具有用户友好的语法,广泛的物理库集合以及用于教育和支持的绝佳资源。这些对于开发人员对其进行原型设计所需的参考材料起着重要作用。

Haskell还拥有一流的工具、声明式和静态,以及强大的打字。在构建高性能应用程序时,这些特性使Haskell成为一个很好的选择。

  • Erlang

Erlang是一种函数式编程语言,用于构建分布在计算机网络上的强大程序系统。它已经在电信行业中使用了30多年,目前90%的互联网流量都通过Erlang控制的节点。作为一种函数式语言,它更侧重于表达式的评估。表达式使用函数来获取基本值。

Erlang在任何其他编程语言之前就开始支持多线程。它提供垃圾收集,使用虚拟机,并具有模式匹配,允许紧凑和清晰的程序。Erlang为其他编程语言提供了接口,如C,C ++和Rust。

Erlang被认为是一种优秀的语言,特别是在开发需要的后端系统时:

  • 大量的并发活动
  • 实时响应
  • 不间断运行和容错

既然您对函数式编程语言了解了一两件事,那么让我们来看看是什么使它们非常适合区块链。

函数式编程语言的优点

  • 不变性

通常,函数式编程语言没有可变变量; 一旦设置了值,就无法更改。这使得代码行为更容易预测,并减少了系统错误的数量,从而提高了系统稳定性。

  • 容错

容错是系统继续运行的地方,即使发生故障也是如此。某些函数式编程语言(如Erlang)默认具有容错功能。

  • 易于并行化,高度分布式

函数式编程语言使您能够创建高度并行化和高度分布式的系统。用于迭代的内置函数(例如map和reduce)在区块链开发中派上用场。

虽然还有更多优点,但让我们深入了解更多有趣的内容。您是否听说过任何包含函数式编程的区块链?继续阅读…

使用函数编程的区块链协议

  • Tezos

Tezos’是一个区块链项目,旨在提供“世界上第一个’自我修正’加密货币”。它是一个自治的、去中心化的区块链平台,它使用链上治理来帮助它随着时间的推移升级其协议。在替代的委托证明(DPoS)方法中实现了共识,称为液态股息证明(Liquid Proof-of-Stake)。

Tezos是在OCaml中实现的,OCaml是一种提供速度、明确的语法和语义的函数式编程语言,以及一个使Tezos成为正式验证的良好候选者的生态系统。正式验证是开发人员能够在数学上证明其智能合约代码的准确性的地方。

  • Caedano

Cardano是一个去中心化的,基于区块链的开源平台,使用名为Ouroboros的Proof-of-Stake数学计算。Ouroboros可以通过投币持有人的投票产生共识。

Cardano区块链是用Haskell编写的,它使用Plutus,一种具有强大静态类型和正式规范的纯函数式编程语言来定义其智能合约。Plutus的语法与Haskell类似,但与Haskell不同,该语言受到热切评估。

  • æternity

æternity是一个基于区块链的平台,包含智能合约和去中心化应用程序。像Tezos和Cardano一样,æternity协议是用Erlang编写的,它的智能合约语言 -Sophia - 也是函数式的。

Sophia是ML家族的编程语言部分。它缺少任意可变状态,但每个合约实例的状态形式有限。它是一种强大的语言,可以指定并自动证明智能合约的属性,使其成为高价值,系统关键智能合约的理想选择。

除了Erlang之外,核心协议中还包含许多其他技术特性,这些功能使得æternity脱颖而出:

  • 状态通道 - 该技术用于显着提高交易和智能合约的可扩展性,方法是将它们从较慢的主链(链下)移开。除了可扩展性之外,状态通道的额外好处是提高隐私,因为参与渠道的各方之间的所有交易或合同都是私密的。此外,由于用户之间的所有交互都是私有的,因此智能合约和交易可以并行执行。
  • Bitcoin-NG - 为了提高移动式去中心化应用程序的可用性,还必须提高主链的转账速度。在æternity,这是通过实施Bitcoin-NG实现的,Bitcoin-NG是下一代共识协议,可以在保持系统去中心化的同时实现更高的转账处理速度。
  • 命名系统 - 集成的命名系统也是æternity的一部分。任何地址,智能合约或oracle都可以使用人类可读的名称而不是一串数字和字母,就像大多数其他区块链平台一样。这可以提高用户友好性并帮助智能合约开发人员。
  • 集成的预言机 - 任何AE用户都可以在æternity区块链上成为或使用带有特殊交易的oracle。Oracles报道了现实世界的事件,为智能合约提供了触发器。这提高了智能合约的效用,并实现了其全面的极大潜力。
  • 链上治理 - æternity实现了一个另类 股息证明 ,允许AE代币用户正式表达他们对任何主题的意见。任何AE用户都可以通过使用其AE余额签署交易来提出问题或回复问题。代表是可能的。æternity的治理体系类似于动态民主的一种形式,在区块链中实施。投票结果向开发人员发出信号,表明社群对各种主题的看法,包括基本系统变量,如块大小,块奖励或块时间。投票结果不具约束力,但具有正式指示性。
  • 工作证明挖掘矿 - 与许多新的区块链平台不同,这些平台链实施有争议的治理机制,建立了共同的证明共识,æternity依赖于经过验证的工作证明方法。

如果您对æternity背后的团队感到好奇 - 该项目得到了Erlang和区块链社区中一些最有经验的开发人员的支持。 Erlang的共同创始人Robert Virding, Ulf Wiger–开源Erlang社区中最多产和知名成员之一 世界级区块链开发人员Sascha Hanse都是æternity团队的成员。在开发的最前沿是创始人Yanislav Malahov,他被称为以太坊的教父,因为他从一开始概念阶段就涉及到了这个项目。

结论

函数式编程语言正在进入区块链领域。它们的特性使它们能够独特地适用于分布式账本协议和智能合约的开发。区块链空间内外一些技术最先进的项目转向功能编程,以实现可扩展性、稳定性和容错性。着眼于区块链技术的开发人员一定要考虑探索函数式编程。它很可能是最基础的智能合约平台开发基础。