Menu Home

[分享会]区块链在同心互助的实际应用

 

区块链BlockChain,来源于比特币的核心技术。区块链包含两个重要的技术要点:

  1. 分布式账本
  2. 共识算法

分布式样本

帐本的模型比较简单,其基础模块是Block(区块),Block按顺序挨个相链,组成一个长长的链表;Block中包含其创建信息(创建者-挖矿人)、产生时间、Hash(用于引用和验证),以及Transaction数组(交易数据)。
Transaction中存储的就是“帐本信息”,理论上可以是任意的数据,可以是对Cryptocurrency(加密数字货币)的操作、也可以是单纯的状态信息。
分布式帐本的另一个特点是:Block、Transaction这样的有序链表,是存储在整个区块链网络的每个节点中(当然,基于实际商业的需求,可以让一部分敏感数据不存储在非授权节点中)。只要节点连入区块链网络,它就会自动用P2P的机制下载缺失的Block、Transaction数据,并且验证其数据的正确性(基于Hash、智能合约的执行结果对比),保证每个节点数据的统一性、一致性。

所以,基于这样的结构设计,使得区块链拥有如下的重要特征:

  • 公开、透明: 链上的数据都是公开的,(理论上)每个节点都可以获取并验证
  • 不可篡改:链是有序的、有时间戳的;同时,攻击者需要控制至少超过50%的节点,才能篡改其中的数据。只要节点足够多,攻击者的成本就越高,其不可篡改的保障就越强

共识机制

共识机制是另一个关键点。共识机制的核心是在分布式网络中,利用一种规则(算法)来保证全网对于Block的创建是一致的。
比如在比特币中,采用的是POW(Power of Work)工作量证明,各个节点用本地资源,计算满足同一条件的Hash值,谁先计算出来,这个Block就是谁的。这个Hash值的计算,对每个节点都是一样的、公平的。另一种现在流行在使用的就是POS(Power of Stake),采用类似股权证明+投票的机制,选出记帐人,由它来创建Block。
所以从技术角度来看,共识算法实质上解决的是 “拜占庭将军问题”。所以,现在大家也都在尝试使用Paxos、Raft、PBFT等算法来代替POW、POS等共识机制。比如,Ethereum以太坊现在使用的POW,接下来会采用POW代替;BitShares(比特股)采用的是更高效的DPOS;HyperLedger直接采用的是PBFT算法。
从另一个角度来看,共识机制直接影响区块链的TPS(Transaction per Second)。以比特币为例,受限于POW,它的tps只能达到7/s;DPOS的代表BitShares,根据官方数据,最高能达到10w/s的tps。
所以,在区块链的商业落地中,共识机制的选择直接影响实际业务的效果。

同心互助在区块链上的实践

同心互助是首个区块链上的落地应用,区块链的第一个价值在于提供信任,因为数据、交易记录都是公开的、透明的;其次在于效率,利用区块链中的智能合约,基于其永不当机、自动执行、强制执行等特性,可以大幅度提高效率,降低人工干预、参与的成本。

同心互助区块链的开发实践中,我们遇到了一些比较有意思的问题,一并分享给大家:

1. 用户隐私
正如区块链的价值一样,公开透明是深入技术低层,所以用户的隐私保护是首个问题。
在这块上面,我们借鉴采用了如下几种方法:
  • 链上的公开数据全部进行脱敏处理:比如只公开用户姓、只显示身份证号前4位、后4位,保护用户的信息不被外泄
  • 利用存在性证明原理:链上不保存用户身份的真实数据,也不加密保存(为什么不保存密文呢?)
  • 采用保存身份证+姓名的Hash的方法。只有知道用户真实身份的人,才能通过Hash来确认此用户是否在链上

2. 数据写错了
另想了,数据上了链,就下不来了。即使你控制超过50%的节点,也不能这样干^_^
在这种情况下,我们的选择就是:特定的Transaction,声明前面某一条记录有误,补充一条正确的新记录。
这不仅仅是一个实现问题,还是一个区块链实现的原则:记录的数据需要自带“修改”的语意,需要从逻辑上能推导出“修改”。否则就会存在正确数据被错误数据攻击的风险。
同样的,涉及到交易冻结、撤销,也同样需要这样的机制。

