飞天机链(FTJ Chain)是新一代智能合约区块链平台

FTJ Chain(飞天机链)是新一代智能合约区块链平台。由新西兰Kiwibank投资公司旗下基金会FTJFOUNDATION领航发起。通过社区联盟以及FTJ数字通证的激励方式打造粉丝共识,从而打造飞天计划并完善和搭建部落崛起的FTJ Chain。
1. 定位

FTJ Chain(中文:飞天机链),充分吸取比特币和以太坊的优势,融入三大区块链技术:

分片技术(sharding):减少每个节点所需纪录的数据量,并通过平行运算提升效率。
支链架构(Plasma):用较小的分支区块链运算,只将最后结果写入主链,可提升供单位时间的工作量。
状态通道机制(state channels):原理类似比特币的闪雷网络,可提升交易速度、降低区块链的负担,并提高可扩展性。
FTJ Chain致力于搭建区块链新一代智能合约和去中心化应用平台。以满足全球化多方位的企业级应用的生态平台。最终实现底层技术支持、货币存储、流通支付、去中心化货币交易的多方位数字货币生态。以满足区块链搭建、新零售、金融、地产、游戏、娱乐、社交媒体等多元化应用需求。

2. 设计理念
> 免费的使用
FTJ Chain是一个可以免费供用户使用的区块链平台,其开放、公平、透明、全球性的属性将赢得更为广泛的使用。 能满足开发者和企业制订有效的货币化战略。
> 简洁原则
FTJ Chain协议将尽可能简单,即便以某些数据存储和时间上的低效为代价。一个普通的程序员也能够完美地去实现完整的开发说明。这将最终有助于降低任何特殊个人或精英团体可能对协议的影响并且推进FTJ Chain作为对所有人开放的协议的应用前景。
> 通用原则
没有“特性”是FTJ Chain设计哲学中的一个根本性部分。并提供了一个内部的图灵完备的脚本语言以供用户来构建任何可以精确定义的智能合约或交易类型。
> 低延时
高延时会阻碍用户,并且会让构建在区块链上的应用比已有的非区块链应用缺乏竞争力。但是,在FTJ Chain系统平台中,用户只需在数秒内就能收到可靠的反馈,能满足纵向和横向的多维度商业需求。
> 模块化原则
FTJ Chain的不同部分被设计为尽可能模块化的和可分的模块。使得用户在开发过程中,能够容易地让在协议某处做一个小改动的同时应用层却可以不加改动地继续正常运行。FTJ Chain开发秉承最大程度地做好这些事情以助益于整个加密货币生态系统,而不仅是自身。
> 无歧视原则
协议不应主动地试图限制或阻碍特定的类目或用法,协议中的所有监管机制都应被设计为直接监管危害,不应试图反对特定的不受欢迎的应用。人们甚至可以在FTJ Chain之上运行一个无限循环脚本,只要他愿意为其支付按计算步骤计算的交易费用。
> 时序性能
FTJ Chain解决了当下区块链因为顺序依赖关系的执行步骤而不能使用并发算法实现的局限。 在FTJ Chain系统中,具有足够的时序性能来处理很高的交易量,能满足高频率交易和应用,例如数字资产交易所、DApp菠菜等。
> 支持成百上千的用户
像 EbayUberAirBnB 和 Facebook 这样企业,他们需要区块链技术来处理每日数以千万的活跃用户。因此,FTJ Chain在设计哲学上基于全方位的考量构建其生态平台,可以满足极其庞大用户群体的使用。
3. 哈希函数
密码学哈希函数是FTJ Chain的基础,保证了系统中的信息不能被篡改。简要而言,哈希函数能在合理的时间内,把任意长度的输入通过散列算法,变换成固定长度的输出。 为了使哈希函数达到密码层面的应用,FTJ Chain作了如下设计:
定义一个哈希函数 Y=H(X),
①对于任何输入 X,H(X)长度永远一致;
②根据输入值 X 能算出输出值 Y,但根据输出 值 Y 无法算出输入值 X;
③无法找出两个输入值 X 和 X’,使输出值 H(X)和 H(X’)相等; 
④谜题友好性。 
其中,性质②保证了FTJ Chain信息的隐密性。性质③保证了FTJ Chain哈希函数值具有不可篡改的特性。 信息如果被篡改,那么整个哈希值会完全不同。在性质②③的前提下可以引申出性质④ 谜题友好性。我们设输出值为 Y,已知的输入值 M,要找到谜题的未知输入值 X,使 Y=H(M || X)成立,唯一的方法是尝试所有的可能输入值 X。
例如 Y 是一个 200 位的 二进制数,如果使用暴力破解,Y 所有的情况共包括 2^200中,对 X 进行随机选取, 在最差的情况下,要经过 2^200 次哈希运算,才能得到一个满足要求的哈希值。X 的随机性特征保证了求解过程除上述方法外,没有更好的办法。
4. 区块链 
FTJ Chain是使用哈希指针形成的一种链式数据结构,区块之间互相链接一直延续到创世区块,一个区块包含一段时间内的交易信息,因此FTJ Chain包含了所有的历史交易信息, 如果黑客想篡改FTJ Chain中的数据,那么前一区块的哈希值将不会与该区块的哈希指针匹配;如果黑客通过篡改前一个FTJ Chain区块的哈希指针来进行掩盖,但他会发现修改到FTJ Chain区块的头部——创世块时会遇到麻烦,因为创世块存储在黑客无法改动的地方。

