资讯

去中心化用户行为档案的技术解读 | DATx系列之一

2018-02-09 09:50:19   阅读量:95

本文转载自『DotC United Group』,作者:DotC United Group,Morketing经授权发布

DATx是由新加坡Cosima Foundation发起,针对当前数字广告行业的革命性创新运动。

DATx致力于为整个数字广告生态系统打造良好的统一协议,建立一套完整的广告生态系统运行机制,实现一个高效的、安全的、良性发展的、经济利益最大化的广告生态系统。

DATx也将开启区块链基础链技术革新,针对数字广告行业海量碎片化数据,高并发,实时性等特性,探索更优的基础链技术实现方式。并将首创 POI “Power of Identification”的技术研究,引领区块链对于碎片化用户行为的结构化档案构建,去中心化存储与传输等方面的技术升级。并将结合人工智能技术和大数据技术,构建真正以用户为中心的区块链去中心化数据方案,建立一个创新性的未来智能广告生态环境。

目前,大多数广告企业和机构都会通过自己的技术手段从不同的渠道获取用户数据,然后建立数据中心保存用户的数据,分析用户数据,实行广告相关的活动。

随着数据量的急剧攀升,单一的服务器已经无法满足数据存储的要求。现在,大多数机构开始使用分布式文件系统,能够支持多台主机通过网络同时访问共享文件和存储目录,并用关系数据模型并且支持SQL语句查询数据。但是这背后的思想仍然是中心化思想,大量的数据集中统一存放在机构或者公司自己的分布式文件系统中,公司的服务器若发生被攻击事件,极容易发生数据泄露,造成用户的隐私被秘密获取。

数据被中心化存储时,媒体利用自己数据中心的用户数据,向广告主提供“人群定向”服务,而广告主利用自己手中的用户数据进行“重定向”广告投放。这种情况下,各个广告主和媒体采集的用户数据存储在各自的服务器上,形成数据孤岛,无法形成全面准确的用户画像,广告的个性化投放效率也比较低下。

当我们将用户的行为信息记录在区块链上之后,一切都会不一样。在区块链中,用户的每一步行为都是有序的,可见的。

任何加入DATx的广告平台都将可以触及这些数据,从而可以更好地对用户进行定位,提供更好的广告体验;同样任何通过DATx投放广告的广告主也将有机会更好地知晓他们的广告消耗的真实情况,并且触及更为精准的用户。

用户何时,在某平台上看了什么类型的广告,广告的内容是什么,用户在广告的停留时间是多长,当用户点击广告之后,他是否下载、订阅、购买产品。上述用户所有的行为构成了一个完整的事件链,这就是用户的行为链;加上不同网站或者不同 APP中有着千千万万个这样的事件链,我们就可以更加精确的获得用户的兴趣。

区块链中完整的链条式的用户行为记录,将其归整为DATx用户行为档案,可以让我们模拟出完整的用户画像,知道用户在媒体上个各种浏览、点击、购买背后的商业真相。

比如,对转化有要求的广告主,他希望用户不要流失。那么,DATx去中心化用户行为档案就可以帮助分析用户怎么流失、为什么流失、在哪个环节流失。

我们的DATx去中心化用户行为档案通过区块链技术记录了完整的用户行为数据。如果广告主有要求,在得到用户授权的情况下,我们可以把用户数据做成一个按小时、按天,或者按用户级别、事件级别拆分的一个表。这个表可以知道用户最简单事件,比如登录或者是购买,也可以知道哪些是优质用户、哪些是即将流失的客户,这样的数据每天或每个小时都能看到。

广告主或者媒体对相关数据进行统计、分析,从中发现用户访问网站和广告的规律,并将这些规律与网络营销策略等相结合,从而发现目前网络营销活动中可能存在的问题,并为进一步修正或重新制定网络营销策略提供依据。

站在用户的角度来说,在中心化应用的时代,用户使用应用时产生的所有数据都会被中心化地存储在各个应用及平台上,数据的所有权和使用权不完全归属于用户。

