999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

ShuffleParty:一種新的區塊鏈隱私保護機制

2023-03-27 02:04:14胡鋒鳴趙紅武
計算機技術與發展 2023年3期
關鍵詞:機制用戶

胡鋒鳴,趙紅武,金 瑜

(1.武漢科技大學 計算機科學與技術學院,湖北 武漢 430065;2.湖北省智能信息處理與實時工業系統重點實驗室,湖北 武漢 430065)

0 引 言

2008年11月1日,中本聰(Satoshi Nakamoto)發布了比特幣白皮書,提出了比特幣概念[1]。而后2009年1月,中本聰創建了第一個區塊,被稱為“上帝區塊”,幾天后第二個區塊誕生,與創世區塊連接形成了鏈,標志著區塊鏈誕生。區塊鏈作為一種具有去中心化、不可篡改、可追溯、可信特性的分布式數據庫,受到了廣泛關注[2]。經過了十幾年時間,區塊鏈技術不斷發展革新,應用廣泛,其所出現的隱私問題得到了許多研究者關注[3-5]。區塊鏈的可溯源、可驗證等特性是基于系統中所有交易數據公開產生的,因此這導致惡意攻擊者可以通過分析數據窺探用戶隱私。

近年來,由于研究者對區塊鏈系統中隱私問題的關注,區塊鏈隱私保護技術不斷出現。其中,混幣機制在保證原有交易結果不變的前提下對交易過程進行混淆,從而抵抗攻擊者對賬本進行分析。其中,去中心化混幣機制是目前最為流行的隱私保護技術之一。在該方法中,多方混幣機制CoinParty通過構建門限托管賬戶,將參與者輸入資產作為抵押,提高了攻擊者拒絕服務攻擊成本。另一方面,CoinParty洗牌階段要求最后一個洗牌節點以字典序排序,避免了最后一個用戶操縱結果。但CoinParty存在一些不足:(1)引入了第三方節點來進行洗牌,降低了安全性;(2)由第三方節點用地址的校驗和驗證輸出地址列表,導致最后一個洗牌節點可以用校驗和相同的地址列表替換原有地址列表,從而盜取資產;(3)效率低,每一個節點都需要進行多層加密解密,洗牌結束后需要進行廣播校驗和驗證,時間復雜度高。

基于此,該文提出了一種新的隱私保護機制(ShuffleParty)。ShuffleParty在CoinParty的基礎上進行改進,通過在混幣參與者內部選出洗牌節點,由洗牌節點進行洗牌后,將輸出地址結果交給混幣參與者進行驗證,并生成最終置換。選出洗牌節點進行洗牌,避免了第三方節點進行校驗和驗證帶來的安全性問題,增強了對隱私的保護,同時也減少了通信和洗牌所需時間,提高了混幣效率。

1 相關工作

1.1 區塊鏈隱私威脅

區塊鏈技術為了保證區塊鏈上記錄數據的可溯源、可驗證等特性,在分散節點之間維持數據同步并對交易達成共識,區塊鏈上所有交易信息都存儲在公開的全局賬本中,攻擊者很容易獲取所有交易信息。攻擊者可以通過分析區塊鏈賬本中記錄的交易數據,發掘其中規律,將用戶的不同地址、交易數據關聯,并進一步對應到用戶的現實身份,嚴重威脅到用戶隱私。Reid和Harrigan[6]通過對公布的賬戶進行數據分析,統計出了對應地址的資金余額、資金來源、資金流向等信息,并對區塊鏈地址及IP地址對應關系進行分析,揭露了比特幣用戶與實際物理位置的對應關系。Androulaki等人[7]提出了挖掘找零地址方法,如果一個交易擁有兩個輸出,其中一個為已出現過的地址,另一個為新地址,則將新地址視為找零地址。Ron和Shamir[8]獲取比特幣的交易數據,通過研究用戶行為、比特幣輸入輸出情況,得到了一些交易規律,結果表明用戶無法通過資產轉移有效保護個人隱私。

1.2 混幣機制

為了解決區塊鏈隱私問題,研究者提出了一種交換資產、混淆地址的防御機制,即混幣機制。混幣機制有著多種不同實現方式,根據混幣操作者不同,分為中心化混幣和去中心化混幣兩種技術。

中心化混幣技術需要第三方節點中心化混幣服務商參與,幫助希望進行混幣交易的用戶與其他用戶匹配,構造混幣交易,并從中收取一定額度的手續費。各個混幣用戶與混幣服務商進行交易,混幣服務商收到用戶的資產后隨機混淆,然后返回給用戶指定的輸出地址?;鞄欧丈套鳛榛鞄沤灰椎闹虚g者,讓攻擊者難以發現用戶的資金流向,通過分析僅僅只能將混幣參與者的地址聚類,無法分析出輸入地址和輸出地址之間對應關系。但混幣服務提供商作為混幣交易第三方,在交易中會獲取所有用戶資金以及交易信息,存在安全隱患。最早的中心化服務例如BitLaundry采用最基礎的中心化混幣協議,平臺固定配置手續費等參數,導致攻擊者可以分析混幣交易的平臺地址和固定手續費特征將其關聯在一起,并且也存在混幣服務商內部做惡風險[9]。Bonneau等人[10]提出了Mixcoin協議,通過基于電子簽名承諾機制增強資產安全性,在混幣過程中混幣服務商需要進行簽名。若混幣服務商出現違規行為,用戶可以公布服務提供商的簽名舉報混幣服務商違規,該混幣服務商將會失去信譽。但該方案保護用戶資產安全,無法保證用戶的信息不被服務提供商泄露。Valenta等人[11]提出了Blindcoin協議,在沿用Mixcoin協議的簽名機制的基礎上,用戶采用盲簽名技術進行簽名交易,保證第三方混幣服務商無法獲取到用戶輸入輸出地址關聯關系,解決了混幣服務商泄露混幣用戶信息的問題。

中心化混幣技術因為中心化混幣服務商的參與,方便用戶匹配其他混幣用戶,便于用戶使用。但與此同時帶來了安全性問題,中心化混幣服務提供商作為第三方節點,存在安全隱患,會帶來一些潛在風險,例如遭受黑客攻擊進而盜竊用戶資產。為提高安全性,研究者提出了去中心化混幣技術。

去中心化混幣技術不需要第三方節點參與,通過多方參與協議代替中心化混幣服務提供商,用戶在網絡中自行尋找其他需要混幣用戶,通過多方參與者運行協議方式構造混幣交易。從根本上解決了中心化混幣存在的安全問題,也替用戶節省了混幣服務提供商的手續費。Gmaxwall[12]在2013年首先提出了第一個去中心化混幣方案CoinJoin,該協議通過將多個相同金額的輸入輸出放入同一交易中構造混幣交易,將多筆相同金額的單出入-單輸出交易合并成一個輸入輸出都相同的多輸入-多輸出交易,使外部攻擊者無法通過分析該交易分辨不同的輸出,得到每個輸入和輸出地址之間的關聯關系,確保了外部隱私性。但由于沒有第三方節點,混幣參與者需要自行進行協商,在協商階段,參與用戶的輸入輸出地址關聯信息會被其他混幣用戶獲取,內部隱私性不能得到保障[13]。

為了解決CoinJoin方案的內部隱私性問題,Ruffing等人[14]提出了CoinShuffle協議。該方案延續了CoinJoin核心思想,多個混幣參與者構造一個金額相同的多輸入-輸出交易,保證外部隱私性。在CoinJoin基礎上,CoinShuffle增加了輸出地址洗牌機制,讓參與者按照一定順序進行排列,每個參與者按照順序使用后面參與者的公鑰進行加密,從第一個參與者開始將加密信息發給后面的參與者,后面的參與者接受用自己的私鑰進行解密,并加入自己加密好的輸出地址進行混淆,再發給下一個參與者,直到最后一個參與者,得到最終的輸出地址明文。將輸出地址列表交給參與者驗證簽名后,創建混幣交易。CoinShuffle通過多層加密,使得中間的參與者無法看到明文,而最后一個參與者無法知道輸入輸出地址之間的關聯,解決了內部隱私性問題。但也存在一定缺陷:最后一個參與者可以決定輸出地址列表順序而非隨機,攻擊者可以控制順序;多層加密解密、洗牌導致了該方案的效率偏低,若攻擊者進行拒絕服務攻擊,整個洗牌過程又需要重新進行[15]。

Ziegeldorf等人[16]提出了去中心化混幣協議CoinParty,由多個第三方混合節點共同構建托管賬戶,混幣參與者將混幣資產放入托管賬戶進行抵押,從而提高拒絕服務攻擊的代價,一定程度上抵御拒絕服務攻擊。多個混合節點對輸出地址進行洗牌,采用校驗和對比所有輸出地址哈希值的和對洗牌結果進行校驗。并且要求最后一個洗牌節點按字典序排序生成地址列表,再以校驗和作為偽隨機數生成器的依據生成最終隨機置換,在地址列表上加以最終置換得到最終混淆結果,避免了輸出地址列表被最后一個洗牌節點操縱。該方案成功解決了CoinShuffle中無法預防拒絕服務攻擊、最后一個洗牌節點操縱洗牌結果的問題,獲得了更好的安全性。但同時也引入了新的問題:CoinParty采取了多個第三方節點來進行洗牌以及創建交易,第三方節點的加入帶來了安全性的降低;使用校驗和對比所有輸出地址哈希值的和對洗牌結果進行校驗,導致最后一個洗牌節點可以用相同哈希值和的輸出地址替換原有的輸出地址,從而盜取資產,同時也帶來了額外的效率問題。TTShuffle[17]在CoinShuffle的基礎上進行改進,將混幣參與者進行分組,由組內洗牌和組間洗牌兩階段完成洗牌過程,分散了洗牌操作,提高了混幣效率。但TTShuffle是在CoinShuffle基礎上改進,和CoinShuffle一樣無法防止拒絕服務攻擊。

2 ShuffleParty

2.1 機制概述

ShuffleParty機制是在CoinParty的基礎上進行改進,設計了基于洗牌節點選取的洗牌機制。該方案主要部分可以分成五個階段,即協商階段、承諾階段、洗牌階段、交易階段,以及混幣失敗時進入問責階段(2.2節詳述)。ShuffleParty機制流程見圖1。

圖1 ShuffleParty機制流程

為解決CoinParty方案所存在的問題,本方案在保留CoinParty方案托管地址的機制的同時,去除了第三方節點,由參與者內部選出洗牌節點進行洗牌,最后將洗牌結果交給其他參與者進行驗證,避免最后一個洗牌節點通過替換相同哈希值和的輸出地址盜取資金。

在混幣參與者開始混幣方案后,由參與者協商,隨機選出M個洗牌節點,并協商洗牌節點的洗牌順序,參與者計算出一組托管地址,將自己的資金轉入托管地址。然后,每個洗牌節點廣播其生成的密鑰(ek,dk)中的公鑰ek,每個普通參與者按照確認好的洗牌順序,使用洗牌節點的公鑰ek對自己的輸出地址進行層層加密,而洗牌節點使用后面洗牌節點的公鑰ek對輸出地址進行層層加密。完成加密后,普通參與者將加密好的輸出地址發送給第一個洗牌節點,第一個洗牌節點將收到的信息用自己的私鑰dk進行一層解密,并加入自己加密好的輸出地址形成輸出地址列表,隨機洗牌后發送給下一個洗牌節點。層層解密后,最后一個洗牌節點加入自己的輸出地址,對輸出地址進行字典序排序后,廣播最后的輸出地址列表。參與者檢查自己的輸出地址是否在列表中,地址列表是否是字典序排序。若輸出地址丟失或列表不是字典序排序,則洗牌無效,進入責備階段找出違規者,托管地址中的資金退回到參與者輸入地址。反之,參與者以所有輸出地址哈希值的和作為偽隨機數生成器的依據生成公共隨機置換,得到最終混淆結果,按照最終結果生成交易。

2.2 詳細描述

(1)協商階段:N個混幣用戶在開始混幣機制后,形成初始節點集合U,公布自己的輸入地址In(n∈{1,2,…,N}),共同協商混幣金額v,洗牌節點數量M(M

算法1:Shuffle nodes selection

輸入:Collection of initial nodesU

Number of Shuffle nodesM

輸出:Collection of shuffle nodesS

(1)S←null

(2)foriin range (1,M)

(3)node←random(U)

(4)S.add(node)

(5) returnS

(2)承諾階段:混幣參與者共同生成一個托管賬戶T,為了防止托管資金被惡意的混幣參與者竊取,T由一個新的ECDSA密鑰對生成,T在混幣參與者的聯合控制下。參與者n將混幣金額v轉入對應的托管賬戶T,{I1,I2,…,IM}→T,參與者可以互相驗證是否將指定金額v轉入了托管賬戶T,確保每個參與者都完成承諾后進入下一階段。托管地址T創建過程如下:

(a)隨機生成一個值k作為托管地址T的私鑰,通過偽隨機秘密分享(Pseudo-Random Secret Sharing,PRSS)[18]使參與者i獲得私鑰d的份額[k]n。

(b)每個參與者計算他的公鑰份額[Q]n=[d]n·G,G為橢圓曲線的基點。

(c)每個參與者i將他的公鑰份額[Q]n廣播給其他參與者。

(e)使用公鑰Q創建托管地址T。

圖2 洗牌過程

圖3 加密結構

算法2:Multilayered encryption

輸入:Collection of common nodesS

Collection of shuffle nodesS

(1) forPiinP

(2)mi←Oi

(3) forjin range(1,M)

(4)mi←AES.encrypt(mi,dkj)

(6) forSjinS

(7)mj←Oj

(8) fornin range(j+1,M)

(9)mj←AES.encrypt(mj,dkn)

圖4 洗牌階段Message List結構

算法3:Shuffle

輸入:Collection of common nodesS

Collection of shuffle nodesS

輸出:mlistM

(1) forPiinP

(3) forS1

(5) mlist1.add(decryptedMsg)

(7) mlist1←mlist1.random

(8) send mlist1toS1

(9) forSjinS(1

(10)formnin mlistj-1

(11) decryptedMsg←AES.decrypt(mn,dkj)

(12) mlistj.add(decryptedMsg)

(14) mlistj+1←mlistj.random

(15) send mlistj+1toSj+1

(16) forSM

(17) mlistM-1={m1,m2,…,mN-1}

(18)formM-1in mlistM-1

(19) decryptedMsg←AES.decrypt(mM-1,dkM)

(20) mlistM.add(decryptedMsg)

(21) mlistM.add(Oi)

(22) mlistM←mlistM.lexorder()

(23) broadcast(mlistM)

(24) return mlistM

參與者收到輸出地址列表mlistM后,驗證自己的輸出地址是否在輸出地址列表中,地址列表是否按字典序排序。若輸出地址不在或地址列表沒有按字典序排序,將托管地址Tn中的資金v轉移回輸入地址In,并進入責備階段。反之,如果一切正常,將每個參與者計算輸出地址的哈希和,以此為偽隨機數生成器的依據生成公共隨機置換,在mlistM上增加公共隨機置換得到最終輸出地址列表AddressList。該過程如算法4所示:

算法4:final permutation

輸入:mlistM

輸出:AdressList

//校驗成功后進行最終置換

(1) mlistM={m1,m2,…,mN}

(2) formMin mlistM

(3) hashsum←hashsum+hash(mM)

(4) AdressList←mlistM.random.seed(hashsum)

(4)交易階段:混幣參與者創建交易T→{O1,O2,…,OM},托管地址Ti的私鑰di由所有參與者共同生成,最終由混幣參與者合作簽署交易。由于參與者沒有自己對應托管賬戶的私鑰,所以各參與者廣播出自己在承諾階段獲得的私鑰份額,重構出托管地址T的私鑰k,然后生成有效的簽名,將交易廣播給區塊鏈。

(a)生成托管地址到最終輸出地址列表的交易T→{O1,O2,…,OM}。

(b)每個參與者驗證交易的輸出地址列表是否與自己生成的最終輸出地址列表AddressList相同。若不同,交易取消,進入責備階段。

(c)每個參與者廣播自己的私鑰份額[k]n。

(e)使用私鑰k生成對托管地址T的有效簽名。

(f)將交易提交給區塊鏈。

(5)問責階段:在整個混幣的流程中,每個參與者監督著其他的參與者沒有進行違規操作。一旦發現違規現象,誠信的參與者會通告這一現象,混幣流程將會停止并執行該階段,識別出違規操作者并將其剔除,重新進行混幣。這里分別討論每個階段的違規操作。

(a)承諾階段:承諾階段是使參與者將混幣金額放入托管賬戶作為押金機制,是保證后續階段安全的基礎,參與者之間互相通過輸入地址,在區塊鏈上驗證是否每個參與者都將混幣金額v轉入了托管地址,若超時后,仍有參與者未完成承諾,則將其剔除。

(b)洗牌階段:該階段會出現加密密鑰錯誤、最后一個參與者不按字典符排序等錯誤,若發現違規操作,洗牌節點可以廣播他們的解密密鑰,以及他們收到的消息,從而允許參與者對每個洗牌節點的操作進行重放,找出其中的違規操作者。發現違規操作者后,將其剔除,然后將押金退回到輸入地址。

若其中一個洗牌節點Sj宕機,下個洗牌節點Sj+1在限定時間內沒有接受到Sj加密消息,Sj+1將超時信息廣播給其他參與者,然后剔除掉宕機的參與者,退回押金,剩余參與者重新進行混幣。若最后一個洗牌節點SM宕機,SM沒有在限定時間內廣播輸出地址列表,其他參與者將會判定超時,將其剔除,重新進行混幣操作。

3 分 析

3.1 安全性分析

ShuffleParty通過采取隨機選擇洗牌節點的方式,在混幣參與者內部選出洗牌節點,且洗牌節點排列順序隨機,參與者無法自行參與洗牌過程。并沿用了CoinParty機制中的托管機制,由多個第三方節點共同生成托管賬戶改為參與者共同生成托管賬戶,在提高拒絕服務攻擊成本的同時,避免了第三方節點的參與,提高了安全性,解決了TTShuffle所存在的無法防止拒絕服務攻擊的問題,在安全性方面強于TTShuffle。

在洗牌階段,ShuffleParty機制中加密方案使用AES-CBC加密,通過多層加密解密,使每個參與者的輸出地址加入到輸出地址列表的過程中,輸出地址明文不會被其他用戶知道,而最后一個洗牌節點解密得到明文后無法得知其他用戶與輸出地址的對應關系,保障了內部隱私性。與CoinParty相同,使用托管賬戶,要求最后一個洗牌節點以字典序排序,避免攻擊者可以控制輸出地址列表的順序。CoinParty在洗牌開始前將輸出地址的哈希值秘密分享給每一個洗牌節點,洗牌結束后洗牌節點廣播自己的哈希份額,然后每個洗牌節點重構輸出地址的哈希和,與洗牌結果的輸出地址列表哈希和進行對比,如果相同,則進行下一步。第三方節點使用校驗和進行輸出地址列表的驗證,帶來了一定安全性問題:由于輸出地址列表是由最后一個洗牌節點產生的,最后一個洗牌節點可以將正確的輸出地址列表替換為哈希和相同的地址列表,從而最后通過驗證,將混幣用戶的資金轉入到錯誤的輸出地址,竊取混幣用戶資金。而ShuffleParty沒有引入任何第三方節點,驗證環節由每一個混幣用戶進行。最后一個洗牌節點將輸出地址列表廣播,每一個混幣用戶驗證自己的輸出地址是否在輸出地址列表中,若不在,則進入責備階段,反之則繼續進行下一步。通過由每個混幣用戶參與驗證,保證了輸出地址列表的正確性,避免了CoinParty中第三方節點帶來的安全性問題。

3.2 實驗分析

3.2.1 實驗環境

操作系統:64位Windows10;編程語言:Java;編程工具:Eclipse,jdk1.8.0_101;JXTA版本:2.4;JXTA CMS版本:2.4.1;加密API:bcprov-jdk14。

實驗使用JXTA模擬區塊鏈底層的P2P(Peer-to-Peer)網絡,建立多個節點加入同一個PeerGroup,模擬多人進行混幣的過程。洗牌過程中的多層加密采用AES-CBC模式。

3.2.2 時間分析

該文在CoinParty基礎上進行改進,為了對比ShuffleParty機制和CoinParty機制的性能情況,在同樣實驗環境下對ShuffleParty和CoinParty進行多次實驗,分別從參與者數量和洗牌節點數量控制變量(ShuffleParty洗牌節點為參與者選出的洗牌節點,CoinParty洗牌節點為第三方節點),記錄實驗結果。并在控制混幣參與者數量相同的情況下,將ShuffleParty和其他混幣方案進行對比實驗1 固定混幣參與者數量,增加洗牌節點數量。分別統計ShuffleParty和CoinParty在30個混幣參與者參加混幣,有3,4,5,6,7,8個洗牌節點進行洗牌操作時兩個方案正常運行所需要的時間,兩個方案的時間對比如圖5所示。

圖5 固定混幣參與者數量的運行時間對比

在圖5中,當混幣參與者人數固定時,隨著洗牌節點的數量增多,ShuffleParty所需時間始終小于CoinParty,兩個方案的時間都在遞增,但ShuffleParty的遞增幅度不大。因為ShuffleParty和CoinParty增加一個洗牌節點,就增加了一層加密解密洗牌的過程,CoinParty所有節點都需要加密洗牌節點數量的層數,ShuffleParty只有普通節點需要加密全部層數,而洗牌節點只需要進行后續洗牌節點數量的多層加密。除此之外,CoinParty通過校驗和驗證輸出地址列表的機制,需要洗牌節點將所持有的校驗和份額發送給其他洗牌節點,每增加一個洗牌節點,就增加了更多的時間消耗。

實驗2固定洗牌節點數量,增加混幣參與者數量。分別統計ShuffleParty和CoinParty在5個洗牌節點進行洗牌,有10,15,20,25,30,35個混幣參與者參加混幣時所需要花費的時間,兩個方案消耗時間對比如圖6所示。

在圖6中,隨著混幣參與者人數的遞增,ShuffleParty和CoinParty兩個機制成功運行時間沒有很大的波動,近乎平直,TTShuffle的運行時間隨混幣參與者人數遞增而遞增。因為混幣參與者的增多并不會改變加密解密洗牌的層數變化,僅僅是在每一層洗牌增加了一個加密消息。而由于CoinParty多了一個洗牌節點發送校驗和份額的過程,所需花費的時間更多。TTShuffle隨著混幣參與者人數增加5人,分組會多出一個,組間洗牌階段將會多進行一輪傳遞,導致了時間的增加。

圖6 固定洗牌節點數的運行時間對比

結合圖5和6可以看出,由于ShuffleParty直接將輸出地址列表發給混幣參與者驗證,沒有CoinParty洗牌節點之間互相發送校驗和份額的過程,ShuffleParty機制的時間開銷比CoinParty小很多,洗牌節點數量越多,前者的混幣時間優勢越明顯。并且ShuffleParty和CoinParty一樣,即使在參與人數眾多的情況下,依舊能夠保持自身的效率。TTShuffle盡管在CoinShuffle的基礎上有了提升,但ShuffleParty在效率上還是具有優勢。

4 結束語

為了解決CoinParty機制中的第三方節點以及校驗和驗證輸出列表導致的安全問題,提出了ShuffleParty機制。通過在混幣參與者中隨機選取洗牌節點,由洗牌節點按隨機順序進行多層洗牌,最后將輸出列表發送給參與者驗證,避免了第三方節點的參與,保證了混幣過程中的隱私安全和資產安全。通過實驗表明,提出的ShuffleParty機制相對于CoinParty機制,在提升安全性的同時,也提高了混幣的效率,減少了所需要的時間。

雖然解決了CoinParty所存在的一些問題,提高了運行效率,但還存在著一些缺陷。比如,被選出的洗牌節點相較于普通參與者進行了更多的工作量,應設立一定獎勵機制對進行洗牌操作的洗牌節點進行獎勵。文中洗牌節點由普通參與者隨機選出,若有信譽值機制來選取洗牌節點,然后洗牌節點獲得獎勵,能夠更好地提高混幣機制的穩定性及安全性。

猜你喜歡
機制用戶
構建“不敢腐、不能腐、不想腐”機制的思考
自制力是一種很好的篩選機制
文苑(2018年21期)2018-11-09 01:23:06
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
定向培養 還需完善安置機制
中國衛生(2016年9期)2016-11-12 13:28:08
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
破除舊機制要分步推進
中國衛生(2015年9期)2015-11-10 03:11:12
Camera360:拍出5億用戶
創業家(2015年10期)2015-02-27 07:55:08
100萬用戶
創業家(2015年10期)2015-02-27 07:54:39
如何獲取一億海外用戶
創業家(2015年5期)2015-02-27 07:53:25
主站蜘蛛池模板: 国产精品永久免费嫩草研究院| 2024av在线无码中文最新| 高清国产在线| 日本在线免费网站| 国产午夜无码片在线观看网站| 麻豆国产在线观看一区二区| 午夜爽爽视频| 久久伊人久久亚洲综合| 黄色网页在线观看| 亚洲系列无码专区偷窥无码| 国产簧片免费在线播放| 国产女人喷水视频| 国产精品理论片| 亚洲无码电影| 国产特级毛片aaaaaaa高清| 亚欧成人无码AV在线播放| 久久久久人妻一区精品色奶水 | 99久久免费精品特色大片| 国产精品香蕉在线| 色窝窝免费一区二区三区| 欧美丝袜高跟鞋一区二区| 色AV色 综合网站| 国产网友愉拍精品视频| 亚洲天堂网在线观看视频| 午夜精品久久久久久久99热下载 | 亚洲日韩AV无码一区二区三区人 | 久无码久无码av无码| 亚洲性影院| 97国产成人无码精品久久久| 青青极品在线| 一级毛片免费观看不卡视频| 91精品福利自产拍在线观看| 欧美一级黄片一区2区| 亚洲国产成人自拍| 呦视频在线一区二区三区| 无码福利日韩神码福利片| 久久中文字幕不卡一二区| 免费毛片全部不收费的| 日韩欧美中文亚洲高清在线| 成人国产一区二区三区| 国产亚洲精品va在线| 女人18毛片一级毛片在线 | 国产小视频免费观看| 国产毛片基地| 国产av无码日韩av无码网站| 三级欧美在线| 91午夜福利在线观看| 欧美精品综合视频一区二区| 欧美日韩久久综合| 中文字幕无线码一区| 国产精品手机在线观看你懂的| 国产导航在线| 欧美视频二区| 国产爽妇精品| 久久综合激情网| 久久夜色精品| 特黄日韩免费一区二区三区| 首页亚洲国产丝袜长腿综合| 亚洲一区无码在线| 欧美午夜理伦三级在线观看| 国产永久免费视频m3u8| 国产成人精品高清在线| AV无码无在线观看免费| 97国产精品视频自在拍| 亚洲人人视频| 黄片一区二区三区| 天天干天天色综合网| 国产香蕉一区二区在线网站| 欧美区在线播放| 黄色片中文字幕| 在线观看国产网址你懂的| 99国产在线视频| 亚洲视频免费在线| 日韩在线2020专区| 欧美黄色网站在线看| 成年人午夜免费视频| 久久免费视频6| 国产成人无码久久久久毛片| 久久综合色天堂av| 日韩精品一区二区三区swag| 中国一级特黄视频| 日韩精品亚洲一区中文字幕|