3. 智能合约升级
智能合约,即业务逻辑代码,同样的也是存在区块链上的,也不能修改。那么,如果智能合约代码存在bug、业务逻辑需要变更,怎么办?前段时间,以太坊社区的TheDAO的漏洞事件,闹得沸沸扬扬,就是这个问题。
我们有两个解决方案:
  • 把数据和合约代码分享,即Entity和BizLogic分离。在这种情况下,部署新的合约,停止老的合约,数据仍然保留,可以达到这个目的;
  • 合约层面进行数据迁移,把数据从老的合约迁移到新的合约。这样也可以解决这个问题。但是在这种情况下,数据迁移会导致“数据对于状态的体现”发生了变化,数据和状态的变化不一致,这是一个逻辑风险。
从我们的实际经验来看,需要在低层提供合约代级的功能,即第一个解决方案,用起来会比较合适。

4. 性能!性能!!性能!!!
区块链的优势在于提高效率,但是现有的区块链实现都还不够快,最快的BitShares(DPOS)又不能拿来当区块链技术来使用,还是加密数据货币。
性能的优化,共识机制首当其冲,需要根据实际业务场景的需求,定义一个合适的高效的算法;而非简单的拿来主义(当然,还得看实际的场景)。
解决了共识机制后,其次就是相对大家都很熟悉的性能优化领域了。

Q&A

Q. 区块链是一种协议也是一种技术,那我想问问区块链如何何征信行业结合呢?
A. 对于征信而言,区块链的一个结合点在于“数据永不篡改”。征信报告只是一个瞬时的结果,征信记录才是永恒。区块链可以做到:
  • 无法删除: 不可篡改
  • 无法修改: 不可修改
  • 易于共享: 每个节点都拥有全部数据
这样对于征信数据的提供方和消费方,大家都可以平等的分享整个征信记录。

Q. 在区块链技术的运用过程中,遇到了哪些方面的挑战或问题,是如何解决的
A. 主要的一个问题是,了解区块链的开发者太少了,能写区块链实现代码的开发者更少。解决方法就是“读代码、写代码”,慢慢学~
第二个问题是业务与区块链的结合点:区块链不是万能药,它也有它的限制,它也不能解决所有问题。所以一定要搞清楚区块链的优点和缺点,结合实际的业务场景来设计方案。解决办法也就只有“多想多思考,有事没事多交流”

Q. 有人说区块链技术是金融风控的终结者,关于这个观点,您怎么看?
A. 从我的经验来看,金融风控是一个非常庞大的话题,并非“区块链”这一个“分布式帐本”技术所能解决的。从金融风控的角度来看,区块链是一个非常好的“信息收集”者,它能保证数据一直在、不会丢失、不会变化;它无法对数据进行分析、挖掘,找到高危风险,这种事情,还得靠数据挖掘、AI等技术。
顺便打个广告,我们公司的英文名叫ABC FinTech,ABC 即 AI + BlockChain + Cloud;你看,光有BlockChain还不行呢~
顺便再打一个广告,最近世界经济论坛发布最新权威区块链报告:区块链技术将构成新金融基础设施的基础,推荐有兴趣的朋友阅读。

Q. 区块链实现代码开发者少?那以太坊是用来干嘛的?
A. 以太坊是一个区块链的实现。但是它设计的初衷是“加密数据货币”,所以引入了“以太币”、Gas、POW共识机制等。这些机制对于大多数商业应用,其实是用不上的,或者说没有太大必要。
所以,商业实践中,一定需要对以太坊这种实现进行修改和大幅度调整,所以需要区块链的开发者。当然,HyperLedger看起来还不错,对商业应用的支持设计的很到位。
还有一个是区块链应用的开发者,这种人现在也很少,也直接影响区块链应用的开发速度和进展。

以上内容源自EGO线上分享:区块链在同心互助的实际应用。分享嘉宾:钟馥百 同心互助联合创始人兼CTO。由笔者整理分享。

EGO

Categories: Life Tech

peiyan