无论广告主和媒体做什么样的广告活动,用户对于自己的数据被用于利益交换完全不知情。按照常理来说,用户数据的所有权应该属于用户,用户可以选择提供自己的兴趣偏好以便获得个性化广告服务,也可以选择隐藏自己的数据,或者只选择提供部分数据。

DATx用户行为档案解决方案

DATx提供了用户行为档案数据远程存储功能,其核心功能是用户将用户行为档案数据存储在网络节点中,之后用户可以在任意地点获取和访问这些数据。

把用户行为档案数据存储到一个网络中,意味着其他的网络节点——存储节点,将保存你的数据,而且负责在用户需要访问和广告平台进行大数据分析时,会归还这些数据。

由于网络节点担负的重要责任,DATx对网络节点做出如下关键假设:

1)存储节点不可信任性:最坏情况下,存储节点会对存储在上面的数据进行窃取、修改。因此必须使用强有力的机制来阻止和防止这些恶意行为。

2)存储节点盈利性:存储节点需要利润来维持运转,特别地,在存储节点上存储私密性和安全性很强的数据时,存储节点会收取更高费用。而且必须保证,存储数据的存储节点一定要保证能拿到存储数据的报酬。

3)存储节点不稳定性:当需要访问获取数据时,存储节点不可能实时在线,而且可能随时离线。

4)网络的不友好性:如果网络存在漏洞,有人会并利用这些漏洞攻击节点谋取私利。

DATx的设计要求是必须在如上特点的存储节点中安全地存储数据。

存储节点选择原则

存储节点的选择是DATx用户行为档案存储系统中重要的环节。

DTAx网络中,加入DATx生态的任何用户(包括广告主、渠道、广告受众)都可以成为网络存储节点。用户有权选择他们自己的存储节点,也有权利选择自己是否成为存储节点。

当用户成为存储节点后,会获得DATx代币激励,并且,如果有用户在该存储节点存储数据,该存储节点会获得额外的代币激励。但是需要注意的是,攻击者有可能试图低价格和伪装方式来操纵用户的选择。

文件合约

文件合约是存储需求方和存储节点间的合约。存储需求方同意给存储节点付费,而且存储节点在一定的时间段里为存储需求方代为存储文件。

存储节点代为存储文件需要激励机制来激励。文件合约为存储节点保存好文件提供了强有力的奖励机制和动机。

存储节点保存好用户行为档案就可以得到相应的报酬,但是,保存不好文件,存储节点就会受到惩罚。

文件合约开始后,存储需求方和存储节点双方均在合约里存放一定量的代币。

当存储节点完成合约后,合约里存储需求方存放的代币被用来支付给存储节点,并返还存储节点开始存放的代币。如果存储节点不能顺利执行合约的义务,存储节点存放在合约里的代币将被扣除。

文件合约记录在区块链中,区块链相当于文件合约的第三方代管者。当文件合约结束后,存储节点必须向区块链提供存储证明以证明它依然存储着这些文件。在存储节点提交了存储证明后,存储节点才能收回存放在合约中的代币和收到存储需求方的支付款。如果存储节点没有及时提供存储证明,那么它就收不到奖励。

文件冗余

存储需求方不能只将自己的信息存储在单一的节点之中,因为在DATx对存储节点做出的假设中,存储节点不可避免地存在着不稳定性,即存储节点不一定实时在线或者出现故障。

在这种情况下,可以在多个存储节点同时备份文件来分散风险。当用户的行为档案存储在五个不同的主机时,那么只有五个主机同时出现问题,才会导致丢失数据的情况发生。这就是基于副本(replication)的数据冗余技术。副本冗余技术将原始数据文件复制为n份,分发给不同的网络节点;当一个数据节点失效时再利用可用节点恢复失效数据。然而,基于副本的数据冗余方案大大地增加了存储成本开销,难以有效支持区块链技术的快速发展。

另外还有一种Reed-Solomon Codes方案,在用户读取数据时,若原始数据失效,则需要首先下载k个冗余数据块,然后恢复出所有的原始数据块。因而,随机访问单个原始数据块时,下载的数据量大,不利于数据读取。

