如今去中心化交易承担着交易速度过慢和有限的可扩展性带来的弊端。虽然一些解决方案已经被提出,但是实现这些方案所要付出的代价,往往是限制交易对可能性的数量,或者依托中心化的交易委托平台,而中心化的交易委托簿则易受人为篡改和黑客攻击的影响,从而存在伪造交易和作弊的可能性,以及面临资金被盗的安全风险。本文为跨境交易等支付生态,构建出一套避免了上述缺陷的、从真正意义上实现去中心化的数字交易系统。我们使用“跨链闪电交易”作为核心,它利用闪电网络的可延展性使得交易方在几乎任意区块链间的高速交易成为可能,同时通过存储在 IPFS 上的脱链交易委托簿对汇率进行实时检测。考虑到对生态环境的影响,我们使用既高效节能又减轻图论问题的共识机制。
本文旨在提供 AtoX 区块链体系结构和相应的 AXC 代币功能的概述。Section 2奠定必要的技术背景基础,其中涵盖的专业术语将用于描述section 3所阐述的交易脚本,以及section 4中的跨链闪电交易。Section 5将描述交易委托簿的功能。Section 6对构成闪电网络的不同节点做出区分,并且在section 7中对区块奖励体系作出解释。
历史工作。 Tiernan 在 2013 年就提出了基于哈希时间锁 (Hashed TimelockContracts)[ACCS] 的 ACCS(atomic cross-chain swap,原子交叉交换) 协议,然而该协议直到 2017 年 SegWit(Segragated Witness Consensus,隔离见证)扩容方案 [SegWit_activation] 的正式启用,才终于结束了它不能被真正实行的历史。SegWit 使交易延展性 (transaction malleability) 问题得以被修复,同时也使得 Poon’s and Dryja 闪电网络 [lightning_network] 具有了能够被安全地在比特币区块链上执行 [BTC] 的可能性。IPFS(InterPlanetary File System,行星文件系统) 是一个内置了版本控制的分布式文件系统,它通过内容寻址超链接,从而在区块链上进行高效的数据存储 [IPFS]。
1. 理论基础
从技术角度上看,AtoX 区块链可以被看作是一个“标记状态转移系统(labeled state transition system),其“状态”被记录在共识分类账上。下文对其进行的解释并非深入到全部细枝末节,只是区块链技术广袤海洋中的小小一粟。
1.1 密钥和签名
AtoX区块链使用由[FIPS-186-4]定义的经典ECDSA算法(Elliptic CurveDigital Signature Algorithm,椭圆曲线数字签名算法),采用被 [Secp256k1]提出的,业已广泛应用在诸如比特币区块链和以太坊区块链等主链结构的Secp256k1 参数。我们定义密钥为一个整数 d E [1, n − 1],其中 n满足Secp256k1 标准。公钥则根据私钥 d,被一个公钥生成函数
交易地址进一步根据公钥 Q 被生成,但由于生成该地址可以被看作完备定义的映射,因此为了表达简便,我们在这里就简单地假设交易地址等于公钥。
1. 2 交易
基于比特币交易系统构架和绝大多数加密货币至少都有着与其同样的交易功能这一客观事实,我们把“交易”的概念按照下文的方式构建。
是单射 TXID 生成函数 (TXID generation function)H 的值域,是一个加密散列函数。把输入列表和输出列表中的第 i 个分量上的投影记为 pi,交易这一概念的构成,就可以借助下图的结构进行理解:
在后面的section 3中,我们将使用该二元函数以指定和例举各种交易。
1. 3 标记状态转移系统
在上一节的基础上,我们便可以把标记状态转移系统 (S, Λ, →) 定义为一个满足下面性质的系统。即 (S, Λ, →) 满足:
2. 脚本
现在我们来构建各种 ScrSig 和 PKS 函数。对于标记状态转移函数中的输入脚本必须位于 PKS的 1 次逆像中。这些输入脚本和 PKS函数都终将由代码来定义和实现,一系列具有实用价值的协议便可以被这些代码构架并实现出来。需要注意的是,尽管以下示例仅仅用比特币 Script 语言编写,但是由于比特币脚本本质上代表了用 Solidity 语言 (以太坊脚本语言) 所编写的脚本的一个子集,因此以下的每个语句也都同样适用于 Solidiyt 脚本。
2.1 多重签名合约
2.2 哈希锁合约
哈希锁合约 (HashLocked contract),简称 HLC 是一个具备以下 PKS 形式的输出
2.3 哈希时间锁合约
3. 跨链闪电交易
AtoX 区块链的核心功能之一就是跨链闪电交易。为了阐释该功能,我们首先来就跨链闪电交易的两大基本理论基础,即原子跨链交易和闪电网络分别展开讨论。
3. 1 原子跨链交换
原子跨链交换 (atomic cross-chain swap) 简称 ACCS,是一份旨在实现把属于两个不同区块链上的代币进行交换目的的协议。本文所使用的 ACCS协议是被 Noel Tiernan 首先提出的 [ACCS]。
3. 2 闪电通道
Poon 和 Dryja 在文章 [lightning_network] 中描述了“闪电网络”的概念,闪电网络的具体实行详情参见 [BOLTS]。简而言之,交易双方开放一个所谓的“闪电通道”,并且在闪电通道上冻结双方区块链上一定数量的资金作为交易基金。各交易方通过“闪电通道”生成脱链交易,以重新定义基金中各方所占有的份额。通道通过 HTLCs 被连接在一起,并且速度能够达到即时交易的程度。尽管交易各方都关闭各自的通道 (对每个通道都执行双侧关闭) 是更加经济的操作,但是单方进行单侧通道关闭也是完全可以的。
3.3 跨链闪电交易
通过在脱链闪电通道中发布原子跨链交换,跨越不同区块链上的闪电网络来实现价值交换就得以实现了。这使得跨链闪电网络的交易速度可以与中心化交易相媲美,而无需第三方作为起到资金缓存作用的交易平台介入。下图为 P1,P2 和 P3 的三方交易示意图,其中 P1 和 P2 在两个不同区块链上开放闪电通道,并通过通道彼此连接,P2 和 P3 在上面的两个闪电网络上通过各自的通道被连接。
4. 交易委托簿
建立在 IPFS 上的去中心化的脱链委托交易簿,是一个用于检索和共享IPFS 对象的 P2P 系统。IPFS 使用 Merkle DAG 系统以确保所有被永久存储的数据都具备唯一性和防篡改性。
4.1 IPFS
IPFS 对象可以被看作是一个元组 (d, l),其中 d代表一个非结构化二进制数据 (≤ 256 kb ),l代表一个链接结构数组。链接结构是 3-元数组 (N,H,S�),其中 N表示链接名,H表示 IPFS 对象的哈希,S 表示 IPFS 对象大小。超级节点为每个交易储存以下三个文件,这些文件将持续被更新:
1. 一个包含交易委托簿的文件。只有有效交易委托 (详见下文) 才能被写入交易委托簿,部分执行的委托将被更新,而执行完毕的委托将被删除。
2. 一个将会被持续重写的,包含被成功执行的交易委托的文件。它将起到计算汇率的作用。IPFS 就像 Git repository 一样随着时间来跟踪版本,因此以往的汇率可以被从文件历史记录中其取出来,并汇聚在一起形成历史汇率表或者历史汇率图线。
3. 一个包含跨链闪电网络中当前活跃闪电节点列表的文件。
交易委托簿的 Snapshots 会被存储在 AtoX 区块链上。
5. 节点种类
我们在跨链闪电网络中区分四种对象类型,即用户、普通节点、备选节点和超级节点。
首先我们对通常意义上的“跨链钱包”做出概述(我们的跨链钱包以Atox Swapp App 的形式呈现),然后对上述四种对象进行解释。
5..1 跨链钱包
钱包 (wallet) 是一个实现确定性功能的软件,这里的确定性功能则是指将加密货币的私钥映射到对应的公钥和地址。应用这些功能,钱包可以在给定私钥的情况下,重建出相应的地址,并通过添加尚未花费的交易输出量,方便地向拥有该私钥的个人显示出该地址可用的资金数量。钱包还可以重建储存在区块链上的该地址的支付历史。
虽然闪电交易的开仓和平仓交易被储存在各自的区块链上,但是基金再分配合约却由于是脱链合约的缘故,并不会被储存在区块链上。这意味着如果个人丢失了仍然开放着的闪电通道上的脱链交易历史记录 (例如储存交易历史的物理设备损坏),那么这条闪电通道上的基金会被冻结,直到另一个交易方单向关闭这条通道为止。如果交易双方都丢失了各自的脱链历史记录,基金将永远丢失。因此,个人应该尽可能只和受信对象进行通道连接。这里的受信对象,指的是其被信任采取了例如拥有物理备份等安全设施。
跨链钱包 (multiwallet) 是多个钱包的集合,并同时具备发起跨链闪电
交易的功能,这个功能使得连接到子钱包地址的资金可以被交换。跨链钱包给人以“所有的资金都可以在一个地方进行管理”的直观感受。对于相对保守的个人而言,这样一种兼并跨链闪电交易功能的跨链钱包,可能会带来更多“货币换货币”的真实感受,而不是像股票交易那样的“代券交易”。对于喜欢冒险的个人而言,跨链钱包通过展示历史汇率和用户感兴趣的各种指标等功能,提供交易平台的体验。
从表面上看,我们的跨链钱包似乎和其他跨链钱包并无不同。然而,我们跨链钱包中的货币交换不是由任何中心化交易执行的,因而我们的技术对于终端用户来说极大地提高了安全性:私钥全部掌握在用户自己手中而不存储在“可被黑客攻击”的交易服务器。恶意方唯一盗取资金的方法只有通过获取用户的私钥,类似传统银行业务里窃取 PIN 码。
使用跨链钱包的用户需要向跨链闪电网络支付对应交易额百分之 0.2价值的手续费。
5. 2 用户
用户 (user) 用户是能够向跨链闪电网络发起交易的对象。用户可以是通过跨链钱包 APP(例如 AtoX Swap App) 与跨链闪电网络交互的人。用户也可以是连接到跨链闪电网络的交易算法实例,通过发出跨链闪电交易自动执行交易。
5.3 普通节点
普通节点 (regular node) 是为用户充当跨链闪电网络接入口的物理设备。由于我们不使用 POW(proof-of-work) 机制,普通节点因而并不需要具备巨大的计算能力。但是普通节点需要拥有稳定并且强大的互联网连接,因为它将被用作闪电网络的顶点,应该能够连续启动和运行,以充当用户间跨链闪电交易的中间人。普通节点至少应该连接至一个超级节点,超级节
点概念将在后文进行解释。作为整个网络的基础设施,普通节点获得的奖励来自以下两个方面:
1. 闪电交易手续费:这部分手续费由普通节点自己任意设置,可以随意高(或者更有可能是比较低)。闪电网络选择交易双方之间“阻力最小路径”,并以此确保手续费保持在合理的均衡状态下。换句话说,如果一个普通节点把自己的手续费设置得过高,它则不会被闪电网络选择为闪电交易中间人,因此也就赚取不到任何手续费。从另一角度来看,比较低的手续费也足以能保证节点运行成本(例如网络成本和电力费用)。请注意,由于普通节点只需要具备最低级别的硬件配置,电力成本和生态环保方面的影响会比基于 POW 的机制低好几个数量级,其副作用之小和低廉的手续费甚至不堪匹配(现实中无论各行各业,低价导致的往往是巨大的副作用)。
2. 从与之连接的超级节点处获取区块奖励分成。分成额度可以由超级节点自己设置。和交易手续费的平衡体系类似,普通节点更有可能去连接分成额度高的超级节点,所以区块奖励分成数额最终也会达到合理的均衡状态。对于超级节点来说,尽可能地被更多的普通节点连接是至关重要的,其重要性将在后文里解释。
5.4 备选节点
备选节点 (entitled regular nodes) 备选节点是拥有参选超级节点资格附加权的普通节点。为了防止试图在跨链闪电网络上建立恶意子网络的行为,我们出于安全考虑人为地设置了这一门槛。备选节点将会从至少持有 10000枚 AXC 的,过往表现最突出的普通节点中选出。席位限定为 70 个。
5.5 超级节点
超级节点 (supernode) 超级节点也是物理设备,除了充当普通节点外,还负责验证 AtoX 区块链上新交易的完整性。跨链闪电网络的超级节点席位限为为 35 个。与普通节点类似,超级节点的奖励来源为:
1. 闪电交易手续费。与普通节点和备选节点没有区别。
2. 区块奖励。超级节点提出 AtoX 公共分类账的下一个 snapshot(即提议下一个将被添加至 AtoX 区块链的区块)。如果该区块被其他超级节点接受,它就会被写入分类账,同时成功生成该区块的超级节点将以AXC 代币的形式获得奖励。超级节点与连接到它的普通节点们分享区块奖励。连接到某个超级节点的全部普通节点以及他们所完成的交易事务,计为这个超级节点的“贡献”,而超级节点成功生成出下一个区块的概率,则是由他的“贡献”占整个跨链闪电网络的百分比所决定的。因此对于超级节点来说,设置合理的区块奖励分享机制,吸引越多普通节点与之连接,也就越有利于其自身提高贡献百分比,从而提高获得区块奖励的概率。
6. 区块奖励
区块奖励来源于两个方面。
1. 每个区块的固定奖励。它为整个系统产生新代币。
2. 以往的跨链闪电交易所收取的 AXC 手续费。超级节点因此会自然而然地被激励优先处理手续费较高的交易。
请注意,我们的共识机制与被严厉批评的传统 POW 挖矿的区别非常之大,但是我们的区块奖励机制却与之类似,因为这种奖励机制已经通过检验并且运行良好,已经被证明完全足以达到预期结果。这种奖励机制还蕴藏着一个含义:以 AXC 形式被支付的交易手续费将会被分配给参与了交易进程的节点们。
6. 1 RPCA
许多加密货币采取 POW(proof of work) 共识机制。这种方法通过限制首区块散列哈希的允许值集,人为地提高了生成新区块所需要的计算能力。POW 浪费了大量电能 (参考 [energy_consumption] 和fig. 1,可以用[energyconsumption2] 中的数据可视化)。常见的替代方案是 POS 共识机制;然而,这种共识机制还会被以下两个方面诟病。首先,对特定版本的POS 区块链进行投票不需要任何资源,因此也没有机会成本。这意味着,理性的矿工应该简单能轻而易举的看到每一个竞争分支上进行开采,以便最大化他们获得多开采回报。第二,存在“主体性薄弱”的问题。这个概念是指第一次上线的节点必须向可信资源请求有效链的哈希值是多少。这完全破坏了区块链的可信度,许多人认为区块链是区块链技术的“杀手级应用“。所有运用 POS 共识算法的区块链都有这个问题。
因此,我们的应对方法类似于 RPCA 共识机制。它不被认为是 POW 或者说 POS,而是围绕着网络中受信任节点之间的“投票”机制。为了保证网络的正确性和一致性,所有节点每隔几秒钟就应用一次 RPCA。一旦达成共识,当前的分类帐会被认为是“关闭”的,并且成为最后关闭的分类帐。假设这种共识算法是成功的,并且网络中没有分叉,那么网络中所有节点维护的最后关闭的分类帐将是相同的。这意味着这种经常挖矿是没有必要的,RPCA 是迄今为止实现交易确认最有效的方法,比 POW 和 POS 更为有效。
评论
查看更多