区块链以其分布式存储的技术特点,公开透明、可以传递价值的特性,在未来会作为企业应用的基础而存在。
在国家高度重视区块链技术的背景下,受制于技术水平,企业、机构试图将其与自身业务场景很好结合,是比较困难的。
因此,搭建一个区块链基础设施平台,提供底层技术、保障高安全性,是很必要的。
NULS是一个可定制的区块链基础设施。通过“链工厂”实现人人发链;借助模块仓库订制特色链条;采用POC共识机制,保证生态系统稳定;运用多链和跨链技术,维持链上生态和链与链之间的数据互通,在底层跨链研究方面,NULS已获得比特大陆的战略投资。基于以上核心技术,建立NULS生态系统,推动区块链行业的整体向前发展。
以前,当你需要创建一个服务器时,你需要自己准备硬件、机房和电源;
如今,云计算帮我们解决了这个难题,只需去阿里云、或者腾讯云,点击几下鼠标,就可完成服务器的搭建工作。
时间成本大幅缩减,效率倍速增高。
衡量一个行业成熟与否的主要标准,就是社会分工的细化程度。而从这个角度来看,区块链行业,目前仍处在非常早期的阶段。
一些区块链公司,原本只想做一个应用,或者只想改进某个行业些许冗余流程,但由于整个区块链行业在基础设施上的薄弱,这些公司不得不从底层做起,一路从最底层开发到最上层,甚至是外围的全栈式开发。
在区块链行业,这样一个初级的水平化分工,比比皆是。
不过,情况正在发生变化。
15位计算机行业顶级高手,从零开始,9个月时间写了10万行主网代码,再经两个月11轮测试,终将项目上线。这个名叫NULS的项目,就是这些极客们,想要快速改变区块链生产效率的作品。
他们希望,能改造区块链行业落后的生产力,让每个行业都能根据实际需求,通过点击几下鼠标,就能快速做出好用的区块链,就像不用自己搭建机房,就能用云来解决服务器的需求一样。
7月12日,在北京77文化创意产业园,NULS技术研究院和技术社区负责人&项目发起人张星第一次对外透露了NULS的核心技术信息及细节。
张星在主网发布会上指出,“NULS是一个可定制的区块链基础设施,是一个全球性的开源项目,并即将推出核心产品“链工厂”。对此,张星指出,NULS能够让搭建区块链和在阿里云上搭建服务器一样简单,在配置了共识算法、区块大小、创世区块、网络参数、存储方式后,就能得到完全属于自己的区块链。不仅如此,还可选择跨链模块将自己的区块链与生态中的区块链连接在一起,从而实现数据、价值、信任的传输。
CSDN记者在对NULS项目进行深度了解后,总结出NULS在技术上的4大核心技术点。
4大核心技术点
1. 新的共识机制——POC
NULS核心技术团队表示,相比于POW、POS、DPOS和PBFT等已有共识机制,其采用的POC(Proof-Of-Credit)共识机制,具有门槛低、相对节能、去中心化程度更高的特点。与此同时,POC还是一个很稳定的底层协议。
建立共识节点对构建NULS公有链生态十分重要。如果持币者符合以下两个条件中的任何一个,都可以参与节点竞争:
1)至少可以抵押给系统20000NULS的保证金;
2)至少持有2000NULS,在社区中邀请社区成员参与委托共识,委托金额大于200,000NULS。
加入共识节点后,共识节点重新排序后每轮轮流出块,退出共识时保证金解锁。
任何人都可以随时加入 NULS 的共识之中,只要满足条件,遵守规则,即可持续获得 NULS 代币奖励。
POC的加入分为硬性指标和软性指标。硬性指标即信用分值必须达到一定标准线,排除掉一部分曾经作恶的节点;软性指标即必须冻结一定量的 NULS 代币作为保证金。
为杜绝节点的泛滥,同时让整个系统更加公平,保证金的数量除了有一个最低值的限制外,任何人可自由选择保证金的数量,保证金的数量会和最终的奖励挂钩。
在 NULS 系统里,信用是账户在系统中的诚信系数,所有账户的信用会在区间[-1,1]内,通过信用评级算法公式自动计算。
为了整个 NULS 系统的平衡与公平,共识奖励根据所有共识节点所提交的保证金与共识节点信用综合计算。
2. 模块化架构
图灵完备的智能合约,虽然具有灵活、开放等特点,但仅局限在逻辑层面上,考虑到这一痛点,NULS在逻辑层面上进行了模块的封装,通过模块构建各种不同功能的链条,形成特色多链网络架构。
低耦合高内聚是程序设计最基本的原则,NULS模块符合这一原则,是比较开放和自由的,任何人都可以进行模块开发,比较灵活,可以进行功能的增加与删减,因此,应用场景更多、生态范围更广。
NULS核心技术团队吸纳了 Linux 内核设计的模块化思想,开发了 NULS微内核,遵循“一切皆为模块”的原则,用模块化支持技术更新和应用适配。
NULS 模块提供了标准定义“NULSModule”,所有 NULS 的模块都遵循
NULSModule模块定义。
NULS 模块管理器负责管理所有模块,定义了模块加载/卸载、服务注册等规范,凡是遵循NULSModule规范的扩展模块,都可以通过模块管理器加载到NULS 的节点运行。模块加载时模块管理器会注册该模块的所有服务,NULS 模块可以提供对外服务,也可以调用其他模块的服务,模块可以触发事件,也可以订阅其他模块的事件。
模块会根据技术升级和应用需求不断更新和替换,从技术层面看,NULS 是一个具有很长生命周期和超强适应性的操作系统级软件。
3. 多链并行
NULS会根据不同实践需求,通过组装具有不同功能的模块,形成“私人订制”链条,增加其应用场景和适用性,从而进行个性化设置。
NULS 支持子链注册接入,主链与子链使用跨链共识验证区块和交易;NULS代币可以在 NULS 主链和子链之间进行流通;子链向主链报备区块头,主链审计子链的区块。
1)跨链共识域(C3D:cross chain consensus domain)
主链部分节点与子链部分节点组成跨链共识域,跨链共识域内节点对跨链交易达成共识,然后分享跨链数据到其他对等节点。
2)跨链共识节点(C3N:cross chain consensus node)
加入跨链共识域的节点需额外加载跨链共识所需的模块,如网络模块、跨链协议处理器模块等。
3)安全性
跨链共识主链和子链最少节点限制,防止跨链共识域中心化。
跨链节点动态调整,不允许单个跨链节点连续广播跨链信息。
4. NULS智能合约
NULS智能合约,借鉴了以太坊智能合约的思想,具有灵活性、可编程性、图灵完备性和开放性等特点。很重要的一点是,用户可以进行智能合约的自定义设置,目前还在不断开发完备中。
NULS 内置 NULSVM 作为智能合约模块,从模块结构上看, NULS 智能合约模块处于对外服务模块(如 RPC 模块)和底层设施模块(如网络模块、存储模块、账户模块等)之间,存储模块、基本加密算法、账户模块、网络模块等其他模块为智能合约提供底层支撑。
智能合约由上层应用定义、由解释器解释、由存储模块存储、由 NULSVM模块运算。NULS 智能合约解释器将支持多种高级编程语言。应用开发者可以使用自己熟悉的语言设计 NULS 智能合约。
深度访谈
为了深入了解这些技术点背后的逻辑,区块链大本营记者逐一对NULS 技术研究院和技术社区负责人&项目发起人张星、NULS核心团队技术产品部负责人王志坚、NULS核心代码贡献者杨霖、NULS核心团队技术社区官杨大伟、NULS技术团队成员赵睿,就POC共识机制、模块化架构、多链并行和NULS智能合约等相关问题进行了深度采访,并整理如下。希望能挖掘出更多NULS相关的技术信息。
区块链大本营:NULS诞生的背景是怎样的?
杨霖:说起NULS的诞生,确实有一些故事可以分享一下。
NULS的使命是让区块链技术更简单;愿景是打造灵活的区块链基础设施、适配海量的应用场景和高性能驱动商业落地等。
在做NULS之前,我们已做过另一个区块链项目,因此我们拥有完备的区块链技术和丰富的运营经验,在此过程中,发现了整个行业的一些痛点,从而确定了NULS的发展方向。
很多人认为区块链是一些成熟技术的组合,是比较简单的。
但由于人们对区块链核心理念存在认知困难,加上安全性、性能瓶颈和快速迭代等问题,区块链技术并没有大规模应用,形成一个高性能、高安全性、高灵活性的区块链系统,从目前来说,是比较困难的。
同时,在国家越来越重视区块链技术的大背景下,企业、机构试图将区块链技术与业务场景结合。然而,他们并没有相应的区块链底层实现的技术水准,只能寻求外界合作。
为解决日益渐长的区块链技术需求,同时推动区块链技术的广泛应用,我们提出了具有模块化、多链并行两个核心概念的全球开源项目,也就是现在的NULS。
区块链大本营:NULS目前上线了哪些功能?在性能和安全性方面有何深入考虑?
王志坚:目前NULS主网已上线的功能主要是POC共识机制和基本代币功能,POC共识机制主要有建立节点、委托参与共识、退出委托共识、注销节点、红黄牌惩罚机制的功能。代币的基本功能就是余额查询、转账、支付交易手续费和设置别名的燃料等。
性能方面,目前上线的主网,经过公测阶段的11轮测试,确定了一系列运行参数,其中包括性能相关的区块大小和出块时间。当前主网的区块大小是2M,出块间隔为10s,TPS在840左右。在适当时可根据社区决策和投票,调整系统运行参数,比如把区块大小调整为5M,则TPS在2200左右。
在NULS生态中,通过多链并行的方式提升性能,将相同业务的性能压力集中在单个应用链中,不影响其他应用链和主链,达到性能上和功能上的平行扩展。
安全性方面,NULS中国团队已成立了NULS研究院,除研究NULS未来的技术发展方向外,研究院也会着重开展安全性相关课题。
当前NULS团队已与多家区块链安全测试供应商洽谈,主要进行性能和安全性方面的测试,这些安全测试包括网络攻击压力测试、全球网络扫描对抗和针对节点的攻击测试等。与此同时,我们也在时刻关注整个区块链行业的不断发展和项目自身的缺陷,取长补短、自我进化。
区块链大本营:团队和社区开发者都能进行模块开发,比如: 账本模块,网络模块,存储模块,帐户模块、共识模块、跨链共识模块等,如何有效对这些模块进行管理?
王志坚:有一个非常重要的概念,叫做模块仓库,模块仓库是用来管理和使用所有开发团队和社区开发者开发的模块功能集合。
模块仓库中的模块主要分为功能模块和应用业务模块两个类型。功能模块是实现区块链底层基础功能的模块,应用业务模块是指各个行业建立在区块链应用上的标准流程定制模块,这些模块可由团队开发,也可由社区开发,或是由企业开发后共享发布。
模块仓库中会包含所有接口定义模块和实现模块,实现模块可能会有多种,供用户选择,比如账本模块可以有UTXO模型的实现,也会有账户余额模型的实现。模块仓库的功能包括增加模块、发布模块、删除模块、更新模块、下载模块以及模块的动态组合、动态配置等。
社区开发者提交的模块,需经过代码审核才可以发布到模块仓库中,以保证整个模块仓库的安全性,用户可基于模块仓库自由组合相应的链程序。
区块链大本营:NULS智能合约的开发进度及特点?
赵睿: NULS智能合约,参照了以太坊智能合约的思想。目前已完成初步设计所有内容,正处在内部联调测试阶段,我们写了多个主流智能合约进行联调测试。
我们希望在9月份正式推出NULS智能合约,初期会支持Java语言。还有则是推出IDE插件,方便开发者开发、调试和部署智能合约。
在NULS智能合约推出后,首先需完善和优化智能合约中开发环境、执行环境和学习环境等生态。除目前开发环境中已包括的IDE插件,后续可能还会推出在线的IDE;在执行环境方面,我们需要继续优化虚拟机性能,精简一些指令;学习环境,就是同步支持更多开发语言,发布在线文档和制作常用范例等。
区块链大本营:说说POC的特点和优势?
杨霖:了解NULS的朋友都知道,POC是NULS团队提出的一种共识算法,即信用证明(Proof Of Credit)共识算法。
共识机制是达成共识的一种手段,目前几种主流的共识机制中,其核心本质无外乎就是利用现有账本数据和特定算法,决定某一时刻哪个节点有记账权,借此保证整个系统的一致性。同样,POC也是通过历史账本选取共识人。
在NULS的POC系统中,有代理人,委托人,打包人和奖励人这四个角色。
代理人——即节点创建人,发起一笔创建共识节点的交易,记录到链中,告诉所有人我要做共识节点。节点创建的基本条件则是需要锁定2万个NULS,设立这个基本条件的目的是证明你是诚心诚意想维护好NULS的基础网络。
委托人——NULS持有人,可根据代理人的信用值和代理人的影响力等因素,把自己所持有的NULS委托给该代理人进行共识,同时享受相应的共识收益,若发现代理人节点质量或者诚信有所下降,委托人可随时撤掉其委托,改投他人。
打包人——代理人在创建共识节点时,可指定一个打包人,这个打包人可以是自己的其他账户,也可以是一些懂技术的朋友,重要的是打包人可以不持有任何NULS,即使参与共识的服务器被黑客攻破,用户也不会有巨大损失,损失的仅仅是被攻击后的收益。
奖励人——代理人在创建共识节点时,不仅仅可以指定一个打包人,还可以指定一个受益人,指定谁可以获得共识所产出的奖励。
从技术上讲,POC完美的继承了DPOS的安全性和高效率,并且不为系统设限,节点数量和质量等都是动态平衡的,系统会根据其作恶情况自动判断并做出相应惩罚;从技术讲,其复杂度已经高出了很多。
从概念上讲,NULS也改进了一些不足的地方,比如投票积极性不高、没有动力参与等缺点。在POC中委托就相当于进行投票,和代理人一样,有实实在在的收益,大家自然会支持优秀的高信用节点。
实际上我们在设计POC的过程中,也经历了两个阶段。
第一阶段,我们希望通过这种机制,选出高质量的节点来维护NULS的网络,让NULS的网络更加高效、稳定和安全。
第二阶段,我们希望在POC共识体系的基础上,添加一些额外的运行机制,让NULS社区实现自我进化、自我优化和自我驱动的终极目的。
任何共识机制都躲不开去中心化程度、安全和效率三者难以平衡这个痛点。NULS的POC共识机制,在综合平衡这三点基础上,结合一套完备的、可循环的机制,驱动NULS项目甚至整个生态,健康可持续发展。
区块链大本营:NULS的核心产品是多链和跨链,在NULS上,人人都可以发链,是如何实现的?
张星:我们有模块仓库,企业根据自身需求选择相对应模块,就可以组成一条链。
未来的区块链生态是非常多样化的,不同的链之间有不同的共识算法,不同的链有不同的配置,比如说性能、出块时间,应用场景各不相同。那么,如何去实现链与链之间的互联互通呢?
我们用模块把不同的链连接起来,可以是NULS生态中的不同链,也可以是NULS和比特币等进行连接,连接场景多样,跨链技术则可以保证链与链之间的数据互通。
区块链大本营:为什么将开放、自由、自治和进化写进NULS创世区块里?
杨霖:这4个词我们做了中英文等11个版本放到创世区块里。未来区块链的发展,至少是在公链这一领域的发展,一定要做到开放,这是前提。自由、自治、进化则是我们需要达到的目的。
实际上,很多人并没有理解到区块链真正的核心理念,很多项目还在按照传统机制操作。如何判断我们这个团队是否成功?唯一的标准就是NULS在核心团队离开之后,能不能继续正常运行下去,若能,那么我们这个项目就是成功的。
我们核心团队只是将NULS从无变有、从零变一。而要实现从一到无限,则需要让社区、让更多的人参与进来,一起把它发展壮大。
区块链大本营:很多人看好区块链的未来,也有很多人认为区块链仅仅是个骗局,你怎么看这个现象?现在区块链人才奇缺,你们招人时都有哪些标准?
杨霖:在目前从事这个行业的人之中,有一类可能是真正有信仰的,另一类可能是想尽办法去赚一笔,我很佩服现在币圈里面的一些大佬,他们进入区块链行业非常早,有是2010年、有的则是2012年,在经历了2013年大低潮之后,他们依然坚持在这个行业,且一直在为这个行业做他力所能及的事。
比如说投资NULS的比特大陆,我们仅聊了半小时,他们就决定对我们进行投资。他们这笔投资肯定不是用来赚钱的,而是希望能通过提供这笔资金增加我们在技术上的投入,将跨链方式做出来,共同制订一套跨链的协议和标准。
实际上这种行为是在为整个行业做贡献,我相信这一部分人对未来的展望肯定是深信不疑的。我觉得区块链技术必然是改变我们生活方式的一种新技术、新机制。也许,不单单是靠区块链技术,有可能是与AI和物联网等新产业技术的结合。
所以,在此过程当中会有越来越多像我这样深信不疑的人融入进来,首先是投资者,接下来便是从业人员。
现阶段国内真正懂区块链技术的人才并不多,美国相对来说好一点。
实际上我们招人的要求还是比较严格,只是压根没想过去招直接有区块链技术和经验的人,因为没人,根本招不到。
而我们招人的重要标准有两条:
一是对技术有一定积累并达到一定高度,到岗后能快速上手;另一块则是可培养的,在编程方面有高成长性的人。
随着区块链大潮的到来,越来越多的人正在投身区块链生态建设。但我们仍要清楚地认识到,区块链技术还处于早期阶段,难以进行大规模的商业应用。正是准确地认识到这个行业痛点, NULS团队,才将我们带进区块链的“云时代”。