如果说区块链技术令人神往,那恐怕还有点保守呢。现在,已经部署的区块链项目已经有几百个,并且还有数百个项目将在未来几个月推出。随着各家公司开发更先进的区块链基础设施及应用程序,区块链技术的未来将变得一片光明。

在区块链平台开发中使用的一些最著名的编程语言是面向对象语言。到目前为止,像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是一个区块链项目,旨在提供“世界首个‘自我修正’的加密货币”。它是一个自治的、去中心化的区块链平台,使用链上治理,会随着时间的推移帮助自己升级协议。用替代的委托股权证明(Delegated Proof-of-Stake,简称DPoS)方法达成共识,被称为液态股权证明(Liquid Proof-of-Stake)。

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

Cardano

Cardano是去中心化、基于区块链的开源平台,使用被称为Ouroboros的股权证明(Proof-of-Stake)数学计算。Ouroboros可以通过代币拥有者的投票来形成共识。

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

æternity

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

Sophia是属于机器学习的编程语言。它缺少任意可变状态,但是每个合约实例的状态形式是有限的。它是一种强大的语言,可以指定和自动证明智能合约的属性,使之非常适用于高价值、系统关键的智能合约。

除了Erlang之外,核心协议中还包括一些技术特性,使æternity脱颖而出。

状态渠道——该技术用于显著地改善交易和智能合约的扩展性,方法是通过把交易和智能合约从更慢的主链上移走(离线链)。除了可扩展性外,状态渠道的额外优点是提高了隐私性,因为参与渠道的所有各方之间的交易或合约保持隐私性。此外,因为用户之间的所有互动都是私密的,所以智能合约和交易可以并行执行。

Bitcoin-NG——为了提高移动去中心化应用程序的可用性,主链的交易速度也必须提高。在æternity中,这是通过实现Bitcoin-NG来实现的,Bitcoin-NG是下一代共识协议,在保持系统去中心化的同时,可以更快**地进行交易。

命名系统(Naming System)——集成的命名系统也是æternity的一部分。任何地址、智能合约或Oracle数据库都可以拥有一个人类可读的名字,而不是一串数字和字母,这和大多数区块链平台的情况一样。这改善了用户友好性,并有助于智能合约开发人员。

集成的预言机——在æternity区块链上,任何AE用户都可以托管和使用带有一组特别交易的预言机。预言机报告真实世界里的事件,为智能合约提供信息。这提高了智能合约的效用,并充分实现其完全破坏性的潜力。

区块链治理—— æternity实现了一种股权证明变体,允许AE代币用户正式表达他们在任何主题上的观点。任何AE用户可以用他们的AE余额签署交易来提出问题或回答问题。可以委托。 æternity的治理体系类似于一种在区块链中实施的流动民主。投票结果向开发人员表明,社区在不同主题上的观点,包括基本的系统变量,如区块大小、区块奖励或区块时间。投票结果不具有约束力,但具有形式上具有象征意义。

工作量证明挖矿——与很多新的区块链平台不同(那些平台实施有争议的治理机制,建立了股权证明共识),æternity依赖于经过验证的工作量证明方法。

如果你对 æternity背后的团队感兴趣,可以了解一下:该项目得到了Erlang和区块链社区中一些最有经验的开发人员的支持。Erlang的共同创始人Robert Virding,和开源Erlang社区最多产和知名的成员之一Ulf Wiger,以及世界级的区块链开发者Sascha hanse都是æternity 团队中的成员。在该运动最前沿的是创始人Yanislav Malahv,由于一开始就参与该项目,他被看作是以太坊的教父。

结论

函数式编程语言正在进入区块链世界。它们的特性使它们能够独特地适合分布式分类账协议和智能合约的开发。区块链领域内外技术最先进的一些项目转用函数式编程,以获得可扩展性、稳定性和容错性。关注区块链技术的开发人员绝对应该要考虑探索一下函数式编程。它很有可能是最实用的智能合约平台的基础。

阅读英文原文:Advantages of Functional Programming for Blockchain Protocols

