Author

Topic: [Ardor, ARDR] 阿朵区块链平台设计 (Read 423 times)

member
Activity: 225
Merit: 72
December 30, 2018, 07:40:13 AM
#6


- Countdown: Time to MPG childchain and $Ignis #LightweightContracts will be activated (543000) ~ 11 days 04:58:21.
- Happy New Year!
- Ardor World Annual Digest 2018
link: https://www.ardor.world/en/

https://twitter.com/m4kstep/status/1079344330949775361
full member
Activity: 229
Merit: 105
 现在早就没有当年那种小盘子暴富的机会了
newbie
Activity: 42
Merit: 0
NXT 21BTC就可以开发出来  真想不明白其他项目真的需要几千几万个币来开发吗
当时21个BTC就能开发出一个伟大的项目,而且还是单凭一个人就搞定,现在动不动就几千万上亿美刀,而且什么东西都没有,只能说币市越来越不健康了
hero member
Activity: 616
Merit: 500
NXT 21BTC就可以开发出来  真想不明白其他项目真的需要几千几万个币来开发吗
sr. member
Activity: 378
Merit: 250
介绍

由Jelurida开发的Nxt加密货币平台已经投入运营、并被积极应用于产品之中,到目前为止已有3年余。它坚实的设计及稳定性已在实践中得到证明,并经独立专家进行过代码评审。

Nxt平台使用JAVA这种对金融应用而言具有行业标准领导性的语言进行开发,因此Nxt平台可以快速发展和添加新的特性。作为第二代区块链,而非比特币的克隆,它从零开始被设计成一个远不止能简单进行货币转账的平台。它支持用户创造的代币交易(资产交换)、登记和购买数字商品、创造自定义货币(货币体系)、去中心化众筹、计票选项非常灵活的投票系统、有条件转账(分阶段——类似于比特币的多重签名,但更强大)、账户财产、发送消息、使用别名等众多功能。过去三年中,开发团队以每几个月完成一个新特性的速度,轻松实现了上述功能,这证明了Nxt平台是经过了优良设计并且具有足够灵活的架构。
Nxt平台的局限性

Jelurida团队持续从那些想要使用Nxt平台的企业处获取反馈意见,也一直在努力使Nxt平台从长远来看更具灵活性和可拓展性。

基于这些反馈,当前Nxt的一些局限性得以显现。一个局限是所有的平台功能需使用相同的代币,例如“NXT”币,不仅用于向网络支付交易费用,而且大部分交易需要使用相同的代币来衡量价值,例如资产交换的买/卖挂单,货币商品在市场上登记,货币体系货币的汇率。 对大部分企业而言,他们想要定制那种有他们自己的可支付代币的区块链。就Nxt平台的现状来说,要达成这一目的就只能提供一个Nxt的“克隆”,也就是一个完全分离的区块链,一个运行在经过修改的Nxt代码上、但不以其他任何方式与原版Nxt发生连接的“克隆”。这一解决方案的缺点是:想要试用这种“克隆”的企业必须自己运行维护服务器,以完成区块生成和处理交易。而大部分小企业出于成本考量只能运行少量服务器,少量的账户负责区块生成(也叫“锻造”)意味着降低系统安全性,与目前有着许多独立的锻造账户在数百个服务器上运行的Nxt公有链相比,劣势不言而喻。并且这样的“克隆”在特性增加和安全漏洞修补方面势必落后于最新的公有链。

目前Nxt设计的另一局限,也是其他所有区块链平台普遍存在的,即所谓的区块链膨胀。这是由于每个节点需要存储自区块链开始运行以来创建的所有交易,不仅要储存它们,而且当它首次下载区块链时要对它们进行再次处理。这是一个起源于区块链平台“无需信任”设计的安全要求。作为一个“持有量证明”的加密数字货币,在给定的的区块链高度下,账户余额(股份)以伪随机的方式决定了此账户是否能够生产(“锻造”)下一个区块。对一个从头开始下载区块链数据的节点而言,要想确定即将下载的下一个区块是否是由一个合法账户(例如:拥有足够的股份)生成,唯一的办法是,通过处理下载时遇到的每一个旧的转账,来确保它计算和验证了所有的账户余额。这意味着,随着区块链大小及每秒交易数量的增加,处理瓶颈只会变得愈加严重。