在分析用户随机访问和顺序访问的概率开销基础上,DATx采用再生码 (Regenerating Codes)实现数据备份,相比Reed-Solomon Codes编码具有更小的恢复带宽。

首先,根据最大距离可分码(MDS)将M bytes大小的用户行为档案文件分为n个分片,分别保存在n个存储节点中,每个分片M/n bytes大小,其中任意k个分片可以重建出原始文件。

当节点失效时,冗余必须不断地被刷新,这样就会导致大量数据在网络上传输。

这个时候,我们应该高效地重建新的分片来应对这种失效。一个新的分片副本应该直接从其他保存该分片的节点复制过来,但是传统的纠错码需要通过原始数据来产生一个新的编码分片。这个时候我们考虑只访问纠错码分片来生成一个纠错码分片。

在初始策略中,保存新的分片的节点(我们将称其为新手)下载k个分片并重建文件,并从原始文件中生成新的编码分片。因此,传输了Mbytes的数据却只产生了M/k大小的分片。

我们确定了一个新手需要产生一个MDS或者近似-MDS分片所必须的最小数据量,这种方案称为最优维持MDS(OMMDS)。

就OMMDS而言,再生码RC具有非常小的带宽开销,即使新手只和k个节点相连接。在更高的层次上,RC方案改进了OMMDS,让新手保存了所有下载的数据,而不是把它们都删除了。结果,RC分片比MDS稍微要大一些,比例因子为:

是保证能够重建出数据的必要条件。

我们特别地证明,如果新手只能连接k个节点下载数据生成分片,那么M-byte的下载量是信息论的最小值。如果新手允许连接超过k个节点,那么需要下载的数据总量会显著地减少。比如k=7,n=14,新手可连接n−1个节点,那么只需要传输0.27Mbytes数据来生成新的分片,比初始策略减少73%。

然而,相关的额外开销也是必须的,结果是混合策略比OMMDS提供了更好的可靠性带宽开销。为了改进混合策略,我们必须看的比MDS更远。

再生码它在我们坚持MDS的“对称性”下最小化一个新手需要下载的数据量。在更高的层次上,RC方案通过新手保存所有下载得到的数据来改进OMMDS,而不是将这些数据扔掉。结果就是RC码会有比MDS更大的分片,但却只需要很少的维持带宽开销,即使新手之和k个节点交互。比如k=7,一个新手只需要下载0.16Mbytes数据—比OMMDS减少了39%,比初始策略减少了84%。更进一步,我们的在基于真实分布式系统测量得到的节点可靠性模拟实验中指出,在k=7时,RC较混合策略减少了25%的带宽。随着k增大RC性能更好。

数据加密

数据加密的目的是在存储节点试图窥探、窃取、破坏数据时能保护数据的隐私性与安全性。在用户行为数据被上传至网络上之前,所有DATx用户行为档案数据都经过高度加密处理,而且解密过程不能再存储节点进行,只能在下载后才进行。存储节点在任何情况下都不能解密存储在其上的数据。

著名的非对称加密算法RSA速度较慢,这里我们使用了更安全的椭圆曲线算法——ECC来做非对称加密基础算法。ECC的210位算法难度就相当于RSA 2048的难度,性能则是数量级的区别。

ECC算法

非对称算法就是是设计一个数学难题,使得单向计算很方便,而反向计算很难,如RSA使用因式分解的原理,两个大质数相乘很容易,但大数分解质因子很难。

椭圆算法ECC其实就是利用乘法容易、除法难的特点,设计一个乘法:K = k * G,其中大K是公钥,小k是私钥,G是生成点。由私钥推导公钥很容易,只需要k个G相加即可。但是从公钥推导私钥很难,也就是无法计算公钥K除以G。

这个加法不能用我们日常的整数加减法,而是利用函数所定义的一个特殊椭圆曲线上散列点的特性定义的加法。其中p是一个常数。不同p可以设计成不同的曲线,我们与比特币的方法一致,使用,这个曲线的名称就叫secp256k1。这是一个非常大的数,曲线上的点是一个复杂散点,为了方便展示,这里用小很多的17阶曲线表示加法的定义:

加法定义就是曲线上任意两个点P1和P2,必有第三个点P3,是P1和P2连线的延长线与曲线相交点的x轴映射的点,定义P1+P2=P3。通过数学算法可以证明这种点满足加法乘法交换律:

A + B +C = A + (B + C)

A*(B+C) = A*B + A*C

需要说明:这里为了完善计算,还定义了无穷远点O(相当于0),满足:

P1 + O = P1

ECC加密过程:

1)K = k * G,大K是公钥,小k是私钥;

2)把明文编码成曲线上的点M;

3)生成一个随机数r;

4)计算密文C1=M + r*K, C2 = r*G,其中大K是公钥;

5)对方收到密文后,可以计算C1 - kC2 = M,其中小k是私钥;

6)攻击者得到C1、 C2,公钥K以及基点G,没有私钥是无法计算出M的。

ECC算法用很短的密钥就能达到RSA2048的安全强度,而且计算速度有数量级的提高,所以目前应用很普遍。

因此,整个流程可以简要归纳如下:

1)产生加密序列:每个用户行为档案文件及其中的所有块会产生一个加密的序列信息。

2)上传档案:底层文件总是需要存储到硬盘上的,而大家又不是活雷锋,为了鼓励大家踊跃的参与其中,DATx会通过激励机制激励网络节点变为存储节点。

3)跟踪文件:跟踪每个文件的版本历史记录。

4)存储节点:每个网络节点只存储它愿意存储的内容,以及一些索引信息,有助于弄清楚存储的需求方是谁。

5)文件索引:查找文件时,通过文件的加密序列信息就可以在网络查找到储存该文件的节点,找到想要的文件。

6)通过去中心化命名系统,每个文件被命名为易于人类阅读的文字。此时通过搜索,就能很容易地找到想要查看的文件。

高并发问题

DATx通过并行链和DPOS的方式解决延迟和数据吞吐量的问题,比如BTC是大约最少三十分钟后数据才能被确认,ETH也需要几分钟的时间。但是,基于石墨烯底层的BTS和STEEM却可以达到1.5S的平均确认速度和有限条件下实测3300TPS的数据吞吐量。

DATx通过并行链的方式,使得数据吞吐量得到极大改善。

DATx区块生成器,将用户行为信息传递到独立的线程中,从而进行并行地评估。每个帐户的状态取决于它接收到的消息。调度表是区块生成器的输出,并且将被确定性地执行,但是生成调度的过程不必是确定性的,所以区块生成器可以利用并行算法来调度事务。

并行执行时,当脚本生成新消息时,它不会立即发送,而是在下一个周期中发送它。无法立即发送的原因是因为接收方可能会在另一个线程中主动修改自己的状态。

延迟时间是一个帐户将消息发送到另一个帐户并收到响应所需的时间。DATx目标是使两个帐户能够在单个区块内来回交换消息,而不必在每个消息之间等待3秒。为了实现这一点,DATx将每个区块分为周期。每个周期分为多个线程,每个线程包含事务列表。每个事务包含一组要传递的消息。该结构可以被可视化为树,其中各层依据其特性被顺序或者并行地进行处理。

在一个周期中生成的交易可以在任何后续周期或区块中传送。区块生成器将不断把周期添加到区块中,直到最长的区块时间间隔达到,或者没有新的可传送交易生成。

可以使用区块的静态分析来验证在给定周期内是否存在两个线程包含修改同一个帐户的事务。只要这种静态分析机制一直起作用,就可以通过并行运行所有线程来处理区块。据其特性被顺序或者并行地进行处理。

最后

总之,我们基于区块链的DATx用户行为档案,它会将用户在数字世界的行为与在现实中的行为对应起来,这是区块链落地到现实应用中的关键。我们通过在数字世界中账户拥有者的行为档案,勾勒出用户在现实世界的画像,让其与现实的社会服务网站对接起来,实现更精准的个性化广告服务,从而打造更丰富的广告生态。