函数式编程能否支持更高效的区块链基础设施?相关推荐

  1. 更智能更高效,区块链打造更美服装行业

    区块链重构服装产业链,重塑价值创造方式. 服装行业,作为世界最古老的传统行业之一,一直陪伴着人类社会的"成长".然而在过去数十年的发展中,服装行业却成为了全球第二大污染工业.过度生 ...

  2. Qtum量子链x2018区块链新经济论坛:区块链基础设施建设发展方向

    北京时间12月7日,为期两天的2018中国区块链新经济论坛年会在上海拉开序幕,Qtum量子链中国首席开发工程师钟文斌作为国内顶尖区块链技术开发者,与到场的区块链同行及近300位区块链爱好者共同探讨了区 ...

  3. 深度硬核 | Polkadot 为何能成为下一代区块链基础设施?

    项目基本面.项目团队.经济模型.技术实现.运营情况和竞争对手这六大方面一一为大家剖析Polkadot(波卡)的构成和发展. 本文谨代表作者个人观点,不代表火星财经立场,该内容旨在传递更多市场信息,不构 ...

  4. 中国信通院发布《区块链基础设施研究报告(2021年)》

    来源:中国信息通信研究院本文约1800字,建议阅读5分钟 本文介绍了<区块链基础设施研究报告(2021年)>的主要内容. 2021年7月13日,由中国互联网协会主办,中国信息通信研究院(以 ...

  5. 干货 | 一致性算法与区块链基础设施建设(附PPT)

    本讲座选自清华-青岛数据科学研究院大数据基础设施研究中心特约研究员.加拿大Viscore公司创始人兼总裁刘运渠先生于近期在清华大数据"技术·前沿"系列讲座上所做的题为<一致性 ...

  6. 区块链基础设施概览:第一性原理框架

    区块链基础设施概览:第一性原理框架 原文翻译自:https://blog.bigchaindb.com/blockchain-infrastructure-landscape-a-first-prin ...

  7. 新基建下区块链基础设施建设

    2020年3月,加快5G网络.数据中心等新型基础设施建设进度,新基建建设成为了我国超40万亿的重点发展战略.4月20日国家发改委正式将区块链纳入新基建,进一步明确新基建信息基础设施主要是指基于新一代信 ...

  8. 建设区块链基础设施,加速区块链等新技术与传统行业深度融合发展

    11月16日,工业和信息化部印发<"十四五"信息通信行业发展规划>. 文件指出,经济社会数字化发展拓展行业新空间.信息技术正处于系统创新和智能引领的重大变革期,5G.工 ...

  9. TAAL在加拿大阿尔伯塔省工厂开启区块链基础设施运营

    区块链基础设施和服务提供商TAAL Distributed Information Technologies Inc. 宣布,该公司已在其位于加拿大阿尔伯塔省的工厂开始区块链基础设施运营. TAAL首 ...

  10. 百度与中国联通达成战略合作,携手加速区块链基础设施建设

    12月30日,在海南省海口市举行的中国联通"联通链"发布会上,中国联通与百度正式签署战略合作协议,双方将在区块链基础设施建设与服务领域建立长期合作伙伴关系,共同为产业发展及数字经济 ...

最新文章

  1. CNCF案例研究:奇虎360
  2. Python开发工程师必知十大机器学习库
  3. Myeclipse优化设置,加速你的开发武器
  4. Py之pygame:有趣好玩——利用pygame库实现一个移动底座弹球的小游戏
  5. 入门无人驾驶学习路线
  6. android查看wifi是否双频,Android判断wifi是5G还是2.4G
  7. suse 启动oracle11g,SuSe10下Oracle11g文件系统模式安装及配置、网络配置与连接
  8. androidstudio在mainactivity实现监听器借口无法抽象_趣操作,Tomcat如何实现一键式启停?
  9. r 语言 ggplot上添加平均值_R语言中ggplot2包作数据分布情况下的统计图实例学习(一)
  10. python 实例创建
  11. 130712周赛(CF)
  12. 严重: Exception sending context initialized event to listener instance of class
  13. Unicode - 16 位统一超级字符集
  14. Windows10中,如何改变鼠标光标(指针)的大小和颜色?
  15. 使用visual studio2015 社区版开发office
  16. 部分古钱知识--(4)
  17. 苹果键盘怎么手写_今天才发现,苹果手机自带录音转文字功能,堪称会议神器...
  18. 制造并批量生产现实版“储物戒指”
  19. 宽带连接时用电脑开热点的方法
  20. 基于云原生的大数据产品前端实践 | 第七期图文直播文字回放

热门文章

  1. FFMPEG 的学习
  2. 20165237 2017-2018-2 《Java程序设计》第8周学习总结
  3. Java中this和this()
  4. 【2030】排队打水问题
  5. REM布局计算,移动端,pc端有兼容性)
  6. 告别乱码,针对GBK、UTF-8两种编码的智能URL解码器的java实现
  7. [FZYZOJ 1889] 厨房救济
  8. SuperMap 办公自动化服务平台
  9. 读吴恩达算-EM算法笔记
  10. [专题练习] Part1 搜索