虽然当前交易处理速率膨胀仍不是大问题,而且我们已经想出几种创新方案来更大幅度削减膨胀(例如:可修剪数据——允许从区块链上选择性移除数据,待需要时再自动从存档节点上以无需信任的方式恢复回来),但从长期来看膨胀确实是一个严重的问题,为了区块链能够经得起未来的考验并具有可拓展性,该问题必须以根本的方式来解决。
建议的解决方案

Jelurida开发人员已经确定了一个优秀的方案来解决上述Nxt软件存在的局限。该方案建立于现存的设计和代码基础之上,再次使用那些经过时间考验的平台功能而不是重新构建它们。新一代Nxt平台构架——Nxt2.0,现在被称为“Ardor(阿朵)”,将保持一贯的安全性和稳定性,同时提供可拓展性和更佳的灵活性,带领系统迈向未来。

Ardor(阿朵)设计的根本理念,是将“锻造代币”和“交易代币”做清晰的分离。在Nxt平台中,NXT币负有双重功能,既被用于决定锻造股份,如:一个账户创造区块的权利,又被用于执行各种价值转移交易,如:价值单位的表示。在Ardor(阿朵)平台上,通过将这两个功能分离带来更佳的可拓展性和灵活性——以减少区块链膨胀来实现可拓展性,以允许使用多种其它交易代币来实现灵活性。就具体实施效果而言,就是允许自定义"子链"存在并运行在由相同节点组成的同一个网络之上。
执行细节

在Ardor(阿朵)平台上,单一区块链被一条锻造链(在其上的交易均以同一个代币为计价单位)和数条子链(每条子链都有各自的交易代币)的联合所取代。阿朵币>

锻造链仅支持有限的交易类型,例如:账户间的Ardor(阿朵币)转账,Ardor(阿朵币)与子链代币间的来回交易,租赁Ardor(阿朵币)余额到其他帐户以进行锻造,以及一种特殊的交易类型:"子链区块交易”。每个帐户的锻造能力取决于该账户的Ardor(阿朵币)余额,正如同在Nxt系统中是根据账户的NXT币余额来决定该账户的锻造能力,Ardor(阿朵)在这一点上与Nxt是完全一致的,共识模型与Nxt相比保持不变。所有改变Ardor(阿朵币)余额的交易都会被记录在锻造链中。这样,下载和重新处理锻造链的交易这一机制能提供持与当前Nxt平台完全一致的“持有量证明”安全性。但所有只改变子链代币余额的交易,或子链上任何其他账户财产(如资产或者货币),都不会被记录到锻造链中,而只会被记录到相对应的子链中。因此,对那些不再需要的的子链数据的移除(或称“修剪”),将不会影响区块链的安全,因为Ardor(阿朵)账户余额的有效性会以无需信任的方式被每个节点验证。

当然,子链交易的有效性和账户余额(原生代币)也必须经过平台确认,这是通过上述“子链区块交易”将它们固定至锻造链中来完成。这种特殊的交易类型将一个含有单个或多个属于某一子链的交易列表作为附件包含其中。例如那些以该子链代币计价的、仅仅影响该子链的账户余额和资产的交易。事实上,该附件代表着子链上的一个“区块”。虽然子链上并不真的存在锻造(或者说区块生成),但是,该附件通过一个唯一的加密哈希与“子链区块交易”连在一起。这样,即使一段时间之后,附件所指向的真实内容已被修剪,交易签名验证仍然是可行的。这里用到的设计和技术已经在当前的Nxt平台上实施并有应用成果——可修剪信息、可修剪数据(“云数据”模块),以及以之配套的、由用于特殊目的归档节点组成的网络。

运行于阿朵区块链上的每一个节点,可以在修剪前对所有子链交易予以验证。一个从头开始下载区块链的节点自然无法对经过修剪的子链交易进行完全验证(仅能对其哈希和“子链区块交易”签名予以验证),但这并不会降低区块链的整体安全性,因为它仍能验证出,锻造出这些区块的账户在当时是否确有资格进行锻造。而且,在所有数据都还齐全时,那些交易必定已经由所有已更新至最新的节点验证过,才会被包括进当前这条由绝大多数节点选择胜出的(最佳难度)区块链分支。

所有链上的交易必须经过所有节点的处理。所有节点承载所有子链上最近1440个区块的交易,直到失效期限或者分阶段转账所约定的区块高度到达,以二者中孰长为准。在达到上述最短保持期时,普通节点上的子链交易就被彻底修剪,但存档节点可以选择以更长时间或者无限期地存储一个或多个子链。

