酷玩网

如何搭建一个实用的区块链平台

linx
欧意最新版本

欧意最新版本

欧意最新版本app是一款安全、稳定、可靠的数字货币交易平台。

APP下载  官网地址
金融服务应用若欲融入区块链技术,构建一个高效实用的区块链平台,其路径与策略如何?这问题在过去的半年多时间里,每次演讲时都备受关注。虽然心中有所思,却始终未敢轻易给出答案。直到最近,手头上的三个概念验证(Proof of Concept, POC)项目已进入尾声,取得了一些初步成果,这才得以整理出一些心得与见解,在此与大家分享。 以下,我们将基于过去半年在将区块链机制应用于POC项目中的实践经验,探讨以下问题,并与大家共同探讨构建实用区块链平台的路径: 一、去中心化与中心化 谈及区块链,去中心化(Decentralization)往往是人们最先联想到的概念。许多人认为,区块链的核心理念就是为了去中心化而设计。然而,事实恰恰相反!区块链可以被视作一个庞大的中心化机制。为何如此说?若我们回顾起源于比特币(Bitcoin)等原生区块链的运作机制,便能理解其中缘由。在传统银行体系中,我们开设的账户通常以银行为单位分类,账户管理权限分散在各银行手中。客户的账户以分散的形式归属各银行,而非集中管理。这种模式就像一本大账本,记录了整个生态系统的流水账。不同理念下的系统自然会产生不同的运作逻辑。例如,在现行银行体制下,从A银行的账户通过ATM转账到B银行,至少需要A银行、B银行以及ATM处理中心的配合。三者需在自己的账务系统中记录交易,交易才算完成。然而,比特币机制并非如此运作,其本质就是一个记录流水账的概念。设想一个全球可见的超大电视墙,永远显示着一本大账本,每笔比特币交易都会即时记录并显示在墙上。如此一来,我们还需要ATM转账中心吗?如果把比特币机制看作是一家超级银行,账户间的交易就变成了自行交易。简而言之,整个过程不过是在自家电脑上记录一笔流水账。从这一概念出发,我们便能更好地理解相关报道和专家学者的观点,也能辨别他们是否真正理解了区块链的本质。例如,关于区块链在跨境支付中的效率问题,我们可以说,既然所有参与者都在同一本账本上记账,效率自然不言而喻。对于一个以提供中心化服务的企业来说,与其认为区块链的引入会导致去中心化,不如考虑如何通过区块链技术构建一个更高级的中心化机制,将所有参与者引入新的合作架构,利用科技激发人性中的协同合作精神,共同构建一个互利共赢的生态系统。 二、乌托邦与现实 在比特币等原生区块链生态系统中,参与者大致分为两类:一类是终端用户,如持有比特币钱包的用户;另一类是提供服务节点,负责制作区块、传递区块、维护区块链等。原生区块链生态系统的基本假设是参与者间的信任度很低。任何人都可以自行准备服务器、下载软件、安装并配置,成为节点。这些节点之间没有直接联系或信任关系,只要遵守协议,分散的服务器也能组成一个中心化的服务机制。理论上,任何终端用户都可以通过网络连接到任意节点,获取服务。这种模式的优势在于“各尽所能、各取所需”,相信通过区块链机制,所有参与者都能相互制约,建立一个有公信力的生态系统,实现乌托邦世界。然而,现实世界中的善恶并存,为防止恶行,区块链机制的发明者和信徒们利用各种科技设计了复杂的机制,如哈希函数运算、公私钥加密算法等,希望通过科技解决法律、政治、管理上的问题。这些核心技术包括: 1. 基于 公、私钥对(PublicKey & PrivateKey-pair)的加解密、签名(Encryption/Decryption、Sign/Validating)技术。 2. 哈希函数(Hashing Function)运算。 3. 以共识算法(Consensus Algorithm)为基础的数据同步机制。 第一项技术旨在建立一个可验证的匿名制,以支持账户资产的使用。 (一)节点设置标准 任何想提供服务的人都可以自行准备服务器、下载软件、安装并配置,成为节点。这是一种理想状态,但在实际操作中很难实现。因此,非许可制(non-permissioned)的区块链生态系统在金融服务领域几乎无法被接受。相反,任何金融确认机制都意味着以私钥签署交易、以公钥验证签署交易的合法性。采用第二项技术的目的是确保交易数据一旦进入区块链,就很难(或几乎不可能)被更改。 至于引入第三项技术的目的是通过共识算法,将系统产生的区块即时同步到所有参与节点的区块链中,实现信息即时同步。鉴于国内金融服务应用的场景、特性和生态系统与原生区块链创立时的假设有所不同,上述三项技术的应用方式必须进行适当调整,以下分别就节点设置标准、公私钥签名机制和共识算法进行概述。 (二)公私钥签名机制 在原生区块链生态系统中,账户(公钥)与个人资料(如姓名或身份证号码)之间没有直接关联。因此,通过区块链系统,只能追溯到与该账户关联的公私钥,而无法追踪到公私钥背后使用者的相关资料。这种身份识别机制被称为可验证的(公私钥)匿名制。为什么原生区块链会采用这种机制?道理很简单,就是为了简单和方便使用。试想,提供整个生态系统服务的节点都是自愿加入,终端用户的账户又何必有特殊管理机制呢?既然是“乌托邦”,完全的“自治与自制”应该是构建这类原生区块链生态系统的最高指导原则。 然而,基于反洗钱(Anti-money Laundering, AML)的基本要求,金融机构很难接受这种可验证的匿名制。然而,可验证的实名制实际上是金融界多年来使用的电子凭证机制。因此,根据POC的实施经验,以区块链平台对接目前所使用的电子凭证机制,提供服务,较为可行。 (三)共识算法 共识算法种类繁多,各有其应用属性。例如,Hyperledger平台最初采用“拜占庭算法”,Bitcoin采用“工作量证明”(Proof of Work, POW)算法;其他生态系统则使用验证其他重要因素的算法作为信息同步机制。当然,每种算法都有其被采用的理由和依据。例如,Bitcoin之所以采用POW,是因为生态系统中节点之间毫无信任关系。设计者希望通过POW算法的竞争机制,创造出优胜劣汰的生存与奖赏法则(最终获胜的节点可得到特定数额的Bitcoin),让“自愿担任节点”的人愿意为构建区块和维护区块链数据一致性而努力,使整个生态系统得以生生不息。然而,当应用范畴设定在当今金融服务领域时,“毫无信任关系”的假设并不存在。所有参与生态系统的成员(或节点)都以“许可制”的方式加入,因此,这个生态系统中没有必要采用POW竞争法则作为产生区块和数据同步的理由。相对而言,我们可以采用一个更简单但适合“许可制区块链生态系统”的算法(文献上称为Paxos算法),其步骤如下: 步骤一:选出应制作区块的节点。节点之间以每人一票的投票方式,选出制作区块的节点。获得超过1/2选票支持的节点被大家委托为制作区块的节点。 步骤二:制作区块。选出节点后,所有节点将手头的交易传递给该节点。该节点在收到足够的交易后,开始制作区块。 步骤三:传递区块至各节点。区块制作完成后,被委托制作区块的节点开始将新产生的区块传递给所有其他节点,进行区块链的信息同步作业。 为什么不考虑采用Bitcoin、Ethereum或其他区块链平台所使用的POW算法呢?因为POW算法在先天上存在缺陷。简单归纳,POW算法的做法是不设限挖掘区块。事先放任所有节点都可以挖掘区块、制造区块。到时候如果发现有两个区块同时出现,则由比较两个区块被挖掘时的难度决定区块的去留;难度高的留下,难度低的舍弃。当然,这也可能导致“交易清算的不确定性”现象,即“某笔交易的清算需要多少时间或收到多少节点的确认才能被确定?”这在乌托邦式的Bitcoin生态系统中可能可以被接受;但在追求“确定性”的金融服务应用中,应该无法被容忍。相对地,通过POC经验的积累,我们选用了Paxos算法,通过节点间协议(投票)、制作区块、传递区块、实现节点间信息同步;这种做法不会产生POW算法所造成的最终清算问题,扩展性限制也相对降低。因此,在选用区块链平台时,必须审慎考虑所选用的共识算法是否适用于该项应用,是否会产生上述两项副作用。 四、区块链平台架构概述 区块链平台的系统架构是怎样的?用户如何使用?又该如何与现有系统对接?根据我们在将区块链机制应用于POC项目中的经验,整个平台架构的系统连接和分布大致如图3所示,由区块链系统(Blockchain System)、区块链应用系统(Blockchain AP System)以及应用系统连接网关(AP Gateway)三个主要部分相互支持组成。 (一)区块链系统(Blockchain System) 区块链系统是区块链机制运作的主系统,负责区块(Block)的组建、传递和连接等工作。该系统采用共识算法(Consensus Algorithm),将制作好的区块通过VPN或Internet递送到所有参与单位的区块链系统中,以确保信息即时同步。这套区块链系统在区块链平台中应该是中性的,无论导入哪项应用,其功能都应大同小异,不会因应用不同而有所改变。从实用角度来看,只要没有性能或安全控制上的特别需求,不同的应用都可以构建在同一套区块链系统之上。 (二)区块链应用系统(Blockchain AP System) 区块链应用系统(以下简称应用系统)在区块链平台架构中负责处理与业务逻辑、作业流程相关的事务。针对不同的应用,在将区块链机制导入时,会设计构建不同的应用系统。但是,从理论上讲,一个区块链应用生态系统中,所有参与单位(或称为节点、端点)的应用系统应该都是相同的。例如,如果我们把区块链机制导入未上市股权交易的应用,这里所指的应用系统就是未上市股权交易系统。所有参与未上市股权交易的单位,除了必须安装一套区块链系统外,都会配置一套与其他节点相同的应用系统,即未上市股权交易系统。同样地,如果将区块链机制应用于金融同业拆借,这里所指的应用系统就是金融同业拆借作业系统。每个参与同业拆借作业的单位都应该配备一套同样的金融同业拆借作业系统。至于如何将这套应用系统对接到单位内部的其他系统,则属于定制化部分,不包括在此通用的应用系统范围内。 (三)应用系统连接网关(AP Gateway) 区块链应用系统与区块链系统的连接是通过区块链系统提供的API,将各项信息传递到各个节点(即各个参与单位)。例如,将交易内容或智能合约传递给制作区块的节点等工作,就是通过这个渠道传递出去。除此之外,内部用户(例如该项业务的负责人)或系统管理员可以通过登录系统的方式上线使用。如果需要开放外部用户使用,出于安全控制的考虑,建议必须通过“应用系统连接网关”才能连接使用“区块链应用系统”。至于“其他应用系统”,则通过“区块链应用系统”提供的API,与其连接使用。 五、结语 通过POC的经验积累与验证,我们发现,原生区块链所采用的一些技术或机制必须经过适当的调整,才有可能导入国内金融服务应用市场。因此,我们基于POC积累的经验,自行开发了一套区块链系统,以便进行各项调整。过去半年多,我们在这套区块链系统上进行了三个不同类型的POC,包括与支付相关的应用、智能合约的应用以及大型生态系统的应用。接下来,我们将继续与有意愿导入区块链应用的企业合作,共同寻求更多POC验证,通过经验的积累,寻找真正适合导入区块链机制的应用,创造更大的市场价值。

标签: 数字货币