对话Jolestar:Starcoin是链上治理实现最彻底的公链之一
越来越多项目入局公链赛道,Starcoin是近期国内涌现的新锐公链代表,由国内多名互联网公司前高管创立,基于Facebook的Move语言开发,近日已上线主网。
此次Starcoin中国首席技术顾问Jolestar基于目前公链赛道发展情况,以及Starcoin的竞争优势与其开发语言Move 等话题在捕手学堂进行了分享,希望对你有所启发。
链捕手:请简单介绍下Starcoin的发展历史。
Jolestar:Starcoin是一个按分层方式架构并为分布式金融而设计的区块链项目。Starcoin社区是2018年下半年成立的,团队来自于互联网公司以及技术社区。最初是对区块链感兴趣的一些技术人员组织了一个区块链学习小组,定期组织区块链技术分享。
后来主要成员逐渐从互联网公司离职,加入区块链行业,组建了 Starcoin 核心开发团队。
2018年年底,Starcoin白皮书1.0版正式对外发布。后来,经过1年的探索,我们先后在闪电网络,以太坊上试验二层网络。
2019年底,顺利实现了Stargate原型,并且正式对外宣布将Move作为智能合约语言,与Libra共同开发Move生态。
2020年4月9日发布Starcoin v0.1版本,启动Halley测试网络。
2021年5月18日主网启动。
链捕手:公链竞争异常激烈,你认为Starcoin选择在当前进入公链赛道,存在哪些竞争优势?
Jolestar:在我看来,实际上现在的各公链并不是竞争关系。因为,整个区块链还是很小的一个生态,大家并不是在争夺存量市场,而是一起开辟新的空间。
从最近的各种公链的发展就可以看到,尤其是 DeFi 领域的链,按现在所有公链加起来的吞吐能力,实际上也远未达到满足 DeFi 市场需求的程度。
而新的面向 DeFi 的链一般有两个方向:一种是基于以太坊EVM开发,这样可以快速承接以太坊因为拥堵溢出的流量。这个方向的优势是完全兼容以太坊,DeFi 应用切换成本低,可复用以太坊生态的工具。缺点是很难做大的改进,基本上会继承以太坊已有的缺陷。
另外一种是基于新的技术方案,比如引入新的状态模型,编程语言。这个方向的优势是可以在状态模型以及智能合约层做大的改进,缺点是周边生态需要重建,周期比较长。
两种方向各有优劣,我们选择第二个方向,是更适合我们团队的长期的路线。
链捕手:Starcoin 的智能合约编程语言是 Move,为什么需要一个新的编程语言?
Jolestar:这个问题其实是两个问题。为什么区块链上的智能合约需要新编程语言?和为什么不用已有的智能合约编程语言。
先回答第一个问题,智能合约编程语言和传统编程语言主要的区别有两点:
链接管了智能合约程序的状态。传统编程语言的状态是需要开发者自己写入数据库或者文件中进行维护,智能合约简化了状态的托管,抽象了一种外部状态的表达方式。
链接管了智能合约程序的调度。智能合约中无需考虑并发调度等问题。传统的编程语言里有线程,协程,锁等机制解决并发问题。
换句话说,传统的编程语言是面向操作系统提供的抽象,无论是文件,还是网络,还是调度。
当这些概念都不考虑时,已有的大多数编程语言库实际上都不可用,复用已有的编程语言其实没有什么优势,只是徒增兼容成本。
现在回答第二个问题,为什么不用已有的智能合约编程语言,比如Solidity?
前面我们说了,智能合约托管了程序的状态。而外部状态在合约中如何表达,尚未有一个类似于操作系统的文件统一的系统标准。
而如果想改造状态模型,肯定需要改变智能合约编程语言。我们为了尝试新的状态模型,需要用一种新的编程语言来表达。
链捕手:Move 的开发语言的特点与优势在哪里?
Jolestar:我们选择 Move 的关键原因是它的状态模型和我们的设计非常匹配。
首先,它把合约的状态拆分到账号下,而不是全部托管在合约中,明确了状态的所有权。
其次,它在这个基础上,利用线性类型机制,追踪所有权,保证了资产的安全性(不可隐式丢弃),同时也提供了更灵活的资产编程模型。
安全和灵活的资产编程模型用我以前的一页 PPT 来说明:
第一等级的资产资源抽象,所有的资产和 Token 都是对等的,STC 和其他的 Token 在安全级别上没区别。
通过数据抽象,而不是接口,没有动态分发机制。
通过数据的 visibility,ability(drop,store)等编程语言的特性来保护资源,充分利用编程语言编译期检查的特性和能力。
如上面的例子,solidity 的合约是记账模式,每个人的资产记录在合约的账本中,而 Move 是箱子模型,资产包装在对象构成的箱子中。但更细微的区别感觉得直接上手写代码才能体会到。
链捕手:听说国内懂Move语言的开发者并不多,这会不会对你们打造应用生态打造负面影响?
Jolestar:Move 是个新语言,有学习成本,开发者确实不多。
但区块链现在还很早期,智能合约开发者相对互联网开发者群体来说,还是一个很小的群体。
相信未来会有大量的互联网开发者进入区块链智能合约领域,那时候对他们来说,所有的智能合约语言都是新语言,都有学习成本,所以区别不是很大。
链捕手:你们如何看待DeFi生态对公链的重要性?Starcoin接下来会如何建设DeFi生态?
Jolestar:DeFi 是公链最适合的 DApp 类型之一,在 Layer2 尚未成熟之前,Layer1 上感觉能跑起来的应用也就主要是 DeFi。我们在设计之初就是面向金融场景的思路,这点和 Libra 是相通的。
DeFi 的生态需要链的核心开发者和 DApp 开发者共同建设。公链的基础设施,包括钱包、区块浏览器、开发工具,我们核心开发者会主要关注在这个领域。
我们的经济模型中,有很大一部分预留给了生态,会通过链上治理的方式,通过生态应用分发出去,而不只是通过矿工。
我们认为对 DeFi 类的公链来说,DApp 生态非常重要,上层应用生态成长了,矿工也能获得更多收益。
链捕手: NFT 前一段时间一直很火,并且是一个容易出圈的概念,Starcoin 对 NFT 有支持吗?
Jolestar:Move 的资源模型非常适合用来表达 NFT,它与Flow 的 Cadence 合约语言非常像,都用线性类型来追踪所有权。(Flow 是专门用来做 NFT 的一条公链)。
Starcoin 这边的 NFT 标准还没有出,我们正在和社区开发者一起推演 Move 上的 NFT 标准。
另外 Starcoin 会支持以任意 Token 作为 Gas 费用,这样会降低 NFT 圈外用户对区块链和 DApp 的接受成本。
链捕手:Starcoin原生通证 STC 在公链生态体中具有哪些价值与应用场景?
Jolestar:STC 是 Starcoin 上的原生 Token,主要的场景是:
1. 支付交易的 gas 费用,这个和大多数公链一样。
2. 作为链上治理的治理币,一币一票。
可以说 Starcoin 是链上治理实现得最彻底的公链之一,任何人都可以提起改进提案并通过社区链上投票执行。
主要有以下治理选项:
1. 链上的关键参数调整,比如区块奖励。
2. Stdlib 的升级,Stdlib 包含了核心的共识逻辑以及经济模型。
3. 从国库申请提款用于生态开发。
链捕手:很多人对链上治理持反对态度,觉得投票治理会引入太多政治气氛,导致社区不够纯粹,Starcoin 中引入链上治理是如何考虑的?
Jolestar:其实无论是否有链上治理,都需要有一套机制来解决社区的分歧。
比特币的 BIP,以太坊的 EIP 等治理模式,基本属于链下治理模式。 一般流程是提出提案,社区讨论,核心开发者开发并发布版本,矿工进行节点升级,代码中约定在某个高度自动激活新特性。
大多数情况下,这种治理模式也运作良好,但一旦社区中的开发者和矿工就某个特性之间产生不可调和的分歧,链和社区则会面临硬分叉的风险,比如 DAO 攻击的那次分叉,以及最近的 EIP1559。
纵观比特币和以太坊面临的几次重大的分歧,可以发现社区治理面临的最大困境有两个:
1. 没有一个明确的指标来判断哪一种主张在社区中达成了多数的共识。
2. 链下协商的协议在链上没有约束力。
因此,我们试图在 Starcoin 中进行链上治理,尝试一定程度解决上面的两个困境。
首先无论治理的机制如何设计,投票最终会产生一个明确的结果,给社区传达一个明确的信息。
其次,链上治理推迟了决策的时间节点,开发者和矿工可以先履行自己的职业责任,只是从技术角度评估提案的可行性,开发以及升级节点,然后再和社区成员一起决策是否激活以及在什么时候激活新的特性。
最后,一旦链上投票产生结果,由于节点实际上已经都升级完成,最终投票结果在链上会自动执行,具有约束力。
我们提出了治理机制的设计原则:『技术创造可能,社区决定取舍』。
在开发以及升级阶段,开发者和矿工应该对提案保持技术中立态度,等升级完成,需要投票的阶段,再作为社区成员一起来行使价值观选择权,决定取舍。
链捕手:Starcoin接下来的发展路线图是怎样的?近期的运营重点在哪里?
Jolestar:近期的重点是准备黑客马拉松开发者大赛。届时,我们会和 Facebook 的 Move 社区一起组织一个全球的开发者大赛,吸引更多的人关注 Move,基于 Move 开发区块链应用。