PDU:一种点对点的社交网络

论坛 期权论坛 区块链     
豆包爹   2018-11-20 23:28   3585   0
            Parallel Digital Universe - A Peer-to-Peer Social Network
原文 : https://github.com/TATAUFO/PDU
随着科技的发展,计算机程序所解能决的问题也逐渐从单纯的计算,向各个领域延伸,变得越来越复杂,往往不能够简单的依靠某种算法来的解决。为此,我们开始从现实中寻找答案,试图让经过了时间磨砺的智慧来指导我们的方向。比如,基于生物神经网络的研究而构建的数学模型,启发了现代的人工智能技术。而我们在这里将要讨论的社交网络形态,则是简化后的社会形态向网络功能的映射。
[h1]简介[/h1]现今互联网上的社交网络,大多是基于一个大型的中心化第三方服务。用户基于其上进行维护自己的社交关系并进行信息的传播。但在这种模式之下,此第三方拥有的全量信息使其能够分析出用户的属性或特质,并通过所提供的服务对用户的行为进行诱导(善意或恶意),将用户的行为方式从有意识的个体向无意识的群体方向推进。所以,我们更需要一种基于用户本身的社交网络形态,能够直接跟其他用户,或者自由的选择三方服务进行信息的交互。基于此,我们将提出一个基于点对点分布式的网络(以下简称PDU),脱离特定第三方中心化服务的制约,使得社交回归于近似与真实社会中的社交方式。
区别于比特币全网产生共识,维护单一最长主链的方式,PDU中的每个用户用地址只维护和自己相关的信息和所需的用户关系图谱。每个用户可以按照共同约定条件对获取到的信息进行判断,并根据自己的标准,选择是否相信某个地址的有效性及其信息的有效性,是否参与此信息的传播。
[h1]关系拓扑[/h1]在类似比特币的区块链形态中,地址只有帮助交易进行的单一目的。所有的交易都是根据全部历史的交易状态进行验证,并且只维护单一的主链,即便DAG结构的网络形态本质上也类似。每个地址是独立的、随意生成,其之间不存在除了交易以外的任何关系,且几乎无需创建成本,所以没有任何机制会根据地址来进行惩罚。而在以信息交换为根目的社交网络形态中,我们更希望用关系网及提高地址创建成本等方式来提高地址的可信程度,同时给与每个地址接受或拒绝其他地址行为的自由。
根据自然中真实的双性繁殖的生命形态进行简化,我们可以约定:
  • 最初的网络中只存在两个不同性别标志的地址,其为第0世代地址,作为原始的父母地址。
  • 新的公钥地址被两个不同性别的地址添加签名之后,其地址才能够生效,且为了进一步提高地址生成的成本,其父母地址在某个时间范围之内,只能够生成一个地址。且新的地址的世代为父母地址中较大的世代+1。
  • 不同世代的地址其生命周期可不同。
  • 当某个地址在其生命周期之外发布的信息都被认为是无效的。
  • 因为父母地址跟子地址之间会存在某种联系,所以每个用户有权利根据其子地址的恶意行为选择不接受其任意代父母地址的信息。
所有的地址关系会构成一个DAG结构,建议每个地址维护所有的可知地址,但也可以只维护和自己有交互行为的地址,或者完全不维护,如果用户不在乎信息源地址的可信程度。
[h1]时间证明[/h1]地址有效性验证或冲突行为的验证过程中需要能够证明某个行为不早于某个特定时间发生,如同一地址的A,B两个行为为冲突行为,如果能够证明A不早于n,而B行为不早于n+0.01,则其他节点可以判定A为有效行为,B为无效行为(当然同时也可以认为这个地址是有恶意的地址而进行相应的惩罚)。任意时刻,同一地址只能够发起一个行为,如果发生同一地址相同时刻多个行为的情况,如果行为有冲突,则都是为无效行为,如果无冲突,则可由第三方自行判定行为有效性。
我们引入可持续度量的随机自然参数。规定某个可持续观测并精确度量的自然现象,将其计算的hash值和时间戳放入到行为的数据结构之内,并为其添加签名,来证明其时间的有效性。在实际构建网络的过程中,初期我们可以用某个不可控的随机参数来替代这个外部统一的观测值,同时约定其时间的精度。
[h1]生命周期[/h1]父地址先给新的子地址和时间证明添加签名,之后母地址给上述数据和时间证明添加添加签名,之后将信息向网络发出广播。收到广播的地址对其新地址的有效性按照约定规则进行验证,如果通过验证,则母地址签名时添加的时间证明则为这个新的地址生命周期的开始。
按照子地址的世代,可确定子地址的有效生命周期,之后每个由子地址主动发生的和其他地址交互行为,都会添加上个行为的hash值和本行为的时间证明并添加签名,所有行为以区块链的形式进行保存,并根据自身需要对外广播。而其他用户可以按照地址的生命周期来判断行为的有效性。
注意:
  • 按照约定,不同世代的账号其生命周期不同,世代越小,生命周期越长,但生命周期不会小于某个特定值。
  • 生命周期结束以后,这个地址将不能够有被验证的新行为。
  • 除了0世代地址以外(生命周期无限),其他地址的生命周期的和为一个近似的常量。(但这个并不严格,当网络分裂/平行宇宙产生时...)