0/300
内容不能少于5个字符!

扫一扫关注我们

扫一扫关注我们

去中心化用户行为档案的技术解读 | DATx系列之一

本文转载自『DotC United Group』,作者:DotC United Group,Morketing经授权发布

DATx是由新加坡Cosima Foundation发起,针对当前数字广告行业的革命性创新运动。

DATx致力于为整个数字广告生态系统打造良好的统一协议,建立一套完整的广告生态系统运行机制,实现一个高效的、安全的、良性发展的、经济利益最大化的广告生态系统。

DATx也将开启区块链基础链技术革新,针对数字广告行业海量碎片化数据,高并发,实时性等特性,探索更优的基础链技术实现方式。并将首创 POI “Power of Identification”的技术研究,引领区块链对于碎片化用户行为的结构化档案构建,去中心化存储与传输等方面的技术升级。并将结合人工智能技术和大数据技术,构建真正以用户为中心的区块链去中心化数据方案,建立一个创新性的未来智能广告生态环境。

目前,大多数广告企业和机构都会通过自己的技术手段从不同的渠道获取用户数据,然后建立数据中心保存用户的数据,分析用户数据,实行广告相关的活动。

随着数据量的急剧攀升,单一的服务器已经无法满足数据存储的要求。现在,大多数机构开始使用分布式文件系统,能够支持多台主机通过网络同时访问共享文件和存储目录,并用关系数据模型并且支持SQL语句查询数据。但是这背后的思想仍然是中心化思想,大量的数据集中统一存放在机构或者公司自己的分布式文件系统中,公司的服务器若发生被攻击事件,极容易发生数据泄露,造成用户的隐私被秘密获取。

数据被中心化存储时,媒体利用自己数据中心的用户数据,向广告主提供“人群定向”服务,而广告主利用自己手中的用户数据进行“重定向”广告投放。这种情况下,各个广告主和媒体采集的用户数据存储在各自的服务器上,形成数据孤岛,无法形成全面准确的用户画像,广告的个性化投放效率也比较低下。

当我们将用户的行为信息记录在区块链上之后,一切都会不一样。在区块链中,用户的每一步行为都是有序的,可见的。

任何加入DATx的广告平台都将可以触及这些数据,从而可以更好地对用户进行定位,提供更好的广告体验;同样任何通过DATx投放广告的广告主也将有机会更好地知晓他们的广告消耗的真实情况,并且触及更为精准的用户。

用户何时,在某平台上看了什么类型的广告,广告的内容是什么,用户在广告的停留时间是多长,当用户点击广告之后,他是否下载、订阅、购买产品。上述用户所有的行为构成了一个完整的事件链,这就是用户的行为链;加上不同网站或者不同 APP中有着千千万万个这样的事件链,我们就可以更加精确的获得用户的兴趣。

区块链中完整的链条式的用户行为记录,将其归整为DATx用户行为档案,可以让我们模拟出完整的用户画像,知道用户在媒体上个各种浏览、点击、购买背后的商业真相。

比如,对转化有要求的广告主,他希望用户不要流失。那么,DATx去中心化用户行为档案就可以帮助分析用户怎么流失、为什么流失、在哪个环节流失。

我们的DATx去中心化用户行为档案通过区块链技术记录了完整的用户行为数据。如果广告主有要求,在得到用户授权的情况下,我们可以把用户数据做成一个按小时、按天,或者按用户级别、事件级别拆分的一个表。这个表可以知道用户最简单事件,比如登录或者是购买,也可以知道哪些是优质用户、哪些是即将流失的客户,这样的数据每天或每个小时都能看到。

广告主或者媒体对相关数据进行统计、分析,从中发现用户访问网站和广告的规律,并将这些规律与网络营销策略等相结合,从而发现目前网络营销活动中可能存在的问题,并为进一步修正或重新制定网络营销策略提供依据。

站在用户的角度来说,在中心化应用的时代,用户使用应用时产生的所有数据都会被中心化地存储在各个应用及平台上,数据的所有权和使用权不完全归属于用户。

