Odin链(OdinChain)重新定义浏览器
当前的网络广告形式主要有文本、图表、音频、视频、超链接、虚拟现实等方式。网络媒体通过展示广告、富媒体广告、文本关联广告、电子邮件广告、文本链接广告、赞助式广告、分类广告、植入广告、社交媒体、视频网站等方式传递广告信息。虽然网络广告已经被广泛接受,成为市场中的主要宠儿,其份额也逐年提升,市场潜力巨大,但是网络广告仍然存在一些问题。
为解决前述互联网广告存在的问题,我们基于区块链技术、智能合约设计了Odin广告公链。在它的基础_上可以开发去中心化的浏览器应用,广告主可在浏览器上投放广告,浏览器使用者可选择是否浏览广告,双方通过智能合约制定协议有机结合在一起。
如图2.2所示,广告主和浏览器使用者首先注册成为公链用户,获得--对公钥和私钥,然后注册成为浏览器用户。广告主在浏览器上设定好智能合约内容(广告发布和基于广告浏览量的奖励分发协议),用私钥签名后发布到公链上,浏览器使用者从公链上同步数据后,可选择是否与广告主签订智能合约。如果使用者需要签约,则只需用自己的私钥在合约中签名,然后浏览器会把合约以函数调用的形式,广播到Odin系统中。系统维护节点接收到合约之后,会解析智能合约,把智能合约中的内容解析出来,打包到新区块中。新区块创建完会被广播到Odin系统中,等大多数挖矿节点达成共识后被添加到区块链中。在智能合约中包含的主要参数有:广告覆盖的地区范围(Range)、广告发布周期(Period)、广告费用(Bonus)、广告需返回的参数(Returns)、基于广告浏览量的奖励分发协议等。若智能合约用adSmartContract表示,那么智能合约将携带参数发布到Odin系统中,odin 系统维护节点会解析智能合约并创建新的区块,形式表达如下:
Odin系统维护节点《-adSmarlContract( Rangc, Pecriod, Bonus, Rcturns)不同的角色通过智能合约,主动选择自己的意愿条件,将不同的参数通过智能合约传递给Odin系统。Odin 系统维护节点在确认智能合约的有效性后,达成共识创造新的区块,区块内合约的执行使得信息的价值可以在用户间传递。整个过程是公开透明且不可篡改的。
区块链将记录交易信息、智能合约和广告浏览数据等信息,并保证信息的一致性和安全性。Odin系统维护节点是系统数据的维护者,他负责保证数据的一致性和安全性。
项目优势
Odin广告公链:基于区块链技术的数字广告平台。
Odin浏览器:基于Odin广告公链研发的去中心化浏览器 现行流量垄断机构的破局者。与传统的网络广告平台相比,Odin 项目具有如下优势:
·用户是Odin浏览器的使用者,将享有屏蔽和阅读广告的权力,主动阅读广告将获取相应的Token奖励。
·屏蔽不良广告,让用户在安全防护网下进行网上冲浪。
·广告流通过程公开、透明,广告主将很清楚的知晓每一笔广告费用流向何处。
·数据真实可靠,有助于广告费用的评估。为了获得Token收益,用户将会把阅读广告的行为数据对广告主公开,广告主将得到用户阅读广告的相关数据,进行深度分析,从而评估广告的效果。
·人人都可以成为广告运营商,只要其具有运营广告的能力,就可以根据其业绩获取Token收益。
·采用去中心化、独立公链系统管理模式,保证收益公平。
·Odin浏览器通过软件充分保护用户隐私、保证信息真实可溯源。
Odin广告公链系统
1.设计思想
(1) 数据可靠性和-致性。数据--致性其实是数据库系统中的概念,可以简单的把一致性理解为正确性或者完整性。而在分布式系统中,数据--致性往往指的是由于数据的复制,不同数据节点中的数据内容是否完整并且相同。
(2) 可迁移机制。Odin节点会随着用户的流动增加、转移和退出。系统要保证增加Odin节点时,能够扩充系统的边界、正常的运行,并且能够在一个记账周期内根据Odin节点的贡献,分配相应的权益。同理,当Odin节点从系统中移除时,不影响信息的传播、记账等功能,从而保证系统可伸缩。
(3)轻客户端。为了减轻Odin节点的工作强度,Odin节点的客户端分为两类: Odin数据同步节点和Odin浏览器节点。Odin数据同步节点负责数据的实时同步、更新,Odin浏览器节点调用距离其最近的Odin数据同步节点中的数据,从而实现快速响应。
(4) 滞后结算策略。分布式交易体系的问题在于收款人很难校验之前的某位资产拥有者是否进行了双重支付(双花)。通常的解决方案是引入可信的第三方,如银行,来对每一笔交易进行检验,以防止双重支付。而如果想要排除第三方中介机构,那么交易信息就应当被公开,需要整个系统内的所有参与者,都有唯一公认的历史交易序列。因此,采用滞后结算交易的方式,通过记账节点对账来排除双重交易,保证交易在交易期间内是首次出现的。
(5) 权益锁定。为消除记账节点迁移、撤出Odin系统带来的负面影响,维护系统的可靠运行,当记账节点获取到相应的权益后,会对其权益进行锁定,在一定时间内,这些权益不能进行交易。待记账节点的服务达到一定时间后,不再影响Odin的正常运行,此时开始解除锁定。解除锁定后,用户可以自由交易权益。权益锁定期内,记账节点也能够获取相应的利息。
(6) 快速达成共识。分布式交易体系的问题在于收款人很难校验之前的某位资产拥有者是否进行了双重支付(双花)。
(7) 价值共识与激励。只要Odin节点贡献自己的能力给其他节点,那么它就可以获取对等的权益;并且Odin节点在网络中存在的时间越长,获得的权益也越多。
2.系统概述
尽管区块链技术有--定的瑕疵(Eyal 2015, Eyal and Sirer 2013, Nayak et al. 2016)( AZURE2016, CACHIN 2016, ROSS and SEWELL 2015),但区块链技术(Garay, Kiayias, and Leonardos2015, Nakamoto 2008)(2016)作为创造信任的机器,具有分布式结构、建立信任、公开透明和时序不可篡改等技术优势,吸引了金融界和工业界的广泛关注,并开始被用于重塑交易系统,在降低交易成本和提高交易效率方面效果显著。
基于工作量证明(Proof of Work, PoW )(Nakamoto 2008)是当今去中心化加密算法中最稳健的共识机制。PoW主要用于选取一致的领导力节点,并给参与者合适的奖励。在区块链系统中,作为共识机制的参与者,系统维护节点能够根据其算力被竞选为领导力节点。有了算力成本的约束,可以防止伪装成多节点的大算力攻击者,相应的代价就是要消耗大量的算力。算力消耗是基于工作量证明(Proof of Work, PoW)构建的区块链系统的问题所在,大量的系统计算资源和电能被耗费,使得系统的扩展性受到制约。
在2011年早期,权益证明PoS(Proof of Stake)的概念被提出(Houy 2014)。直观的说,权益证明是拥有Token量证明的一种形式,Token龄消耗是权益证明的一种形式。因此,权益证明被用在ppcoin中,并用来改进PoW工作机制耗费电能的缺点,且不容易被伪造。2014年,以太坊设计了以太坊PoS架构,被称为友善小精灵Casper(Casper the friendly ghost)(Houy 2014), 是一种PoW协议的PoS变种。在以太坊系统中,只有在验证人缴纳保证金的情况下,他的签名才有意义。客户端智能依赖于出自当前锁定保证金的验证人的块。已知当前锁定保证金的验证人,就可以鉴别出共识认可的链。不知道现在交纳保证金的验证人列表的客户端,必须先通过另外的信道获取这个列表,这个限制通过要求所有人用当前信息鉴别共识解决了“远程攻击”问题。
为了解决PoW的挖矿效率低下,消耗资源的问题,我们结合浏览器用户访问浏览器的行为(可以理解用户对Odin系统的有用贡献,useful contribution,简称贡献)和区块链技术,设计和构建Odin系统。在工作量证明的过程中充分考虑浏览器用户的贡献,实现了用户贡献+工作量证明的算法。为了降低系统的工作量,在节点选举过程中使用浏览器投票的方式(图3.1)。
Odin生态系统包括浏览器用户、广告主、Odin链系统维护节点和Odin数据同步节点。
·Odin浏览器节点:用户节点。用户通过私钥签发智能合约,向Odin系统发布用户行为数据用于证明自己对系统的贡献,根据其贡献获取对等的奖励(包括:广告主支付的广告费和挖矿奖励)。智能合约将封装浏览器的用户行为数据和随机数,并打包成一个区块,加密后广播到区块链系统中,等待系统维护节点的验证。
·Odin浏览器节点:广告节点。广告主使用智能合约在浏览器上发布广告,并把合约信息封装后发送给Odin链系统维护节点。Odin 链系统维护节点对信息进行解析,并对信息进行验证,验证完成后打包到新区块并广播到网络中。
·Odin链系统维护节点:即Odin链矿工,是验证浏览器用户贡献的重要节点,它使用贡献度证明(Proof of Contribution)+工作量证明(ProofofWork)的机制,验证Odin浏览器节点的贡献,并将最终产生的新区块广播到P2P网络之中, 实现系统共识。 此外Odin矿工会把发送到公链上的交易和智能合约打包到新区块中。
·Odin数据同步节点:一般为小型PC, 从公链同步下载最新智能合约数据和用户钱包数据到节点上,方便附近的终端用户同步下载相关数据。
3.0din浏览器节点:用户节点
用户节点通过阅读广告,触发与广告主之间签智能合约的动作,成为某个广告传播的贡献者。用户通过Odin浏览器节点,把其贡献和浏览器生成的随机数通过智能合约封装,最后加密打包生成区块广播到网络中,等待系统维护节点统计并返回某个广告的激励和部分区块奖励。假设随机数是RandNum,贡献是UC, Odin 浏览器客户端将对这些参数进行封装,签署智能合约,并广播到区块链系统中。形式如下:
Stepl:调用智能合约封装贡献,返回SC,SC《-SmartContract( RandNum, UC)
Step2:通过浏览器客户端发送封装后的消息,例如: SendtoBlockchainsevers(SC)
Step3:通过浏览器客户端不断监听数据同步节点的数据,以更新钱包等信息。
4. Odin浏览器节点:广告节点
广告主通过发布广告,触发与用户之间签智能合约的动作,成为广告传播的雇主。广告主通过浏览器发布广告,把广告发行周期、范围以及广告奖励等参数通过智能合约进行封装,然后通过浏览器生成数据区块,广播到网络之中,并寻求系统维护节点把广告信息写到区块链系统中。当广告信息被写入区块之后,就会把信息广播到数据节点,数据节点与广告主签署智能合约,同步广告内容,等待浏览器用户的访问。假设广告主发布广告需要传递的参数有period,place和price,智能合约将把这些参数封装,签署智能合约,并广播到区块链系统中。形式如下:
Stepl:调用智能合约封装广告参数,返回SC,例如: SC《-SmartContract(RandNum, period,place, price);
Step2:通过浏览器发送封装后的消息,例如: SendtoBlockchainsevers(SC)
Step3:增加区块并验证区块的有效性,例如: AddBlock( ) and Validation( )
Step4:数据同步节点与广告主签署智能合约,SignSmartContract( )
Step5:同步广告数据DataSynchronization( )
5.Odin区块链系统维护节点
Odin区块链系统维护节点构建系统共识,保证数据一致性和安全性。为保证Odin系统维 护节点的权益,保证其能够公平的参与记账权的分配、公平参与区块的产生,所有Odin浏览器用户产生的有用贡献与随机数一起广播到网络中。Odin 系统维护节点捕获浏览器用户的贡献信息后,将解析Odin浏览器给的随机数, 由此来判断是否由自己来计算贡献度值。用RandNum(Useful contribution)表示Odin浏览器产生的随机数形式如下:
Odin系统维护节点地址= hash(RandNum)
只有当随机数的hash运算结果与Odin系统维护节点地址相同时,该节点获取节点数据统计权。
同时,为了让贡献度能够影响系统维护节点的挖矿能力,在工作量证明的同时,引入贡献参数。假设用D(Dificult)表示当前挖矿难度,用UCs(Useful contributions)表示系统维护节点统计的贡献总和。当且仅当当前系统维护节点的UCs高于80%的系统中的其他系统维护节点(目的是让1/5 的算力参与挖矿,剩余4/5算力继续同步数据,避免算力浪费),将有资格进行工作量证明,即:
OdinProof(UCs, D,hash, 20%)
与PoW相同,当且仅当其解hash值的速度最快,将会获取创建新块、记账的权力。
6. Odin区块链
参考以太坊的区块头来设计Odin链的区块头(Wood,2014),Odin区块头封装了父块Hash、版本号、系统维护节点地址、区块序号(高度)、Bloom过滤器、当前Token总量、Token 使用量、难度级别、附加数据、混合摘要、随机数、交易根、状态根以及收据根等信息,其中交易根、贡献(Contributions Root)根、智能合约(Smart Contracts)根、密钥根分别是交易树、有效页献树、智能合约树的根节点Hash值,而交易树、页献度树和密钥树是由Merkle Patricia树构造而成的。交易列表保存Odin链交易信息,贡献度树保存Odin链的贡献度数据信息,这与比特币和以太坊的区块结构类似(Nakamoto2008,Wood2014)。
Odin链系统维护节点和Odin数据同步节点对于历史区块链信息的需求不同。Odin系统维护节点在挖矿过程(记账过程)中需要链上的所有信息,它们会同步下载整条Odin链,从创世纪块到当前块,执行或校验其中包含的所有交易、贡献和智能合约。Odin 数据同步节点仅仅下载Odin链的头(从创世纪块到当前Odin块的头)、智能合约、钱包状态数据和广告内容等数据,不执行任何的交易或检索任何枉关联的状态。由于Odin数据同步节点可认访问块的头,而头中包含了3个树的Hash,所有Odin数据同步节点依然可以很容易生成和接收关于交易、贡献度和智能合约三类信息的可验证答案。
取得记账权的Odin系统维护节点将当前Odin块链接到前一Odin块,形成最新的区块主链。各个Odin块依次链接起来,形成了一条从初始Odin链到当前区块的最长主链,从而记录了Odin链数据的完整历史,能够提供Odin链数据的溯源和定位功能,任意数据(包括交易信息)都可以通过此链式结构顺藤摸瓜、追本溯源。如果短时问内有两个Odin涟节点同时笄山两个新的Odin块加以链接的话,Odin 链主链可能会出现暂时的“分叉”现象,共解决方法是约定Odin链节点总定选择累计贡献率最大的Odin链。
主要技术
1.贡献度计算过程
1.1.节点类型
在Odin链中,根据节点在网络中的作用,把节点分为轻节点和重节点。轻节点包括Odin浏览器节点和Odin数据同步节点,重节点包括Odin系统维护节点。Odin浏览器节点是安装Odin浏览器的客户端,用户可以通过Odin浏览器贡献广告阅读行为数据。Odin数据同步节点负责同步最新智能合约、钱包数据和广告数据。Odin系统维护节点则负责计算Odin浏览器节点的贡献度、记录节点之间的交易行为,它是具有一定计算能力的服务器。
1.2.记账周期
贡献度记账周期是指Odin链统计贡献度的周期。自Odin链开始运行,每隔一个贡献度记账周期,将会选举一个或多个Odin系统维护节点来统计Odin浏览器节点的贡献度,并分配Odin权益给Odin浏览器节点。贡献度记账周期不宜设置过短,周期太短会使得系统中的节点频繁的统计贡献度,消耗大量的计算资源。贡献度记账周期也不宜设置过长,过长的记账周期会降低贡献者的积极性, 不利于Odin链的建设。
交易记账周期是指对Odin链中交易记账的周期。自Odin 链开始运行,每隔一个交易记账周期,将会选举一个或多个Odin链节点来统计Odin节点之间的交易数据,保证不会出现双重支付。相对贡献度记账周期,交易记账周期更短。过长的交易记账周期会使得系统中的交易不能够快速确认,不利Odin Tokcn的流通。
1.3. 贡献度计算
(1) Odin浏览器节点贡献度计算过程
Odin浏览器节点贡献阅读行为流量,然后把流量广播到网络中。Odin系统维护节点捕获Odin浏览器节点广播的流量数据,然后根据流量计算各Odin浏览器节点的贡献度,并按贡献度比例分配广告费用和区块奖励给浏览器节点。在此过程中Odin系统维护节点会打包贡献度信息到新区块中,并记录到区块链中。
例如(图4.1) 中:用户在浏览器中点击广告是一种用户行为,odin浏览器会记录该行为数据并打包、广播到P2P网络中,等待重节点挖矿。重节点捕获到该信息后,根据用户的行为判断其对广告的贡献支付广告费,同时进行系统激励。
(2) Odin浏览器节点贡献度计算
假设1: Odin浏览器节点阅读广告的行为是人为、主动和真实的广告阅读行为,而非机器、被动和欺骗的广告阅读行为。
假设2: Odin 浏览器节点阅读广告达到一定数量后,其阅读广告所获取的信息边际递减,其阅读广告的效果效用边际递减。
在假设1和假设2成立的情况下,我们可以根据Odin浏览器节点在一个记账周期内的广告阅读行为(actions)来计算该Odin浏览器节点的贡献度,并定义关于贡献行为的效用函数,用来计算Odin浏览器节点在T时刻的贡献度:
Contribution(T) = U(actions)
贡献度是关于阅读广告行为或流量的函数。
可选取凸函数、凹函数或者线性函数作为效用函数。若广告阅读行为较为平均,可以选取线性效用函数。若系统中存在刷广告阅读行为次数行为的Odin浏览器节点,为了防止这些节点刷广告阅读行为量的行为,可以采用凹函数作为效用函数,即随着广告阅读行为次数的增加,这些节点因广告阅读行为次数增加带来的贡献度增量降低至0。
1,4. Odin记账节点选举
Odin链中的记账节点必须要有足够的计算能力、存储空间和带宽才有资格被选举为记账节点。假设记账周期产生的数据总量(Data Volumn) 共计X千字节,若0din链节点的计算能力≤X千字节,那么该Odin链节点将不具有资格参选记账节点。与PoS的思想相似,重节点代表一系列浏览器节点的权益,其代表的浏览器节点越多,被选择作为记账节点的可能性越高。假设T时刻0din链节重节点i记录的复利贡献量总量为iTWContribution(T),那么它是否有资格记账由下面的公式来确定:
π是贡献度的阈值,用来确定记账资格,选出少数的具有记账能力的记账节点。可以选取20%的重节点来记账,并通过PoW挖矿机制来从20%的重节点中选出记账节点。
1.5.权益分配
被选举来记账的Odin系统维护节点将同步所有其他Odin系统维护节点的贡献量数据,并统计T时刻Odin链所有Odin浏览器节点的总复利贡献量WContribution(T),它等于所有Odin链节点的贡献量之和,即:
1.6 交易过程
交易是指Odin链节点之间的资产转移行为。定义UTXO (Unspent Transaction Outputs)是Odin链节点未花费的交易输出。交易构成了--组链式结构,所有合法的Odin链节点交易都可以追溯到前向一一个或多个交易的输出,这些链条的源头都是挖矿奖励,末尾则是当前未花费的交易输出。
当节点发起交易,会把交易数据打包并广播到网络中。Odin系统维护节点捕获其他节点的交易数据后,将核算、稽核节点交易信息,并创建区块。区块创建完成后,交易将被确认,并完成。为了防止Odin系统维护节点的交易存在欺诈等行为,Odin系统维护节点只能通过计算贡献量和交易手续费获取收益,它不能参与任何交易。
Odin链经济模型
1. Odin Token价值基础
Odin Token是Odin链。上的原生资产,Odin Token的价值起源是其能够方便的表征和度量Odin链。上的数字化经济活动。Odin Token既代表Odin链的所有权又代表使用权:使用Odin链投放广告需用OdinToken支付一定的费用,体现OdinToken的使用权特性;持有OdinToken,代表拥有Odin Token的一部分,相当于Odin链的股东,能够参与到Odin链治理的最高决策,体现OdinToken的所有权特性。
2.激励机制
Odin网络包含其内建的Odin Token,在网络内包含一种Odin Token的原因是多重的。首先,区块中新发行的部分Odin Token被奖励给系统维护节点以促进网络安全;其次,区块中新发行的部分Odin Tokcn和广告主支付的广告费被按贡献度比例奖励给用户,以激励用户使用Odin浏览器浏览广告,促进网络生长;最后,用它来支付是一种反欺诈机制。类似Hashcash 的以交易为单位的工作量证明和放任自由是收取交易费的两个替代方案,前者浪费资源并且对于低档计算机和智能手机是不公平的,后者将会导致网络立刻被无限循环的“逻辑炸弹”合约淹没。
评论
查看更多