区块链技术特点及问题
交易的流程,发起交易,排序交易,确权交易。
发起交易指在P2P模式下任意服务器都可能收到记录交易的请求。
排序交易指交易本身是有先后次序的,当多笔交易同时在P2P网络发起时,会有交易因为先后次序不同而成立或失败。例如两个节点同时发起对A帐户的扣款操作扣除100块,而A帐户只有100块。那么必然会有一个交易请求失败,谁来判定交易失败就是交易排序的问题。在P2P环境下选择一个节点以这个节点判定为准的方法就是共识算法。
确权交易指达成共识选出的服务器把交易结果广播给其他服务器,其他服务器验证并确认交易结果正确。接受交易结果的数据并写入自己的数据库内。
区块链交易数据的特点,每次记录一笔交易涉及两个以上的任意帐户,全部被记录在一个虚拟的全局帐户下,交易没有与任何帐户挂钩。
其三个主要问题
第一,每个节点要记录全部交易记录体积庞大。
第二,需要全部计算机同步之后才能查询到数据速度缓慢。
第三,排序交易需要大量的计算(挖矿)和同步浪费算力。
依据交易流程来说明问题。
第一类,某个帐户发起交易,记录在单台服务器。
第二类,某个帐户发起交易,记录在多个服务器。传统的开发模式指定一个节点处理某个帐户的数据。在P2P模式下的因为单个节点是不可信任的,可能篡改数据或者因为单个节点损坏导致数据丢失。这里P2P模式下为了灾害的容错在所有节点同步了所有数据。
第三类,多个账户发起交易记录在多个服务器。传统的开发模式通过账户指定处理数据的节点,而P2P模式下要指定一个节点做排序交易。
DHT技术特点
将交易分别记录在每个帐户之下,把整条的区块链拆分为每个帐户一个链。再通过DHT算法把所有帐户排序后链接成一个环,并将这个环依据数据节点的数量分为多个段,每个节点存储环上一段的帐户数据。
每个数据节点只存储部分数据。确权只需要同步部分节点的数据。因为DHT的环状有序的特点确权过程中自动排序不需要选出一个节点负责排序交易。
原区块链技术有单个节点不可信任问题,其使用的解决方法是同步全部数据到全部的节点,最终导致其产生严重影响性能的3个问题。解决这些问题首先要解决单个节点不可信任,那么多少节点可信任,能不能有一个最小可信任的范围,而不是全部节点都参与到确权过程?如何在P2P网络中选取部分节点,并保证这些节点的分布和全部节点的分布一样具有随机性。那么这部分节点就可以作为确权交易数据的节点。
DHT网络的特性就是把所有节点按ID由小到大排序并首尾向连成一个环。其ID是按规则随机生成的,能够保证这个排序是随机的,不能被穷举计算或控制。在这个环选择任意点位置,选择其后的n个节点,能够保证这n个节点的随机性和整个DHT网络是一致的。假设DHT网络有20%的节点是被控制,那么选取的n个节点也有20%是被控制节点。反过来说要控制这n个节点达到51%以上,就要控制整个网络的51%的节点才可以,这是通过可验证的算法实现的。
因为DHT网络的部分N个节点也是可信任的,那么就可以把DHT分为N个部分,每个部分节点维护一个用户帐户。当用户帐户发生变更的时候只要找到DHT网络上对应的N个节点就可以快速确权用户数据。我们在实现每个节点只保存部分数据并且只同步部分节点之后就可以实现快速交易。在DHT网络上发起一个交易找到对应区域的搜索行为要5次左右的交互。交易请求被其余n个节点确认要发起5+2n+1次请求。一个交易又需要确认两个帐户,那么整个请求数量是5+2(2n+1)次请求。假设一次通信请求为200毫秒由24个节点参与确权,那么每次公网的p2p交易理论上只有20秒内就可以完成交易。
使用前景
当确权的服务器为最小2台时性能接近传统的主从服务器的模式,每笔交易时间理论只要2秒钟左右,性能和传统分布式服务器集群性能相当。相比较传统服务器集群方式,我们的优势是有动态可扩展或减少服务器,更适用在大规模并发的场景,容错率高,服务器集群架构简单容易二次开发,适用服务器硬件范围更广泛。适合替代现有支付,证卷,金融等需要大规模并发,数据关系复杂,安全要求高的场景。
在多个机构共享数据的联盟链模式下,我们更有任意一方不可更改的特性,可以在机构范围内建立共享可信任的计算机集群体系。
更宽广范围内我们可以建立全球更快交易系统,更大交易数据量的虚拟证卷体系。
技术优势汇总
通过IP登记的技术使DHT环上节点顺序不可预测不能仿冒,解决仿冒节点的女巫攻击和节点间数据互信问题。
通过按帐户记录的分布式存储技术可以解决数据完整存储体积庞大的问题,并解决验证过程中需要全部节点参与验证过程缓慢的问题。
使用邻近节点广播的技术可以保证数据记录的顺序,解决传统广播中需要选举节点(挖矿)的问题。