首页>>技术前沿>>网站/软件行业动态
数字货币可不只是区块链的全部!聪明人已经把它用到了业务中
作者:西安网站建设 | 转载 来源:西安软件开发公司 | 时间:2018年1月30日| 点击:0次 | 【评论】

人类的历史,即分久必合,合久必分。

2017 年,比特币因行情疯长火热一时。2018 年伊始,其使用的底层技术区块链又迎来狂欢:从国内创投人到硅谷投资者,从 BAT 到互联网企业众生,都纷纷加入这场技术的斗艳中。

在去中心化技术给这个时代带来新革命的同时,区块链也在更多的行业施展拳脚,利用去中心化计算机系统来创建安全、可验证和永久的交易记录,从而解决不透明或非可信问题。从本质上讲,它创建了一个安全的、分布式的信息和交易记录数据库。

对于交易不透明等问题,广告行业存在的欺诈流量、隐私泄露等正在倒逼区块链技术发展,以借其构造新的广告环境。

例如,区块链建构的个人数据档案、交易认证、透明性标准等技术实现方案,在广告「按需使用时代」提供了更好的契合点。FreeWheel 作为媒体广告管理、投放及预测方,同样也需要应对相应痛点。因而在与第三方评测机构和主流的 DSP 集成时,其尝试搭建了一套联盟链系统以达成账本的一致性。

本文中,我们将集中讲解 FreeWheel 区块链应用的缘起、架构及运作模式。

1拨开云雾见天日:为何使用区块链技术解决问题?

Blockchain 是加密货币的核心技术基础,具有不可篡改、透明等特性,而在广告行业内涉及多方集成,容易产生数据不一致等问题,所以 FreeWheel 尝试引入区块链技术到业务场景中。但需要澄清的是,FreeWheel 做区块链并不是想做一个新的代币系统,而是希望用区块链解决当前广告行业当中常见的痛点。

在广告行业中,任何参与者都会频繁地与第三方进行集成。比如,在评测投向效果场景中,会和 Nielsen、Comscore 等市场调研公司集成,以评价广告的投放效果。另外,通过实时竞价(OpenRTB)协议,SSP 也需要与 DSP 集成,帮助媒体公司卖掉剩余流量,最大程度上实现流量变现。

集成过程中,对于广告有效投放次数和调用服务收费的评定,会由于各自记账模式和方法的不同而导致双方报价完全不匹配。此外,按天或按月出账单具有较高的延时性,较难验证或达成一致的结果。因此,FreeWheel 引入区块链技术的最主要目的,是以期让整个交易流程透明化,使整个交易记录被所有参与者共享——当整个交易数据记载在区块链里,各方参与者拥有所有账本记录,结算即变得简单。

在采用区块链技术解决方案前,FreeWheel 在技术选型进行了诸多尝试。已有的分布式数据库无法规避恶意篡改,也缺乏有效的共识算法和智能合约机制。而区块链本身的不可篡改和消息协同这类天然特性,以及 Fabric 或以太坊建立的终极抽象的基础层,使得区块链应用能在其方案中一施拳脚。

FreeWheel 主任工程师王敏解释说,目前,公司对区块链的主要需求是针对多方集成账本不一致的问题,期望增强交易的透明性以达到账本的最终一致性,所以基于对共识机制和编程语言支持等考虑,FreeWheel 目前的选择是以 Fabric 作为基础,搭建广告行业联盟链。

2FreeWheel 区块链应用架构层级及原理

正因为广告商业建立的联盟链特性,所有参与者都是已知的并且验证过,因此所有交易参与者需要先从 Root CA 处获得公钥和私钥,每个参与者也同样会负责创建交易——生成帐单系统查询该区块链并对其定价。创建的区块链交易包含上层发送的原始请求信息、所有 DSP 的返回、参与者的签名。

区块链的客户端(Client)在收到上层次所有应用和发出的调用后,负责创建一个包含原始广告请求的交易。服务端(Peer)收到区块链创建的交易后,会通过验证签名来确保交易的合法性。如果合法,服务端就在存储账本里新增 Block,同时 State DB 会统计不同参与者之间调用的次数,生成 Billing Report。

3FreeWheel 区块链应用系统运作模式

在评测集成的场景下,比如系统 A 调用评测机构 B 服务时,A 会把投放的广告、观看广告的终端用户和当前视频内容等信息及其对交易的签名发送至 B,B 在收到系统 A 请求之后,其所属的客户端会包装原始的请求信息并加上 B 的签名发送给区块链Order Service 将背书后的结果广播给所有节点(当有多个节点的时候,参与者可指定一个节点为主节点,Order Service 将新交易广播至主节点,再由其广播到内部剩余节点,从而提高广播的效率)。

