请选择 进入手机版 | 继续访问电脑版

SWTC公链设计揭秘(1)

[复制链接]
发表于 2019-1-25 21:35:40 | 显示全部楼层 |阅读模式
本帖最后由 dspring 于 2019-1-25 21:40 编辑

刚刚过去的2018年,公链大战的硝烟还未退散,作为全球知名的公链之一的SWTC公链自2014年10月上线以来其发展一直受到社区内外的人群关注。今天,我们就来为大家解答一下SWTC公链究竟是什么。


背景介绍


2018年被称为“公链元年”,从6月到10月,一波公链上线潮掀起了。

SWTC公链作为国内最早的一批公链之一,在2014年10月主干网络上线了,在2018年6月启动生态节点计划,在全球拥有41个生态节点,成为全球范围内的领先的去中心化区块链网络。它还是数字化实体资产的商用区块链平台。

本文以SWTC公链为例,介绍了公链设计和开发需要注意的诸多细节,供所有公链爱好者参考。


SWTC公链的基本特性


SWTC公链是建立在余额模型之上,采用RBFT共识机制和去中心化治理模式,且兼备智能合约平台和银关系统的价值传输网络。

为了读者有直观理解,我们将列出SWTC区块链网络的的基本特性和参数:

底层模型:唯一的地址、余额、序列号、历史、,多种授权交易构造的账户模型。
区块大小:10MB(可扩容至T级)
平均区块间隔时间:10秒
共识机制:RBFT
TPS:平均5000笔交易/秒
链上理论最大TPS:10000笔交易/秒
初始发行量:600000,000,000SWTC
支持:支持智能合约,支持银关系统,支持子链生态,支持IPFS

这些特性和参数的确定是经得起市场考验的,是SWTC创始团队在综合考虑公链生态的现状、应用场景、技术可行性以及区块链特别是公链的发展方向等因素之后确定的。

在正式开始介绍各部分前,不妨先回顾一下SWTC“目标和使命”与“设计初衷”,有助于理解后续的许多实现细节。

目标和使命

SWTC公链的终极目标是要实现一个能够做一条规模商业可以跑起来的区块链网络。简单来说,就是SWTC公链提供一个稳定方便使用的平台,企业用户可以很方便的接入,使用区块链带来的好处,同时不需要了解区块链实现的细节。而且,企业有灵活的选择是否共享他们自己的用户,这样使得每一个新的应用都带来新的客户,同时新的应用也能获得平台的巨大的存量用户,这样构建良性循环的生态系统。

作为全球最大的区块链去中心化应用操作系统,SWTC公链有高吞吐量、可扩展性、高稳定性三大特点。

其高吞吐量是指SWTC公链的TPS达到5000,区块容积可以达到T级别,日常使用实用程度已经超过比特币和以太坊。

基于良好的可扩展性和安全的智能合约,应用程序可以在SWTC公链中有更多部署方式,可以支持大量开发者和用户,SWTC公链底层还可以搭建子链节点。

如果说区块链就是互联网的颠覆与升级,那么SWTC公链就相当于一扇可以连通现实世界与数字世界的大门。


SWTC公链设计初衷


SWTC公链的设计初衷于2011年。在硅谷,SWTC公链创始人的周沙先生发现了早期的区块链技术--比特币的魅力。也就从那起,陆续组建了50人规模的区块链技术开发团队。


比特币的成功来源于两个方面。一个方面是美国次贷危机引发的广泛的对中心化的不信任,另一方面是比特币利用密码学技术,提供了一个划时代的区块链技术。这两者相结合,率先在金融领域提供了一个去中心化的实用方案。然而比特币的美中不足之处在于:每次区块生成时间为10分钟,确认时间更长,难以适应商业场景;POW的共识方式消耗能源巨大,但是比特币的价值必须以这种持续增长的算力维持,有较大的缺点;比特币通过脚本语言来实现一些简单的合约功能,不支持图灵完备的脚本,无法支持真正意义上的智能合约。
伴随着比特币系统的解构和重构,2013年开始,以太坊(Ethereum)带来了一次影响重大的概念升级。它的主要特色是支持图灵完备的智能合约。它采用了POW的共识方式,加快了区块生成的速度,并通过虚拟机来执行合约,使得合约的执行也能修改共识的输出。它的主要不足包括OW的方式对资源的浪费,以及未来的POS的方式的不确定性;每个节点都需要对所有合约进行验证,整个系统的执行效率不能大于单个计算机的执行效率;跨合约的交互非常困难;由于合约与交易的共识互相捆绑,合约的bug直接影响系统的稳定;可能的硬分叉对整个系统的伤害会继续。
瑞波(Ripple)早期设计类同于哈瓦拉网络---一种基于熟人关系网和信任链的的汇款系统。2013年瑞波网络经过区块链技术改造,账户记录、余额和欠条都会被每个人同步更新到网络节点中实现全球账户的集合更新。瑞波(Ripple)网络引入瑞波币(XRP),它作为瑞波Ripple网络的基础燃料(GAS),可以在整个瑞波网络中自由流通,而不在局限于熟人圈子。瑞波(Ripple)网络设计了网关(Gateway)系统,网关是瑞波网络中资金进出的关节,允许人们把法定货币、原油、黄金甚至是其他任何其他东西汇兑进出于瑞波网络,并可充当支付双方共同的见证人。但它的主要不足包括:使用场景局限于支付行业;系统上不存在智能合约功能;理论上存在资产被操纵的可能;




此外,当时的作为新兴技术存在很多的问题:
1,缺乏新型的合约平台。
2,大部分的工作量证明(POW)的智能合约不能参与商用应用。
3,没有考虑国情下的监管要求。如外汇管制,反洗钱等。
4,区块链生态还没有完全发展起来,和现有的中心化商业效率还有差距。
5,区块链不同于目前中心化的模式,对生产关系改造不彻底。

SWTC公链开始的设计理念逐渐清晰起来:
1.出于安全性、稳定性、匿名性和可扩展性等方面考虑,选择可与信任的银关体系搭配的账户模型;
2.比特币和以太坊的升级需要团队和比特币社区的共识,重大的升级往往不能迅速取得共识。商业用公链受限于场景的交互影响,共识成本要求必须低。因此需要一条新公链;
3,商用设计优先,针对各种行业要求作出个性化方案,能够在去中心化的基础上,让用户自行选择兼容中心化的各种CA,KYC的服务等。

上述设计涉及到较多技术实现细节,接下来我们详细解释。


SWTC技术实现细节


账户模型:具有集体信任的去中心化账户模型
UTXO(UnspentTransactionOutput,未花费的交易输出)是比特币采用的底层账本模型。而以太坊则采用了Account(账户)模型。瑞波采用可信任的网关体系下的账户模型。
对于一般人来说,以太坊Account模型相对好理解,就是从一个地址到另一个地址,ETH的传递就好像银行账户最主要保存余额。
比特币交易UTXO模型,来验证一个人(其实是一个地址)是否拥有未使用过的加密数字资产用于支付。UTXO的优点在于:UTXO模型是无状态的,更容易并发处理,交易的计算负担完全由钱包来承担;解决双花问题的逻辑和处理方式都及其简单,且支持原生多重签名。对于P2SH类型的交易,具有更好的隐私性。交易中的Input是互不相关联的增加一定的隐私性。UTXO虽然有诸多优点,但当时基于UTXO模型的各种项目的底层脚本语言都是非图灵完备的,无法实现一些比较复杂的逻辑,可编程性差。对于复杂逻辑,或者需要状态保存的合约,实现难度大,且状态空间利用率比较低,与以太坊虚拟机所采用的Account(账户)模型无法兼容;当Input较多时,见证脚本也会增多。而签名本身是比较消耗CPU和存储空间的。
瑞波(Ripple)通过在更大的网络中利用集体信任的相关子网络形成共识机制以避免拜占庭式崩溃以及保持系统的鲁棒性,但瑞波不存在智能合约。

SWTC开发的账户选择了能够适应智能合约和银关体系的账户模型:唯一的地址、余额、序列号、历史、,多种授权交易构造的账户模型,在账本所储存的数据中,账户的核心数据存储在Account Root账本对象类型中。账户也可以被其他几种类型数据所拥有或部分拥有。

这种分层设计实现了底层账本和上层智能合约的完全解耦,使SWTC公链后续兼容多种虚拟机成为可能,也能让银关系统和拓展的物关系统能够对接传统的中心化的各种系统。

由于篇幅有限,本文只对其基本原理和遇到的问题做简要解释,感兴趣的读者可以实时关注:

http://www.swtcdocs.org/

账户安全
拒绝服务攻击(DoS)可能性:

黑客往往利用攻击手段导致区块大小超过限制,新区块无法被接收,使得网络无法产生新的区块。

首先,日常交易中,SWTC公链的单一的区块容量保持是10M左右,这和比特币区块1M的容量相比,已经是10倍了。SWTC公链极限的区块容量是不设限制的,虽然数据保密,基本上,区块容量的极限值可以超过一般情况下一部电影的容量。

其次,SWTC公链的GAS机制导致了黑客的攻击成本很高。例如,每个账户建立都需要保持少量SWTC,对于建立庞大攻击网络的黑客来说,增加了一定的经济成本。攻击中的每一笔交易还需要缴纳一定的GAS费用,对于日常的用户不受影响,因为Gas值尚在正常范围内。对于黑客来说,就有成本问题了。

再者,SWTC公链的底层复合了两种或以上的加密方法,支持支持多种加密方式。黑客很难破解底层的多种复合加密方式。

最后,对于SWTC公链的诸多应用。应用的项目方上链时候,都可以选择BAAS服务。应用通过SaaS服务的模式,通过域名解析的方式将源站接入云安全防御节点,当发生DoS攻击时,网络监控系统会侦测到网络流量的异常变化并发出报警。系统的防DoS攻击功能接口,启动对相关被攻击IP的流量清洗,仅将正常的数据包转发给随后的网络设备。这样,就能保证整个网络正常的流量通行,而将DoS流量拒之门外。因此,黑客很难从SWTC公链的应用入手发动攻击。

防范“The DAO”被攻击
2017年6月17日,当时区块链界最大的项目“The DAO”被攻击。V神在以太坊官方博客发布[紧急状态更新:关于DAO的漏洞]公告,提出软分叉解决方案,不会有回滚。

首先,SWTC公链的底层实现了分层的设计,即各个功能都区分开来,特别是合约层,数据层和网络层区分开来,这样,即使合约层的逻辑出现问题,也不会传导到其他的层面。

其次,SWTC公链选择打通了两个原本分离的生态。以太坊有一套图灵完备的语言,可以实现比较复杂的智能合约逻辑。瑞波有一套网关体系和对应的共识机制,可以实现集体信任下的资产传递。两者都有强大的生态作为支撑,并且聚集了区块链行业优秀的开发者。由此,SWTC公链获得与瑞波一致的稳定底层基础设施;兼容现有智能合约生态,以太坊上的智能合约可以跨链形式兼容ERC-20,ERC-721等均兼容);兼容以太坊上所有智能合约开发工具(当然有些需要做RPC的适配,SWTC已经实现了这样的适配),降低开发者学习成本。

最后,SWTC公链有完善的智能合约审核的团队。白墨子区块链安全团队和德国团队帮助审核合约。



RBFT共识机制

所谓共识,简单理解就是指大家都达成一致的意思。其实在现实生活中,有很多需要达成共识的场景,比如开会讨论,双方或多方签订一份合作协议等。而在区块链系统中,每个节点必须要做的事情就是让自己的账本跟其他节点的账本保持一致。共识机制解决记账权的归属问题,公有链是去中心化的,赋予网络上的每个节点记账的权力,而私有链和联盟链的记账节点为少数几个指定节点。


比特币的PoW共识机制,加入网络的门槛较高,受到经济效应的影响比较大;能源消耗巨大,矿机耗电量超过一些小国家;越来越趋性中心化,大部分的挖矿所得被少数几个大矿池占据。衍生出来的一些算法比如,2012年时SunnyKing提出PoS(Proof-of-Stake,权益证明机制)和后来的DPoS(代理权益机制)选出一些代理人来进行记账。这些共识算法既有容易组织共识的优点,也有投入资源相对多的缺点。


出于商业应用以及去中心化程度和能源消耗方面的考虑,SWTC公链基于FLP不可能原理采用了RBFT共识机制,它是具有自主知识产权的随机BFT算法。更准确的说法是,在PBFT基础上优化的V-Consensusa。它形象比喻为代议制下的全国人民代表大会制度。共识机制效率较高,成本比较低易于被企业接受。在选择验证节点的方式上,SWTC公链区块链采用POA(proof of Application)的方式。SWTC公链的核心有若干个验证节点维持系统的基本验证网络。SWTC公链的验证网络对每一个接入SWTC公链的应用开放。接入SWTC公链的应用是指以SWTC公链为平台的针对某些用户的应用程序。这些应用可以通过SWTC公链API直接接入SWTC公链并维持一个验证节点。


DApp生态的拓展

公链的竞争都是从DApp(去中心化应用)开始的。2018年,书签购物,智链通,电子发票,联核云等对SWTC公链 DApp生态的拓展。

从区块链1.0时代的比特币支持电子现金交易到区块链2.0时代以太坊支撑DApp落地,再到区块链3.0时代的大规模DApp落地应用,这些都离不开高性能的区块链网络的支撑。

值得指出的是,2019年,SWTC公链将集中进行一次升级,打通公链之间的屏障,进一步做好链接私链,联盟链的设施,进而形成DApp之间的联动,这一举措不仅能让开发者受益,而且还能让越来越多的用户聚焦于DApp。

2019年区块链技术还有一个主线:以拥抱监管、合法合规为准绳。即任何的区块链技术必须有对应的行业锚。

这说明,应用的方向更加细分化,只有能够熟悉各个行业逻辑以及深挖行业痛点的团队才能存活。

目前的DApp,确实以游戏为主,以社交、电商为辅。在2019年之内很可能出现到电商、社交领域也会浮现出一批现象级DApp。

SWTC公链在2019年落地的项目类型不单有游戏、电商还已经触及到各个行业。例如,在食品溯源、能源交易、电子凭证、物联网等场景,SWTC公链加快了结合场景积极落地的步伐。

健身链已经在SWTC公链实现上链;质检链将在2019年3月在SWTC公链上落地。

SWTC公链已经突破“不可能三角”问题,这让公链能够真正的商用化,从而走向大规模的应用。(待续)



发表于 2019-1-26 07:56:56 | 显示全部楼层
分区、分层的有效去中心化的区块链构架。
发表于 2019-1-27 06:58:18 | 显示全部楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表