5. 账户设计
不同于比特币区块链,FTJ Chain 引入了多重签名账户模型的设计。比特币没有账户概念,每个用户的余额都是从区块链上的 UTXO(未花费的交易输出)计算出来的,所有合法的比特币交易都可以追溯到前一个或多个交易的输出,这些链条的源头都是挖矿奖励,末尾则是当前未花费的交易输出。所有的未花费输出即为整个比特币网络 的 UTXO。在 FTJ Chain 上,每一个地址对应一个账户,而全局状态就是由账户地 址和账户状态的一个映射组成,该映射被保存在 Merkle 树的数据结构中。由于 FTJ Chain 拥有账户的概念,使得它在交易的可视化和查询账户状态方面具备实时性,可根 据一个地址情况实时查看当前账户情况以及交易状态。
6. 数字签名技术
数字签名是区块链的重要组成部分,保证了区块链系统的安全性。数字签名有两个重要特性,第一,只有所有者可以制作自己的签名,但任何看到它的人都可以验证其是 否有效;第二,该签名只与某一特定的文件发生联系,该签名不能用于表明所有者支持 另一份不同的文件。
数字签名方案由以下三个算法构成:
· (sk,pk):=generateKey(s keysie);generateKeys⽅法把keysize作为输⼊,来产⽣⼀对公钥和私钥。私钥sk被安全保存,并⽤来签名⼀段消息;公钥pk是任何⼈都可以找到的,可以⽤来验证签名。
· sig:=sig(sk,message);签名过程是把⼀段消息和私钥作为⼀个输⼊,对应的消息输出是签名。
· isValid:=verify(sk,message,sig);验证过程是通过把⼀段消息和签名消息与公钥作为输⼊,如果返回的结果是真,证明签名属实;如果返回的结果为假,证明签名消息为假。同时,要求有以下两个性质,
· 有效签名可以通过验证,即:Verify(pk,message,sign(sk,message))==true
· 签名不可伪造。
7. 共识机制的选择
公链共识机制的选择会考虑多方面的因素。首先,共识机制一般遵循 CAP 原则, 即一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance) 三者难以同时达到最优。其次,在选择和设计共识时,也需要考虑共识的基础性质:
(a) 可认同(agreement),所有诚实节点都认同一个结果;
(b)值合法 (validity),认同的结 果必须是一个合法的;
(c)可结束 (termination),在一定时间内一定达成共识,而不会 无休止地进行下去。 
从理论与实践相结合的角度出发,FTJ Chain 的合约链和交易链均选择BFTDPoS(Byzantine Fault Tolerance – Delegated Proof of Stake,拜占庭容错式的委 托权益证明机制)作为共识机制,具体考量因素如下:
· 基于FTJ Chain业务具体需求
FTJ Chain 为实现支持交易清算、资产上链等多功能的目标,其系统的可用性需要排在首要的地位。具体在 CAP 原则中,FTJ Chain 的设计需要保证系统的可用性和分区容错性,对于一致性可以做适当的妥协。对于强一致性方面不需要保证,只需要最终保证一致性即可,BFT-DPoS 机制的特点正与之相契合。
· 出于提高效率、降低能耗考虑 
现有区块链项目的主要共识机制为 PoW(Proof of Work,工作量证明机制)、PoS (Proof of Stake,股份证明机制)和 DPoS(Delegated Proof of Stake,委托权益证 明机制)。从效率和能耗角度考虑,PoW 和 PoS 机制在设计层面均存在部分问题。
PoW 机制的问题主要存在于算力中心化以及能耗。一方面,PoW 机制是通过节点的计算能力来进行算力竞争,随着 CPU 挖矿逐渐升级到 ASIC 矿机挖矿,出现了算力 中心化的趋势,这与区块链去中心化的理念相冲突;另一方面,PoW 浪费了大量的电 力进行运算。PoS 机制在能耗方面有所改善,但是在中心化方面仍然存在隐患。具体而 言,PoS 机制会出现持有币越多的人会获得更多的币奖励的趋势,整个网络可能会随着 运行时间的增长而越来越趋向于中心化。因此,PoS 机制虽然相对于 PoW 节省了能源, 但是其底层依然依赖于 PoW,同时也没有很好地提升性能和安全性。
DPoS 机制类似股东大会选举产生董事会的制度,引入了超级节点选举机制。这一设计机制使得区块的生成更为快速、节能。此外,DPoS 机制充分利用了持币人的投票,以公平民主的方式达成共识。投票选出的 N 个超级节点,权利完全相等,并且持币人可 以随时通过投票更换超级节点。尽管 DPoS 机制仍然存在中心化,但是这种中心化是受 到控制的,因为每个用户都有权利决定哪些节点可以被信任。DPoS机制理论上能达到 万次每秒的交易速度,在网络延迟高的情况下亦可达到千次每秒级别,更适合企业级的 应用。由于 FTJ Chain 旨在服务数字经济,对于可信环境下的数据交换和计算及其 稳定性要求极高,因此 DPoS 是更合适的选择。
· 性能提升需求
DPoS 虽然在性能方面较其他机制相对优越,但是其高性能是建立在低故障和低延迟的基础上。然而现阶段的应用场景很难保障长时间的低故障和低延迟。因此,非BFT 的 DPoS 机制可能出现潜在的问题。
在 DPoS 算法中,区块生产者们在一定时间内轮流生成一个区块。假设没有节点错过自己的轮次,那么将产生最长链。区块生产者在被调度轮次之外的任何时间段出块都是无效的。
不过可能存在恶意或故障节点创建少数分叉的情况。为了确保诚实节点所在的链成为最长链,要求诚实节点的数量占总数的 2/3 以上。例如,一共有三个节点 A、B 和C, 其中 A 和 C 是诚实节点,而 B 是恶意节点,在 DPoS 下产生一个区块需要 2秒,那么 恶意节点 B 每 6 秒只能产生一个区块,而诚实节点每 6 秒能产生 2 个区块,因此诚实 节点所产生的链永远比攻击链更长,具体如图所示。

同样地,考虑其他故障场景:比如离线少数节点的双重生产、网络分片化、在线少数节点的双重生产、法定超级节点数不足、多数生产者舞弊等场景1,均要求诚实节点的 数量需要占总数的 2/3 以上。
因此,在传统的 DPoS 机制下,为了防止出现分叉,保证交易的不可逆,需要 2/3的超级节点通过在该区块后继续生产区块的方式进行确认,比如一个系统中有 18 个超 级节点,每两秒产出一个区块,那么要达到交易不可逆就需要继续在后面产出 12个区 块,共需要 26 秒(1+12 个区块)。
为了提升 FTJ Chain 系统的性能,可以在原 DPoS 的基础上引入 BFT 协议,实现在产生区块时完成对区块签名的确认,缩短交易不可逆所需要的时间。具体而言,超级节点将交易打包成区块后用自己的私钥对该区块签名,并广播到所有节点,当超级节 点收到至少 2/3 的其他超级节点的签名区块后,该区块就完成了所有节点的验证成为不可逆区块加入到区块链中。由于每次区块在生产后立即进行全网广播,新区块链的生产 和旧区块确认的接收可以同时进行,因此,一个区块从产生到成为不可逆区块,最长只需要区块产生的时间加上其他超级节点签名确认的时间,大约 3 秒的时间。
在 BFT-DPoS 机制下,系统的出块间隔的缩短,使跨链通信的时延减小,同时单位时间内可确认的交易数量得到提升,提高了区块链系统的整体性能。
合约层设计
FTJ Chain 的合约层由多个为交易而定制的内置合约、智能合约构成,并在此基 础上实现跨链中继,从而使得 FTJ Chain 双链之间实现可信的跨链交互。 
FTJ Chain-VM 使用 WebAssembly(WASM)执行智能合约。WASM 可支持多种编程语言,采用二进制编码,占用存储空间更小,且在程序执行过程中的性能优越。
WASM 会生成中间语言——字节码,可以使用 FTJ Chain 提供的编译工具进行 编译。调用合约时,部署接口将字节码部署在链上。成功部署后,区块链上会创建一个智能合约账户,账户中存储了合约的字节码和对应的 ABI(Application BinaryInterface)。用户通过指定的合约账户名以及合约方法,利用 ABI 和智能合约交互,实 现对智能合约的调用。
最后,为了防止合约逻辑执行失败产生的问题,FTJ Chain 将参考以太坊的流程,使用 require 和 assert 解决。
1. 双链架构
双链结构主要是根据现有工程实践案例的相关设计,例如 thunder network 的快慢链解决方案,该方案可以追溯到 BTC 时期。BTC 的主要功能为支付结算,但受限于 10 分钟的出块时间,在实际应用中用户体验较差,因此需要一层 hubbased network 来做相对更快的结算。lightning network 作为第二层解决方案在保障 BTC 主链结算功能的同时,也增加了可扩展性。可以看到 lighting network通过 4000 多节点以及 12000 多个通道维护了 450 个 BTC 的网络交易。基于这个技术解决案例,我们可以在FTJ Chain的初始设计中,通过双链结构保障结算功能的同时增添可扩展性,而在其中,同时设计FTJ Chain结算公链以及FTJChain扩展公链的功能,并在连接通道上使用到 SPV(Simplified Payment Verification)和 CLTV(Check Lock Time Verify)作为主要跨链方式。 
由于 FTJ Chain 的首要目标是保证高速交易,但智能合约对系统内有效资源的消耗较大。为了在快速结算的同时保证合约的广度,FTJ Chain 在设计中将采用双链架构,分成交易链和合约链两部分: 
· FTJ Chain交易链
提供支付结算功能,如挂单、撮合、深度等功能都由其负责;
·  FTJ Chain合约链
支持智能合约,满足复杂场景的应用,提高公链的扩展性。
其中,合约链上的交易需要登记到交易链上,FTJ Chain 会提供跨链中继来实现,而合约链上会提供一个统一记账的内置合约来负责接收。 
具体而言,在FTJ Chain中,为了保证高速特性,FTJ Chain对交易 KV 对(Key Value Pair) 进行精简,同时对相关节点的机器进行优化,这大大提高了FTJ Chain网络的交易处理能力(TPS),在传输、打包时间上的损耗得到降低。FTJ Chain 在设计上要求引入多种功能特性,基于非图灵 script 和更高级的虚拟机部分的支持,将一些可内置化的特殊交易以较低的成本在终端实现。如果采用 gas limit或者控制节点机器的方式,当任何 DApp 受市场追捧而大热时,势必将会影响到整个FTJ Chain的运行。因此 FTJ Chain 将采用双链架构设计。此外,为了保证双链数据的可用性(尤其是合约链上数据的可用性),FTJ Chain 将使用 SPV 验证+类HTLC(Hashed Timelock Contracts) 主链锁定的跨链技术方式,在合约上将使用主链的 Token,交易链主要保障 KV 对,合约链上的 balance 只有交易链通过SPV 后才会产生,但合约链只有返回的交易,交易链只有进入合约链的交易。综上,FTJ Chain 将通过双链的架构设计和上述跨链技术,保证合约链的使用对交易链的 TPS 不会产生影响。

FTJ Chain 的双链架构优势显著:首先,基于链中的所有交易,都可以看作全局变量的更改,此时可采用静态的方式来保证一定作用域,在未来有更多的作用域时就可以用同样的跨链协议进行联系;其次,在合约链拥有 SPV 之后,支付在合约链和主链进行验证的步骤可异步,大幅加强了使用性以及延展性。例如,当一个合约链被几个应用占满时,可通过同样的结构开启另一条合约链。
2. FTJ Chain账户
在FTJ Chain系统中,状态是由被称为“账户”(每个账户由一个20字节的地址)的对象和在两个账户之间转移价值和信息的状态转换构成的。FTJ Chain的账户包含四个部分:

1) 随机数,用于确定每笔交易只能被处理一次的计数器
2) 账户目前的FTJ余额
3) 账户的合约代码,如果有的话
4) 账户的存储(默认为空)
FTJ(Token)是FTJ Chain内部的主要加密燃料,用于支付交易费用。FTJ Chain设计两种类型的账户:外部所有的账户(由私钥控制的)和合约账户(由合约代码控制)。外部所有的账户没有代码,人们可以通过创建和签名一笔交易从一个外部账户发送消息。每当合约账户收到一条消息,合约内部的代码就会被激活,允许它对内部存储进行读取和写入,和发送其它消息或者创建合约。
3. 消息和交易
第一,FTJ Chain的消息可以由外部实体或者合约创建。
第二,FTJ Chain消息可以选择包含数据。
第三,如果FTJ Chain消息的接受者是合约账户,可以选择进行回应,因为FTJ Chain消息包含函数概念。
FTJ Chain “交易”是指存储从外部账户发出的消息的签名数据包。交易包含消息的接收者、用于确认发送者的签名、FTJ Chain Token(FTJ)账户余额、要发送的数据和两个被称为STARTGAS和GASPRICE的数值。为了防止代码的指数型爆炸和无限循环,每笔交易需要对执行代码所引发的计算步骤-包括初始消息和所有执行中引发的消息-做出限制。STARTGAS就是限制,GASPRICE是每一计算步骤需要支付矿工的费用。如果执行交易的过程中,“用完了Gas”,所有的状态改变恢复原状态,但是已经支付的交易费用不可收回了。如果执行交易中止时还剩余Gas,那么这些Gas将退还给发送者。在FTJ Chain系统中,创建合约有单独的交易类型和相应的消息类型;合约的地址是基于账号随机数和交易数据的哈希计算出来的。
消息机制的一个重要后果是FTJ Chain的“头等公民”财产-合约与外部账户拥有同样权利,包括发送消息和创建其它合约的权利。这使得合约可以同时充当多个不同的角色,例如,用户可以使去中心化组织(一个合约)的一个成员成为一个中介账户(另一个合约),为一个偏执的使用定制的基于量子证明的兰波特签名(第三个合约)的个人和一个自身使用由五个私钥保证安全的账户(第四个合约)的共同签名实体提供居间服务。FTJ Chain平台的强大之处在于去中心化的组织和代理合约不需要关心合约的每一参与方是什么类型的账户。
4. FTJ Chain状态转换函数
FTJ Chain的状态转换函数:APPLY(S,TX) -> S’,可以定义如下: 
1) 检查交易的格式是否正确(即有正确数值)、签名是否有效和随机数是否与发送者账户的随机数匹配。如否,返回错误。
2) 计算交易费用:fee=STARTGAS * GASPRICE,并从签名中确定发送者的地址。从发送者的账户中减去交易费用和增加发送者的随机数。如果账户余额不足,返回错误。 
3) 设定初值GAS = STARTGAS,并根据交易中的字节数减去一定量的瓦斯值。 
4) 从发送者的账户转移价值到接收者账户。如果接收账户还不存在,创建此账户。如果接收账户是一个合约,运行合约的代码,直到代码运行结束或者瓦斯用完。
5) 如果因为发送者账户没有足够的钱或者代码执行耗尽瓦斯导致价值转移失败,恢复原来的状态,但是还需要支付交易费用,交易费用加至矿工账户。
6) 否则,将所有剩余的瓦斯归还给发送者,消耗掉的瓦斯作为交易费用发送给矿工。例如,假设合约的代码如下:
if !self.storage[calldataload(0)]:
self.storage[calldataload(0)] = calldataload(32)
因此,就像交易一样,合约也可以通过对它产生的子计算设置严格的限制,保护它们的计算资源。
代码执行
合约的代码充分借鉴了ethereum的哲学理念,使用低级的基于堆栈的字节码的语言写成的,由一系列字节构成,每一个字节代表一种操作。一般而言,代码执行是无限循环,程序计数器每增加一(初始值为零)就执行一次操作,直到代码执行完毕或者遇到错误,STOP或者RETURN指令。操作可以访问三种存储数据的空间:
· 堆栈,一种后进先出的数据存储,32字节的数值可以入栈,出栈。
· 内存,可无限扩展的字节队列。
· 合约的长期存储,一个秘钥/数值的存储,其中秘钥和数值都是32字节大小,与计算结束即重置的堆栈和内存不同,存储内容将长期保持。
代码可以象访问区块头数据一样访问数值,发送者和接受到的消息中的数据,代码还可以返回数据的字节队列作为输出。
 Plasma 架构
当下,主流公链都存在这么个问题,就是交易处理速度不能满足大多数应用的需要。目前比特币每秒处理交易大约为7笔,以太坊每秒只能处理几十笔交易,进入2020年,以太坊拥堵更是成为阻碍以太坊发展的常态。关于这个问题,也被称为扩容问题。解决这个问题并不容易,因为它的存在和区块链的去中心化共识机制密不可分。目前以太坊生态解决这个问题,主要是两个方向,一个是靠升级区块链网络协议,通过 “分片” 的方式去解决,以太坊核心开发团队主要在这个方向努力,我们称之为“Layer 1” 解决方案;另一个方向就是不去改动区块链底层协议,而是在其之上添加一个新的层次及相关协议,我们称之为 “Layer 2” 解决方案,很多以太坊社区团队主要在这个方向努力。显然,以太坊的先天性构架上是存在不足的。
FTJ Chain在系统构架的思想是,我们可以从一个链中获取资产并通过将资产锁定在主链(也称为“根链”)上并在另一个链(称为“侧链”)上再次“创建”它们将其转移到侧链上。当想要转回资产时,你只需要“销毁”侧链上的资产并在根链上解锁它们。只要侧链是安全的,您的资产就是安全的。
但如果侧链发生故障,那么您的资产可能会被盗!显然这并不理想。这是FTJ Chain使用Plasma 的原因。FTJ Chain Plasma 的推出就是为了在获得侧链带给我们的一些好处的同时确保存储在侧链上的资产始终是安全的(只要根链是安全的)。FTJ Chain Plasma 的基本原则是,如果侧链发生安全故障,所有用户资产都可以“回退”到根链。目前的区块链在处理交易上都是相对缓慢且昂贵的,我们想在保证区块链网络安全性的同时更快速成本更优的去处理交易,这就是FTJ Chain Plasma。用较小的分支区块链运算,只将最后结果写入主链,以实现提升供单位时间的工作量。
FTJ 状态通道
FTJ Chain定位是一个全新的智能合约平台,允许任何人发布智能合约,用户可以自行组建自己的金融工具和发行数字资产。FTJ Chain从理论上不仅仅支持某一特定的应用,但是可以实现和满足不同的应用场景。这些应用场景可能是支付系统、数字资产、投票选举或价值存储等。
FTJ Chain作为一个开放的智能合约平台,我们坚信未来产生的影响是巨大的,用户量是庞大的。对于大批量的小额交易来讲,如果频繁的执行智能合约,不单单会增加FTJ Chain网络的负担,光交易手续费一项,就让人望而却步(目前ethereum就出现了这样的问题和困境)。
对此,FTJ Chain使用了state channels。通过将部分流程移出到链外来提高区块链的效率,但这并不会增加参与者的风险。目前状态通道的应用仍然是纯粹的支付通道,如闪电网络,该研究旨在解决小额交易高昂的手续费和极低的效率问题。但FTJ Chain状态通道的应用不应仅限于支付领域。
FTJ Chain state channels本质上是通过在不同用户之间或用户和服务之间建立一个双向通道,为不同实体之间提供状态维护服务。它允许把区块链上的许多操作在链外进行管理,等完成链外操作后多方签名确认后,才将最终结果上链。我们可以把其理解成一个执行特殊操作的智能合约,一个专门建立双向通道,在一定条件下进行状态保持的智能合约。FTJ Chain state channels中的执行过程作为原子操作,在执行完成这个原子操作后,将最终结果上链。
FTJ Chain state channels为Dapp的可用性提供了基础,减少Dapp的延迟以及将网络响应时间控制在用户的可容忍范围。Dapp的参与者将消息与事务相互发送,以更新状态,但不会将消息发布到链中。如果其中一位参与者离开或试图欺骗另一位参与者,可以随时向区块链发布最新交易以完成状态。这其中的奖罚措施足以让参与者保持诚实。
FTJ Chain state channels是两方之间的互动,可以适用于任何智能合约。FTJ Chain state channels管理商业进程或者交易状态。它可以在保证指定人群之间交互性能和隐私性的同时,降低交易成本。
结 论
FTJ Chain协议是作为一个通过高度通用的语言提供如链上契约,提现限制和金融合约,Du Bo市场等高级功能的升级版密码学货币来构思的。FTJ Chain协议将不直接“支持”任何应用,但图灵完备编程语言的存在意味着理论上任意的合约都可以为任何交易类型和应用创建出来。然而关于FTJ Chain更有趣的是,FTJ Chain协议比单纯的货币走得更远,围绕去中心化存储,去中心化计算和去中心化预测市场以及数十个类似概念建立的协议和去中心化应用,有潜力从根本上提升计算行业的效率,并通过首次添加经济层为其它的P2P协议提供有力支撑,最终,同样会有大批与金钱毫无关系的应用出现。
FTJ Chain协议实现的任意状态转换概念提供了一个具有独特潜力的平台;与封闭式的,为诸如数据存储,Du Bo或金融等单一目的设计的协议不同,FTJ Chain从设计上是开放式的,并且我们相信它极其适合作为基础层服务于在将来的年份里出现的极其大量的金融和非金融协议。
关于更多FTJ Chain信息:http://ftjchain.club/