Order Service 会按时间戳或 Client 发送的先后顺序对所有的交易进行排序。虽然往因为签名原因,所以 Client 不能偷改交易 ID。

所有节点把新交易更新到自己一方的账本中。

这里值得一提的是,Farbic 记账流程与以太坊有很大的不同。

以太坊包含两种账户:外部账户和合约账户每笔交易都需要指定最大 gas 的值,以太坊虚拟机会基于 gas 的设置来控制智能合约执行的数量,防止恶意攻击。而 Fabric 联盟链里所有的客户端和服务端都必须已认证,所有的交易必须有参与者签名(交易发起者的签名,背书节点的签名等),降低公有链的恶意节点问题。

相对于以太坊共识机制 PoW,Fabric 共识机制可以选择(目前支持 Solo,Kafka),达成共识效率也更高,避免计算资源的浪费。

对于 Kafka,其本身支持向下游发送完全一样的数据,顺序不会颠倒。当 Client 端偶遇网络不稳定而形成的消息堆积或系统宕机时,重启后 Kafka 会自动把缺省的消息再次推送。这是其非常重要的功能。对于类似的系统宕机或消息堆积,FreeWheel 搭建的区块链系统有实时监控机制,可实现暂缓发送.

4如何使用智能合约技术进行区块链开发?

智能合约属于多方针对某交易达成一致的业务处理逻辑,即达成一致的链码(Chaincode)。如上文所说,Chaincode 在参与者之间公开,且部署在其 Endorse 节点上,可自动执行交易并产生结果,不需要第三方介入。

相对于以太坊主要支持 Solidity(类似 JavaScript)、Serpent(类似 Python),Fabric 支持用 Golang、Java、Node.js 实现智能合约,FreeWheel 在开发过程中主要基于 Golang。

FreeWheel 在开发中发现 Golang 的 Chaincode 目前只支持官方标准包,否则无法正常运行在 Endorser 节点上。这也是其目前在实际开发中遇到的重要问题之一,关于如何更好地引入第三方包,FreeWheel 目前还没有更好的解决方案。

5区块链中的微服务化和安全

由于广告行业往往会涉及到多方集成、复杂的业务逻辑,为方便部署和运维,所以大量采用了微服务架构和容器化等相关技术;出于安全性的考虑,FreeWheel 也加入了 CA 认证和 OpenSSL。

对于复杂的业务场景而言,FreeWheel 期望尽力把所有系统功能都模块化,这样 Chaincode 间调用就可以用 gRPC 这类微服务框架实现——即基于 gRPC 和 HTTP2 的微服务框架实现模块间和跨客户的通信。比如,通过微服务化将验证结果集群化,增加背书节点的吞吐量,那么通过 Docker 或 Kubernetes 管理的话,非常方便进行扩展和增加节点数。同时在 Order Service 分发上,微服务化也可以减小分发压力。

6区块链应用开发中的其他要点及难点

由于广告行业实时竞价并发性高、请求量大,区块链应用最明显的就是延迟方面的性能问题。一方面,全部同步需求和节点数增加,势必会使性能有所下降;另一方面,不同参与者选择的不同私有云,在不同地域和不同网络环境下,延迟性怎样缩减至最小。这些都使该问题成为 FreeWheel 接下来要攻克的难点之一。

目前比特币或以太坊中的恶意攻击等很多问题已被弱化,也不存在女巫节点等,那么势必会让性能提升得更好。

未来,业务层多方集成频繁,FreeWheel 正与合作伙伴共同商谈如何合作,中心委员会如何创建、组成和管理。

此内容DOC下载 此内容PDF下载

【全文完】
关键词标签: 区块链 数字货币 
0 ([$-顶稿人数-$])
0 ([$-踩稿人数-$])

版权声明:

1、西安弈聪网站内容中凡注明“来源:XXX(非西安弈聪网站)”的作品,转载自其它媒体,转载目的在于传递更多信息,其中涉及的网站建设,网站优化,百度关键词优化,西安软件开发等技术细节并不代表本站赞同支持其观点,并不对其真实性负责。对于署名“西安弈聪”的作品系本站版权所有,任何人转载请署名来源,否则西安弈聪将追究其相关法律责任。

2、本站内容中未声明为“原创”的内容可能源自其它网站,但并不代表本站支持其观点,对此带来的法律纠纷及其它责任与我方无关。如果此内容侵犯了您的权益,请联系我方进行删除。