新一代开源分布式账本项目R3 Corda 技术揭秘:基于JVM开发

语言


Corda使用Kotlin作为开发语言,合约可以使用Java、Kotlin或者其他基于JVM的语言来编写。选择Kotlin的原因是:


  • 相比其他目前区块链流行的语言,比如C++或Golang,Java系有最强大的生态支持,和成熟的基础设施积累。

  • 因为是面向金融行业,应用技术栈也以Java为主(因为主导企业IBM、Oracle等为主),进而使得adoption cost尽可能小,开发更容易。

  • 对于金融行业这样有着厚重历史积累(技术包袱),以及各种异构系统,Java(JVM)平台有更成熟和强大的集成能力(比如数据仓库、离线计算等)。


除此之外,相比Java以及JVM平台的其他语言(Clojure、Scala、Ceylon等),Kotlin又平衡了语言灵活性和健壮性(相比Java提供了更多语言层面的改进,比Clojure、Scala又具备更平滑的学习曲线,同时IntelliJ官方对Kotlin的支持更强大)。

共识


  • 共识粒度小

  • 共识范围小


相比BTC或Ethereum这样的Permissionless网络,Corda提供一个更可信任的Permissioned P2P网络,所有transaction参与这都是authenticated和authorized。


所以Corda的共识机制舍弃了BTC或Ethereum这样的账本范围的全局共识,只要求transaction的所有参与者对于transaction达成共识。


因为舍弃了对账本的全网广播,舍弃了所有节点都需要验证所有的transaction,进而极大得提高了transaction的吞吐。


不像Ethereum的基于account的状态机模型,Corda采用了和BTC类似的基于transaction的UTXO模型,逻辑上完全对应金融系统的复式记账。


  • Notary


Corda中引入了Notary的概念,Notary负责确保UTXO模型中的“输入”的有效性,比如防止“double-spent”攻击。它是所有transaction验证和确认(verify和validate)的基础,本质上可以认为是Corda这个“半信任网络”中的“可信任中介”。逻辑上看是“中心化的角色”,但实际上Notary可以是一个网络,甚至可以是另一个基于某种共识的公链。


Command,合约和Flow


    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值