除了锻造链上的交易和区块以外,每一个节点还要存储所有账户的当前状态,包括子链原生代币余额、资产和货币系统余额、账户财产、别名以及由交易产生的所有其他对象和账户资产。任何可能涉及到未来交易验证的状态都必须保留。而720个区块的滚动分叉决议期限一旦过去,更早期的状态(例如,余额和资产的价值)就无需保留。即使现在,这种状态移除(“删减”)仍在进行。在当前的系统中,一个从头开始下载区块链的节点要重新处理所有过去的转账,这就需要重新创建每个过去的状态,然后随着处理的进行再做删减。在Ardor(阿朵)平台上,这些往期的交易势必也已经被修剪,因此,想通过回溯过往状态来达到当前状态变得不再可能。为了解决这一问题,需要实施快照和快照传播。

每个节点会定期对所有推导目标的状态进行一个快照计算,该快照哈希将由锻造者纳入当前的区块中。处于同一个分叉上的所有已更新至最新的节点具有完全相同的状态,因此能够对快照哈希予以验证(并对无效区块予以拒绝)。将有一个协议被定义为:未更新至最新的或是从头开始下载区块链的节点,可以向已更新至最新的节点请求最新的快照,通过已纳入区块链中的哈希对其予以验证,并以去中心化的方式对其进行下载。通过这种方式,落后节点无需对已被修剪的交易进行重新处理,亦可赶上最新的系统状态进度。

当快照哈希被算出后,快照数据本身并不需要特别进行网络传播。每一个已更新至最新的节点已经存有所有子链的状态,因此可以自主生成快照。节点只需验证,锻造者计算出来的快照哈希是否与快照相匹配。

子链上的交易费以该子链的原生代币计价结算,但锻造链上的区块锻造者却只接受锻造代币(Ardor阿朵币)作为费用结算。这就需要把子链上归集的作为交易费的子链原生代币转换为Ardor(阿朵币),因此要引入一个新的角色:“集束者”或称“子链区块创造者”。任何账户,只要它愿意接受子链区块上归集的交易费(以子链原生代币计价),并向锻造链上的区块锻造者支付所需费用(以Ardor阿朵币计价),都可以成为子链区块的创造者。这样,子链原生代币兑换Ardor(阿朵币)的市场兑换率就产生了。如果按照当前的市场兑换率计算,子链上的交易发送方以该子链原生代币支付的交易费用在换算为Ardor(阿朵币)后金额过低,则没有人愿意为该交易提供子链区块集束服务,因此交易发送方必须在重新提交交易时提供更高的交易费用,直到有人愿意为该交易提供集束服务为止。如果某个子链代币完全失去价值,没有人愿意将其兑换为Ardor(阿朵币),则该子链上的交易处理自然会中止——除非有人愿意为保持该子链存活而支付补贴——为该子链的交易创造子链区块,自掏腰包向锻造者支付必要的Ardor(阿朵币),而只收取已无价值(就市场自由兑换率而言)的子链代币作为回报。

子链之间会为被纳入区块而相互竞争,因为最终锻造者仍然要着眼于每一笔交易的费用/数据大小之比,以期在主链区块大小和交易数量的限定范围内实现锻造利润最大化。
收益

可拓展性的好处应是显而易见的。新的节点只需下载并处理锻造链的交易以及最新的状态快照,而无需对旧的子链交易进行验证和处理,从而实现巨大的性能提升并节省存储空间。所有子链上旧的交易都可以予以修剪,只在存档节点上做保存。未来这将可以发展为一个专门存储服务供应商,提供付费存储服务,而且依然是以无需信任的方式。

每一个阿朵子链都有自己的原生交易代币,该代币将具有独立的市场价值,或者由子链创造者将其与外来的价值单位(比如,BTC、法定货币或其它资产)进行挂钩。

这种透明的方式,让交易发送方自己选择代币来完成交易成为可能——你想以哪种代币进行结算,就选择去包含那种代币的子链上完成交易即可。比如,资产不仅可以用火链(Ardor阿朵公开平台上首个也是默认的子链代币)进行交易,还可以用BTC或EUR,只要存在着其代币与这些货币挂钩的子链即可。又如,在某一子链上上架的数字商品将自动以该子链代币计价,等等。

由于每个子链上的交易均以其原生代币结算,因此该子链的用户无需为了支付交易费用而去持有阿朵币。终端用户甚至无需了解——有一条只接受Ardor(阿朵币)结算的锻造链存在——这一事实。子链创建者可以通过承担用户的交易费用来资助其子链,甚至对那些还没有市场价值的代币也一样。

由于所有子链均采用相同的代吗,因此他们全都支持相同的特性(交易类型),在Ardor(阿朵)正式发布时,所有当前Nxt平台上的特性都将被支持(并增加少量新特性和改进)。但是,子链可以出于自身考虑做一些选择性的限制,例如仅支持全局许可交易类型中的某一子集,从而把该子链创建者业务上不需要的特性、不可取的特性、或者在其所处司法管辖区内受到法律限制的特性,都排除在外。

对于以子链代币结算的交易,子链可以进一步制定强制性规则,例如许可、限制某些账户才能被授权发起特定的交易类型,从而实现一些特定目的,例如配合那些与法币挂钩的子链所必要的KYC规则,又如在资产交易方面,对谁能参与交易这一管辖权作出附加制约。

虽然子链具有自己的代币,但是,其安全性离不开一个事实,即所有节点对所有链上的交易进行验证。由于子链上不存在锻造,所以,即使某个子链只有少量活跃的用户而且日交易量并不多,那也无所谓。因为有庞大的Ardor节点网络来保证其安全性。想使用区块链的小规模企业不再需要运行自己的服务器和锻造节点。锻造链可以为所有子链提供安全保证,从子链上收取费用作为回报。相应的,每一个子链获得修剪数据的能力。子链不再需要出于安全考虑而保存从创始块开始的旧数据,因为他们本身并不锻造 。

因为所有节点都运行着相同的软件,所以,新特性、问题修复、安全补丁都会自动适用于所有子链。这与当前那种通过克隆产生私链的解决方案相比具有相当大的优越性。因为克隆私链的方案需要为每一条克隆链提供单独定制,这很容易造成更新落后或是不能和主Nxt平台保持同步。
实施阶段

Nxt2.0/Ardor设计的全面诞生不可能一蹴而就,而是如大型软件项目常规的情形那样,计划分几个阶段实施。

A.首先,一个包含锻造链及少数几个硬编码子链的系统将会被创建。这已在公共的阿朵测试网上实现了,并计划在2017年第三季度发布产品。每个子链都使用各自的原生代币,子链交易被集束继而通过“子链区块交易”进入锻造链 。然而,即使对这些交易的进一步修剪是可能的,修剪在此阶段仍未被实施。由于系统才开始运行,总交易量在发布后的头几个月会比较低,所以修剪还不是很必要。快照计算和传播在这一阶段也不会被实施。由于不存在修剪,此阶段所有的节点将存储所有的子链数据。

B.接下来,修剪、快照计算和快照传播将被实施。该功能预计于2017年第四季度在测试网上线,于2018年投入生产。此阶段子链数据修剪已成为可能,甚至可以追溯运用于那些在A阶段已完成的交易,因为它们从一开始就被设计为可修剪。每一节点将只存储节点所有者感兴趣的子链交易,存档节点则提供过往交易数据下载服务,供其他人下载。此阶段,创建子链将仍需通过人工操作。

C.子链创建全过程的完全自动化。用户将能够创建他们自己的子链,而不用依赖于Jelurida开发团队。在此阶段,我们将能够更好地理解子链创建者的真正需求,理解一个子链需要消耗的资源和需要定义的参数,这样就可以让用户自行添加他们所需的交易类型,实现自动化处理,形成全自助式服务。

D.“透明锻造”设计的先进理念在这一阶段将会就位,如:基于对下一个锻造者预测的基础上,允许降低区块生成时间并增加交易处理吞吐量,惩罚失职的锻造者,直接将交易发送至下一个锻造者的锻造中枢等等。许多潜在的改进只有在交易处理量很大时才有需求,而这种需求的满足要以可拓展性和减少区块膨胀这两个特性已在前几阶段实现为前提。

https://www.jelurida.com/zh-hans/%E9%98%BF%E6%9C%B5%E5%8C%BA%E5%9D%97%E9%93%BE%E5%B9%B3%E5%8F%B0%E8%AE%BE%E8%AE%A1
Jump to: