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 的以交易為單位的工作量證明和放任自由是收取交易費的兩個替代方案,前者浪費資源并且對于低檔計算機和智能手機是不公平的,后者將會導致網絡立刻被無限循環的“邏輯炸彈”合約淹沒。
評論
查看更多