无论广告主和媒体做什么样的广告活动,用户对于自己的数据被用于利益交换完全不知情。按照常理来说,用户数据的所有权应该属于用户,用户可以选择提供自己的兴趣偏好以便获得个性化广告服务,也可以选择隐藏自己的数据,或者只选择提供部分数据。

DATx用户行为档案解决方案

DATx提供了用户行为档案数据远程存储功能,其核心功能是用户将用户行为档案数据存储在网络节点中,之后用户可以在任意地点获取和访问这些数据。

把用户行为档案数据存储到一个网络中,意味着其他的网络节点——存储节点,将保存你的数据,而且负责在用户需要访问和广告平台进行大数据分析时,会归还这些数据。

由于网络节点担负的重要责任,DATx对网络节点做出如下关键假设:

1)存储节点不可信任性:最坏情况下,存储节点会对存储在上面的数据进行窃取、修改。因此必须使用强有力的机制来阻止和防止这些恶意行为。

2)存储节点盈利性:存储节点需要利润来维持运转,特别地,在存储节点上存储私密性和安全性很强的数据时,存储节点会收取更高费用。而且必须保证,存储数据的存储节点一定要保证能拿到存储数据的报酬。

3)存储节点不稳定性:当需要访问获取数据时,存储节点不可能实时在线,而且可能随时离线。

4)网络的不友好性:如果网络存在漏洞,有人会并利用这些漏洞攻击节点谋取私利。

DATx的设计要求是必须在如上特点的存储节点中安全地存储数据。

存储节点选择原则

存储节点的选择是DATx用户行为档案存储系统中重要的环节。

DTAx网络中,加入DATx生态的任何用户(包括广告主、渠道、广告受众)都可以成为网络存储节点。用户有权选择他们自己的存储节点,也有权利选择自己是否成为存储节点。

当用户成为存储节点后,会获得DATx代币激励,并且,如果有用户在该存储节点存储数据,该存储节点会获得额外的代币激励。但是需要注意的是,攻击者有可能试图低价格和伪装方式来操纵用户的选择。

文件合约

文件合约是存储需求方和存储节点间的合约。存储需求方同意给存储节点付费,而且存储节点在一定的时间段里为存储需求方代为存储文件。

存储节点代为存储文件需要激励机制来激励。文件合约为存储节点保存好文件提供了强有力的奖励机制和动机。

存储节点保存好用户行为档案就可以得到相应的报酬,但是,保存不好文件,存储节点就会受到惩罚。

文件合约开始后,存储需求方和存储节点双方均在合约里存放一定量的代币。

当存储节点完成合约后,合约里存储需求方存放的代币被用来支付给存储节点,并返还存储节点开始存放的代币。如果存储节点不能顺利执行合约的义务,存储节点存放在合约里的代币将被扣除。

文件合约记录在区块链中,区块链相当于文件合约的第三方代管者。当文件合约结束后,存储节点必须向区块链提供存储证明以证明它依然存储着这些文件。在存储节点提交了存储证明后,存储节点才能收回存放在合约中的代币和收到存储需求方的支付款。如果存储节点没有及时提供存储证明,那么它就收不到奖励。

文件冗余

存储需求方不能只将自己的信息存储在单一的节点之中,因为在DATx对存储节点做出的假设中,存储节点不可避免地存在着不稳定性,即存储节点不一定实时在线或者出现故障。

在这种情况下,可以在多个存储节点同时备份文件来分散风险。当用户的行为档案存储在五个不同的主机时,那么只有五个主机同时出现问题,才会导致丢失数据的情况发生。这就是基于副本(replication)的数据冗余技术。副本冗余技术将原始数据文件复制为n份,分发给不同的网络节点;当一个数据节点失效时再利用可用节点恢复失效数据。然而,基于副本的数据冗余方案大大地增加了存储成本开销,难以有效支持区块链技术的快速发展。

另外还有一种Reed-Solomon Codes方案,在用户读取数据时,若原始数据失效,则需要首先下载k个冗余数据块,然后恢复出所有的原始数据块。因而,随机访问单个原始数据块时,下载的数据量大,不利于数据读取。

在分析用户随机访问和顺序访问的概率开销基础上,DATx采用再生码 (Regenerating Codes)实现数据备份,相比Reed-Solomon Codes编码具有更小的恢复带宽。

首先,根据最大距离可分码(MDS)将M bytes大小的用户行为档案文件分为n个分片,分别保存在n个存储节点中,每个分片M/n bytes大小,其中任意k个分片可以重建出原始文件。

当节点失效时,冗余必须不断地被刷新,这样就会导致大量数据在网络上传输。

这个时候,我们应该高效地重建新的分片来应对这种失效。一个新的分片副本应该直接从其他保存该分片的节点复制过来,但是传统的纠错码需要通过原始数据来产生一个新的编码分片。这个时候我们考虑只访问纠错码分片来生成一个纠错码分片。

在初始策略中,保存新的分片的节点(我们将称其为新手)下载k个分片并重建文件,并从原始文件中生成新的编码分片。因此,传输了Mbytes的数据却只产生了M/k大小的分片。

我们确定了一个新手需要产生一个MDS或者近似-MDS分片所必须的最小数据量,这种方案称为最优维持MDS(OMMDS)。

就OMMDS而言,再生码RC具有非常小的带宽开销,即使新手只和k个节点相连接。在更高的层次上,RC方案改进了OMMDS,让新手保存了所有下载的数据,而不是把它们都删除了。结果,RC分片比MDS稍微要大一些,比例因子为:

是保证能够重建出数据的必要条件。

我们特别地证明,如果新手只能连接k个节点下载数据生成分片,那么M-byte的下载量是信息论的最小值。如果新手允许连接超过k个节点,那么需要下载的数据总量会显著地减少。比如k=7,n=14,新手可连接n−1个节点,那么只需要传输0.27Mbytes数据来生成新的分片,比初始策略减少73%。

然而,相关的额外开销也是必须的,结果是混合策略比OMMDS提供了更好的可靠性带宽开销。为了改进混合策略,我们必须看的比MDS更远。

再生码它在我们坚持MDS的“对称性”下最小化一个新手需要下载的数据量。在更高的层次上,RC方案通过新手保存所有下载得到的数据来改进OMMDS,而不是将这些数据扔掉。结果就是RC码会有比MDS更大的分片,但却只需要很少的维持带宽开销,即使新手之和k个节点交互。比如k=7,一个新手只需要下载0.16Mbytes数据—比OMMDS减少了39%,比初始策略减少了84%。更进一步,我们的在基于真实分布式系统测量得到的节点可靠性模拟实验中指出,在k=7时,RC较混合策略减少了25%的带宽。随着k增大RC性能更好。

数据加密

数据加密的目的是在存储节点试图窥探、窃取、破坏数据时能保护数据的隐私性与安全性。在用户行为数据被上传至网络上之前,所有DATx用户行为档案数据都经过高度加密处理,而且解密过程不能再存储节点进行,只能在下载后才进行。存储节点在任何情况下都不能解密存储在其上的数据。

著名的非对称加密算法RSA速度较慢,这里我们使用了更安全的椭圆曲线算法——ECC来做非对称加密基础算法。ECC的210位算法难度就相当于RSA 2048的难度,性能则是数量级的区别。

ECC算法

非对称算法就是是设计一个数学难题,使得单向计算很方便,而反向计算很难,如RSA使用因式分解的原理,两个大质数相乘很容易,但大数分解质因子很难。

椭圆算法ECC其实就是利用乘法容易、除法难的特点,设计一个乘法:K = k * G,其中大K是公钥,小k是私钥,G是生成点。由私钥推导公钥很容易,只需要k个G相加即可。但是从公钥推导私钥很难,也就是无法计算公钥K除以G。

这个加法不能用我们日常的整数加减法,而是利用函数所定义的一个特殊椭圆曲线上散列点的特性定义的加法。其中p是一个常数。不同p可以设计成不同的曲线,我们与比特币的方法一致,使用,这个曲线的名称就叫secp256k1。这是一个非常大的数,曲线上的点是一个复杂散点,为了方便展示,这里用小很多的17阶曲线表示加法的定义:

加法定义就是曲线上任意两个点P1和P2,必有第三个点P3,是P1和P2连线的延长线与曲线相交点的x轴映射的点,定义P1+P2=P3。通过数学算法可以证明这种点满足加法乘法交换律:

A + B +C = A + (B + C)

A*(B+C) = A*B + A*C

需要说明:这里为了完善计算,还定义了无穷远点O(相当于0),满足:

P1 + O = P1

ECC加密过程:

1)K = k * G,大K是公钥,小k是私钥;

2)把明文编码成曲线上的点M;

3)生成一个随机数r;

4)计算密文C1=M + r*K, C2 = r*G,其中大K是公钥;

5)对方收到密文后,可以计算C1 - kC2 = M,其中小k是私钥;

6)攻击者得到C1、 C2,公钥K以及基点G,没有私钥是无法计算出M的。

ECC算法用很短的密钥就能达到RSA2048的安全强度,而且计算速度有数量级的提高,所以目前应用很普遍。

因此,整个流程可以简要归纳如下:

1)产生加密序列:每个用户行为档案文件及其中的所有块会产生一个加密的序列信息。

2)上传档案:底层文件总是需要存储到硬盘上的,而大家又不是活雷锋,为了鼓励大家踊跃的参与其中,DATx会通过激励机制激励网络节点变为存储节点。

3)跟踪文件:跟踪每个文件的版本历史记录。

4)存储节点:每个网络节点只存储它愿意存储的内容,以及一些索引信息,有助于弄清楚存储的需求方是谁。

5)文件索引:查找文件时,通过文件的加密序列信息就可以在网络查找到储存该文件的节点,找到想要的文件。

6)通过去中心化命名系统,每个文件被命名为易于人类阅读的文字。此时通过搜索,就能很容易地找到想要查看的文件。

高并发问题

DATx通过并行链和DPOS的方式解决延迟和数据吞吐量的问题,比如BTC是大约最少三十分钟后数据才能被确认,ETH也需要几分钟的时间。但是,基于石墨烯底层的BTS和STEEM却可以达到1.5S的平均确认速度和有限条件下实测3300TPS的数据吞吐量。

DATx通过并行链的方式,使得数据吞吐量得到极大改善。

DATx区块生成器,将用户行为信息传递到独立的线程中,从而进行并行地评估。每个帐户的状态取决于它接收到的消息。调度表是区块生成器的输出,并且将被确定性地执行,但是生成调度的过程不必是确定性的,所以区块生成器可以利用并行算法来调度事务。

并行执行时,当脚本生成新消息时,它不会立即发送,而是在下一个周期中发送它。无法立即发送的原因是因为接收方可能会在另一个线程中主动修改自己的状态。

延迟时间是一个帐户将消息发送到另一个帐户并收到响应所需的时间。DATx目标是使两个帐户能够在单个区块内来回交换消息,而不必在每个消息之间等待3秒。为了实现这一点,DATx将每个区块分为周期。每个周期分为多个线程,每个线程包含事务列表。每个事务包含一组要传递的消息。该结构可以被可视化为树,其中各层依据其特性被顺序或者并行地进行处理。

在一个周期中生成的交易可以在任何后续周期或区块中传送。区块生成器将不断把周期添加到区块中,直到最长的区块时间间隔达到,或者没有新的可传送交易生成。

可以使用区块的静态分析来验证在给定周期内是否存在两个线程包含修改同一个帐户的事务。只要这种静态分析机制一直起作用,就可以通过并行运行所有线程来处理区块。据其特性被顺序或者并行地进行处理。

最后

总之,我们基于区块链的DATx用户行为档案,它会将用户在数字世界的行为与在现实中的行为对应起来,这是区块链落地到现实应用中的关键。我们通过在数字世界中账户拥有者的行为档案,勾勒出用户在现实世界的画像,让其与现实的社会服务网站对接起来,实现更精准的个性化广告服务,从而打造更丰富的广告生态。