[h1]信息[/h1]我们建议每个地址都将其在有效期内生产的信息的hash值都按照区块链的形式进行维护。比如在时刻n,地址生产了一条新的信息,则在原本自身信息之后,将上一个信息或事件的hash值,添加本信息的hash值,本时刻的时间证明,之后添加签名。同时将信息进行广播。
在社交网络中,每个地址更希望获取更新的信息,所以如果用户用添加老的时间戳的方式伪造时间证明,则这些信息有更小的可能性别其他地址所接受。
每个进入区块的行为都对外进行广播有利于其他地址能更容易的验证本地址的可信程度。
[h1]网络[/h1]运行该网络的步骤如下:
  • 用户首先创建一个公钥私钥对,将公钥提供给某个父地址,父地址签名后,将签名后的内容发送给某个母地址进行签名,母地址完成签名之后,在网络上进行广播。
  • 每个收到信地址广播的节点都根据自己已经存储的网络拓扑图,对其进行验证,包括父母签名及父母已创建账号时间约定的验证。如果通过验证,则将其保存在本节点的全体地址拓扑图中,如果只通过父母签名验证,没通过时效验证,则可以根据自定义的方式根据地址间关系进行惩罚。如果没通过签名验证,则直接抛弃。
  • 这个地址每生成一条新的消息后,都顺序的将新的消息添加到消息的尾部,构成一个单链的结构,同时向临近的地址发出广播。
  • 收到广播的地址首先对收到的信息进行验证,然后为消息添加签名,再广播到自己的临近地址。但注意的是,这三个步骤均可以省略。对于一个不在乎信息是否真实的节点,他可以不验证收到的消息签名,同样不验证的消息依然可以广播到自己的临近地址。这样如果第三个地址收到信息后对信息进行验证,则可能会惩罚第二个地址,选择不相信第二个地址。如果你不幸的在一个错误的消息添加了签名,则第三个地址除了自己惩罚这个地址之外,还可以将证据进行广播。
  • 一个节点在接受消息广播的过程可自己设置消息的流转步骤,不建议设置超过6(即一条信息的有序签名不超过6个)。
上述步骤中对于收到信息的验证过程可以有很多种方式:
  • 到已经信任的地址节点询问。
  • 到待验证地址节点请求全部数据,并亲自验证。
  • 到待验证地直接点或自身的周边节点请求待验证地址节点近期数据,进行有限的验证。
[h1]货币[/h1]在现实中,每一种货币都存在某个中心化的发行机构而非去中心化发行。在社交网络中,每个有效的地址都可以在生命周期内通过合约的形式发行某一种或多种的货币,而用户可以根据自己的判断去选择相信或者不相信某种货币。
发行货币的地址可以选择持续在线维护自己的区块生长的进程的广播,也可以选择定时广播。如果选择持续在线,则这个地址节点不但可以发行货币,也可以作为某个大型的第三方信息交换中心。货币发行节点,会用自身单链的形式来维护每个时刻的所有账号中货币数量,并通过合约对网络中的其他用户提供查询及交易方式。
注意:
  • 因为每个地址只需要通过自己收到的信息来判断其他地址是否可信,并不需要比对整个网络的当前状态,所以无论是货币发行合约还是对于自身所广播信息的处理,都支持线下的计算。
[h1]信任体系[/h1]在社交网络中,并不存公共的单一主链。每个地址都需要将自己的行为维护成单一主链,并将其添加签名后尽快的对外广播。一个地址在收到广播之后,会对所获取信息进行有效性验证,并根据验证的结果来判断自己对于某个地址或某些相互关联的地址是否信任,并且有义务将收到的矛盾信息对外广播。
一个地址对于另一个地址的信任程度会根据时间和行为的变化而变化,并非一成不变的。而且不同地址对于同一个地址也可能采取不同的信任程度。
[h1]结论[/h1]我们在此提出了一种社交网络的模型,其结构是对于真实世界简化后映射到社交网络:
真实世界社交网络时间流时间证明繁衍关系拓扑个人地址记忆单一地址行为区块链信息传播信息广播信任基于以获取信息的验证犯罪被确定的矛盾信息我们并不追求一个完美的能够实时达成共识的整体世界状态,我们希望建立一个基于个人判断,自由,高效的信息传播网络。与传统的社交网络最大的区别在于其并不基于单独某个第三方的服务,而是基于用户及用户间的关系和信息本身的认证。
[h1]FAQ[/h1]         
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:187
帖子:6
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP