本篇為基于區(qū)塊鏈研習(xí)社課程學(xué)習(xí)總結(jié)。
可感知區(qū)塊鏈產(chǎn)品-彩票狮辽,是眾所周知的暴利行業(yè)烁巫,其暴利是建立在信息不對稱的基礎(chǔ)上,區(qū)塊鏈的去中心機(jī)制是彩票的天然應(yīng)用場景蘑秽,在宣傳方面也是一個很好的噱頭饺著。本篇只講產(chǎn)品,拋開政策和有關(guān)牌照問題肠牲,相信其他問題總歸有辦法解決的幼衰。
彩票加區(qū)塊鏈的競爭優(yōu)勢體現(xiàn)在下面三個方面:
第一,基于區(qū)塊鏈的技術(shù)去中心缀雳,開源渡嚣,透明,公平、公正识椰,另外讓用戶可設(shè)置服務(wù)器绝葡,增強(qiáng)公平信任感,這就類似于讓用戶搭建節(jié)點(diǎn)加入來保障彩票的公平透明腹鹉;
第二藏畅、用戶識別方面,改變了傳統(tǒng)用戶名加密碼的登陸方式功咒,采用唯一哈希對應(yīng)唯一用戶名的方式愉阎,這樣篡改難度是非常大的,類似于區(qū)塊鏈錢包的私鑰輔助記憶保存方式力奋,其表現(xiàn)形式并不統(tǒng)一榜旦,例如我們經(jīng)常使用區(qū)塊鏈錢包的助記詞功能,目前市場上的區(qū)塊鏈錢包都是千篇一律的助記詞功能景殷,后續(xù)會介紹一種新的方式溅呢;
第三,借助token是區(qū)塊鏈技術(shù)應(yīng)用到彩票里面最佳的策略猿挚,(我的理解就是結(jié)算方便藕届,而且一旦直接涉及到法幣各種合規(guī)和KYC的等級都要提升,而且token還可以設(shè)計(jì)經(jīng)濟(jì)激勵機(jī)制亭饵,本篇并沒有介紹)休偶。
競品分析
設(shè)計(jì)一款彩票應(yīng)用離不開的是競品分析,競品分析一般分三個方向:
第一就是選擇和自身方向一致目標(biāo)相同的用戶辜羊,功能和需求類似的產(chǎn)品踏兜,比如說各家的彩票業(yè)務(wù),選頭部的一到兩家產(chǎn)品做對比就足夠了八秃;
第二碱妆,市場和目標(biāo)方向不一致,功能需求和產(chǎn)品本身進(jìn)行互補(bǔ)的昔驱,類似于彩票中的一元奪寶啦疹尾,德州撲克等各種新的變態(tài)玩法,值得去借鑒骤肛;
第三纳本,相當(dāng)于互聯(lián)網(wǎng)的用戶思維,能占據(jù)用戶更多的時間是重點(diǎn)腋颠,例如挖礦繁成,每個家庭的帶寬是有限的,其網(wǎng)絡(luò)不可能支撐一堆礦機(jī)淑玫,普通用戶挖礦的效率是很低巾腕,所以占用大家的注意力是側(cè)重點(diǎn)面睛。
競品分析之后要做的就是總結(jié)一下,根據(jù)其他家的產(chǎn)品定位我們的差異點(diǎn)尊搬,彩票這個項(xiàng)目最大的差異點(diǎn)就是我們運(yùn)用的區(qū)塊鏈技術(shù)叁鉴,目前能用區(qū)塊鏈技術(shù)做彩票開發(fā)的,市面上有但不多佛寿,得獎算法也是公開透明的亲茅,既然用到區(qū)塊鏈就要徹底化才有顛覆性,什么叫徹底化呢狗准?大家知道區(qū)塊鏈領(lǐng)域有一個不可能三角,去中心茵肃、效率腔长、安全只能取其二,而目前很多的聯(lián)盟鏈和公鏈幾乎都是采取效率和安全验残,把去中心化變?yōu)槿踔行幕蛘咧行幕谈剑谴蠹宜伎家幌驴梢园l(fā)現(xiàn)區(qū)塊鏈的精髓還是去中心化,效率和安全目前用阿里云您没、百度云或者AWS等大企業(yè)的平臺就早已實(shí)現(xiàn)了鸟召。若僅僅是滿足業(yè)務(wù)需求,做效率和安全的提升談自己的區(qū)塊鏈有多牛這就是偽命題了氨鹏。你越做的深就是一個私家云平臺而不是區(qū)塊鏈平臺欧募,所以不管什么場合去中心化依舊是區(qū)塊鏈的精髓。例如仆抵,今年4月中下旬的時候跟继,我們?nèi)ズ鸵患液艽蟮钠髽I(yè)談供應(yīng)鏈金融的落地問題,他們唯一糾結(jié)的地方就是目前大企業(yè)信譽(yù)非常好镣丑,一直想不到區(qū)塊鏈能做出哪些差異化來舔糖,后來沒辦法就想到區(qū)塊鏈結(jié)合清結(jié)算的思維做產(chǎn)品,他們對于這種清結(jié)算本事不感興趣莺匠,談了一上午對方始終沒有繞開中心化的思想金吗,如果他們?nèi)珖@中心化這個思維去做事的話,加區(qū)塊鏈這個一個概念趣竣,可能僅僅是從原有業(yè)務(wù)90分到95分的提升摇庙,還有可能是90分到85分倒退,區(qū)塊鏈最直接的接入是把它那么大體量的核心企業(yè)加入到聯(lián)盟鏈中的一環(huán)遥缕,我相信中國和這個企業(yè)同體量的還有很多跟匆,它難道不想把其他同體量的企業(yè)拉進(jìn)來一起搞事情嗎?現(xiàn)實(shí)中不是不想而是因?yàn)閿?shù)據(jù)孤島的屏障或者各種體系的屏障通砍,他們其實(shí)很明白這個道理玛臂,大企業(yè)的人其實(shí)并不昏庸他們很精明烤蜕,這里想表達(dá)的是區(qū)塊鏈僅僅是技術(shù),你想做行業(yè)的顛覆迹冤,去中心化是肯定繞不開的話題讽营。
公平博弈去中心也是我們彩票的主題
我們選用的底層框架是fabric,核心問題的處理用區(qū)塊鏈加彩票的算法設(shè)計(jì)泡徙,借助token的模式橱鹏,這樣更容易落地。
第一堪藐,初始幣的發(fā)行接口
比如我們定平臺的幣為彩票幣莉兰,在自定義的chaincode(fabric里面常說的智能合約)一次發(fā)行1000億到一個固定賬戶中,fabric智能合約啟動時一定要進(jìn)行初始化礁竞,對于彩票平臺就是初始化一個彩票幣的額度糖荒,我們定為1000億。
第二模捂,彩票幣賬戶間互轉(zhuǎn)接口
鏈上的用戶是可以持有彩票幣的捶朵,互相之間是可以發(fā)送彩票幣的,至于更多的玩法是上層的事情狂男,對于區(qū)塊鏈底層來講综看,上層做了一堆事情,底層的感受就是完成了一次轉(zhuǎn)賬的操作岖食,這是一個必不可少的接口红碑。
第三, 彩票幣跨chaincode支持
chaincode可以查閱某個用戶有多少彩票幣泡垃,這個是為做PC端的監(jiān)控預(yù)留的句喷。
第四, 交易費(fèi)用支持
大部分網(wǎng)絡(luò)交易都是要收取費(fèi)用的兔毙,不收取費(fèi)用的比如說投注不收取唾琼,這個是根據(jù)上層的設(shè)計(jì)邏輯合理調(diào)取這個接口,主要目的是為彩票平臺設(shè)計(jì)者帶來一定的利潤回報(bào)澎剥,因?yàn)槲覀兊乃惴ü_的獲獎?wù)咭彩枪_的锡溯,平臺無法造假,交易費(fèi)用就成了平臺的獲利點(diǎn)哑姚。
第五祭饭, 保留金額的判斷
普通用戶最低的保留金額默認(rèn)是0,作為判斷他是否有投注資格的一個接口叙量。
第六倡蝙, 發(fā)布規(guī)則
主要是提供發(fā)布抽獎規(guī)則的API接口,比如定義開獎的期數(shù)啦绞佩,開始時間寺鸥、截止時間猪钮,投注數(shù)以及一二三等獎的資金占比。
第七胆建, 查詢接口
主要是查詢活動規(guī)則烤低,投注情況、中獎情況或者是余額查詢等等笆载。
大概就是以上的七個底層接口扑馁,下面說一下重點(diǎn),就是提到的第六個接口凉驻,游戲規(guī)則的設(shè)定腻要,從三個角度來講這個規(guī)則:游戲規(guī)則、號碼計(jì)算規(guī)則和全網(wǎng)關(guān)閉時間設(shè)計(jì)規(guī)則涝登,
游戲規(guī)則:大概是三點(diǎn)雄家,第一選擇要參與的活動,每個活動定義總參與的人次缀拭,比如一人次=一彩票幣,例如押注某個球隊(duì)獲勝一個需要1000人次填帽,每一人次就是一個彩票幣蛛淋,獲勝者可以得到1000個彩票幣,彩票幣和人民幣的兌換可以場外進(jìn)行篡腌。
幸運(yùn)號碼的計(jì)算規(guī)則:活動的最后一個號碼分配完畢后褐荷,將公示該分配時間點(diǎn)前該活動的最后100個參與時間及全網(wǎng)共識的活動關(guān)閉時間;(這里記住有兩個時間嘹悼,一個是最后100個的參與時間叛甫,另外一個是全網(wǎng)共識的活動關(guān)閉時間,所以一共是101個時間)將這101個時間我們進(jìn)行數(shù)值求和杨伙,就會得到一個數(shù)值A(chǔ)其监,也就是每個數(shù)據(jù)按時分秒毫秒進(jìn)行組合,然后進(jìn)行求和就會得到一個很大數(shù)就是A限匣,第三步就是把數(shù)值A(chǔ)除以該活動的總需人次抖苦,比如數(shù)值A(chǔ)除以總?cè)舜?000,會得到一個余數(shù)再加上一個初始值米死,我們初始值設(shè)置為10萬锌历,會得到一個最終的幸運(yùn)號碼,擁有該幸運(yùn)號碼的人會直接獲得獎勵峦筒,這里的難點(diǎn)是第二和第三都很好理解究西,難點(diǎn)是全網(wǎng)共識關(guān)閉時間,這個是和區(qū)塊鏈息息相關(guān)的事情物喷。
全網(wǎng)關(guān)閉時間設(shè)計(jì)規(guī)則:我們知道區(qū)塊鏈記錄是交易卤材,所以每一個驗(yàn)證節(jié)點(diǎn)都會記錄自己收到最后一筆彩票交易的時間遮斥,什么叫最后一筆交易時間?打個比方商膊,比如我一共是1000注伏伐,等到第1000注結(jié)束的時候,然后沒一個節(jié)點(diǎn)都會收到這個結(jié)束時間晕拆,然后每個節(jié)點(diǎn)再拋到全網(wǎng)共識達(dá)到一致的close time (關(guān)閉時間)藐翎。簡單理解就是系統(tǒng)內(nèi)置了N個節(jié)點(diǎn),每個節(jié)點(diǎn)都記錄自己收到最后一筆交易是時間实幕,比如說是第1000筆結(jié)束的時候吝镣,因?yàn)榫W(wǎng)絡(luò)有延遲性,我們這種分布式網(wǎng)絡(luò)系統(tǒng)肯定是有延遲的昆庇,各節(jié)點(diǎn)收到最后一筆交易的時間肯定是不同的末贾,(PS一個人說話,離他最近的先聽到)系統(tǒng)中內(nèi)置的N個節(jié)點(diǎn)收到最后一筆交易的時間是不同的整吆。然后各節(jié)點(diǎn)講自己的交易時間拋到全網(wǎng)進(jìn)行全網(wǎng)共識拱撵,共識時間是3秒,3秒后每個節(jié)點(diǎn)擁有多個交易時間表蝙,(ps比如說一共5個節(jié)點(diǎn)拴测,第一步是第1000筆交易結(jié)束的時候,5個節(jié)點(diǎn)各自有不同的時間府蛇,給他們3秒是時間進(jìn)行共識集索,這五個節(jié)點(diǎn)會把他們收到的節(jié)點(diǎn)拋到網(wǎng)絡(luò)里面進(jìn)行廣播,三秒之后每個節(jié)點(diǎn)都會有5個時間節(jié)點(diǎn)汇跨,就是他們都彼此交叉了务荆,比如說我是第一個節(jié)點(diǎn),3秒之后我不但有我自己節(jié)點(diǎn)1的時間穷遂,還有節(jié)點(diǎn)2函匕、3、4蚪黑、5的時間浦箱,也就是說3秒之后每個節(jié)點(diǎn)都有5個時間)接下來是各節(jié)點(diǎn)再將時間排序去重(因?yàn)橛械墓?jié)點(diǎn)離得近可能有相同時間),選擇一個中間值祠锣,再拋出新的時間節(jié)點(diǎn)酷窥,進(jìn)行下一輪,每個時間節(jié)點(diǎn)又會得到5個時間伴网,然后就這樣一直拋一直拋蓬推,一直到某個關(guān)閉時間,這個關(guān)閉時間就是每個節(jié)點(diǎn)拋出去的時間占到總體的80%以上為止從而得到共同的最終的關(guān)閉時間澡腾,設(shè)置的規(guī)則就是反復(fù)舵輪進(jìn)行沸伏,實(shí)際中一般兩輪之后也就是6秒就能決定出80%的關(guān)閉值糕珊,一般5-8s就足夠了,但是這個關(guān)閉時間是隨機(jī)的毅糟。抽獎結(jié)果是基于用戶的投注時間红选,就是前面提到的最后100筆,也就是說總共1000注姆另,從第900注開始記錄從900注到1000注的用戶時間喇肋,抽獎結(jié)果是基于用戶的投注時間加權(quán)節(jié)點(diǎn)共識時間參與生成的唯一隨機(jī)數(shù),全節(jié)點(diǎn)共識時間就是上面的關(guān)閉時間迹辐。也就是說在這個彩票中唯一用到區(qū)塊鏈的地方就是共識關(guān)閉時間蝶防。大家都知道區(qū)塊鏈有tps瓶頸,不可能把所有數(shù)據(jù)都上鏈明吩,這就是一個巧妙的地方间学,我們記錄區(qū)塊鏈的地方一定是要最核心的地方,而且最核心的核心還得把它簡化下來印荔,不能所有的都寫到只能合約上去低葫,包含的細(xì)節(jié)很多,包括錢包web端的后臺設(shè)計(jì)仍律,前面提到的有后臺的接口嘿悬,比如統(tǒng)計(jì)用戶數(shù)量啦,token的統(tǒng)計(jì)染苛,節(jié)點(diǎn)統(tǒng)計(jì)鹊漠,類似于區(qū)塊鏈瀏覽器功能主到。
補(bǔ)充茶行,讓用戶感知區(qū)塊鏈設(shè)計(jì)并把權(quán)限全部給出去,登陸注冊后錢包私鑰導(dǎo)出是必不可少的登钥,移動端錢包大部分助記詞畔师。錢包私鑰獨(dú)特設(shè)計(jì)思路,用WiFi進(jìn)行導(dǎo)出牧牢,對于安卓手機(jī)來講支持WiFi導(dǎo)出和導(dǎo)出到本地看锉,對于IOS蘋果手機(jī)支持WiFi導(dǎo)出和iCloud導(dǎo)出。WiFi導(dǎo)出要求PC和手機(jī)處于同一局域網(wǎng)下塔鳍,其實(shí)局域網(wǎng)下傳輸要相對安全很多伯铣,相比于目前很多用戶私鑰導(dǎo)出基于互聯(lián)網(wǎng)要安全很多,而且操作也不復(fù)雜轮纫。
彩票肯定是一個火爆的行業(yè)腔寡,tps是最值得考究的,因?yàn)榇罅康娜藚⑴c是一個繞不開的話題掌唾,而目前我們采用的fabric并不是所有的數(shù)據(jù)都上鏈放前,如上面提到的7個接口忿磅,僅僅是把游戲的規(guī)則,只能合約的算法和獲獎記錄在鏈上進(jìn)行了記錄而已凭语,其余的全部在鏈外進(jìn)行葱她。按照這種玩法我們上層應(yīng)用能抗住的tps能到2000,你想想fabric測試速度是300-500之間似扔,而我們選擇部分上鏈能達(dá)到2000吨些,也就是說提高了將近7倍,這是一個實(shí)測數(shù)據(jù)虫几,2000是一個最保守的估計(jì)锤灿,我們壓力測試到10000筆的時候才會出現(xiàn)系統(tǒng)崩潰,而對于一個小的應(yīng)用場景辆脸,比如說世界杯來講2000的tps應(yīng)該能滿足很多場景了但校,在多的話就是排隊(duì)了。
PS.對于目前各類區(qū)塊鏈框架的tps可信范圍是1000-10000之間是最可信的區(qū)域啡氢,若大家看到某一份白皮書寫了幾十萬或者上百萬的并發(fā)就要想想他們的前提状囱、測試機(jī)是基于什么配置,他們的網(wǎng)絡(luò)環(huán)境都要考慮倘是,和我們實(shí)際中是有很大差別的亭枷。
我的總結(jié):本篇提到了區(qū)塊鏈技術(shù)最大的精髓是去中心化,然而我想到了為什么我們需要去中心化呢搀崭?或者說去中心化給我們帶來了什么好處叨粘?在傳統(tǒng)的世界,人們之間的合作是基于信任的瘤睹,不論這信任是基于人與人之間的升敲,還是通過第三方中介機(jī)構(gòu)背書的。但是比特幣讓我們突然發(fā)現(xiàn)人與人之間的合作也是可以基于一套去中心化的算法規(guī)則轰传,你認(rèn)可這一套去中心化人為設(shè)定的運(yùn)行在機(jī)器上自動化的規(guī)則我們就可以開展金融交易驴党。首先這套規(guī)則是每個人都可以提出修改意見的,當(dāng)然會不會被采納又是另一回事获茬,緊接著運(yùn)行在機(jī)器上自動化的規(guī)則幫助我們節(jié)省了多少人力與時間成本港庄。無外乎經(jīng)濟(jì)學(xué)人雜志說比特幣是信任的機(jī)器。但是本篇文章說到對于弱中心化他是不看好的恕曲,這個我們要結(jié)合實(shí)際應(yīng)用看鹏氧,比如說EOS,EOS的弱中心化是結(jié)果而不是手段佩谣,那么EOS做了什么造成了弱中心化這個結(jié)果呢把还?因?yàn)镋OS為了引入DPOS機(jī)制(委任權(quán)益證明)詳細(xì)說明見本鏈接[區(qū)塊鏈]DPoS(委托權(quán)益證明機(jī)制)官方共識機(jī)制詳解——BTS、EOS - CSDN博客,BM引入DPOS解決是為了解決如何持續(xù)優(yōu)化升級這套運(yùn)行在機(jī)器上的自動化的規(guī)則笨篷,畢竟一套規(guī)則隨著參與的人數(shù)越來越多它總會面臨著各種各樣的問題瞳秽,如何獲得大家的認(rèn)同去修改游戲規(guī)則成了一個比較棘手的問題,因?yàn)檫@套規(guī)則是基于去中心化的率翅,大家認(rèn)同這個規(guī)則才跑到一起玩练俐,不認(rèn)同完全可以不跟你玩。但是現(xiàn)在比特幣就面臨著社區(qū)分歧太大難以實(shí)現(xiàn)共識并修改規(guī)則冕臭,而BM正是借鑒現(xiàn)實(shí)社會中的投票機(jī)制來試圖解決這個問題腺晾,在現(xiàn)實(shí)社會中民主國家的運(yùn)行機(jī)制是平時民主并不干預(yù)國家的運(yùn)行,而國家一旦侵害了大家的利益辜贵,大家就會用投票的方式來表達(dá)不滿悯蝉,并試圖影響政府去改變這種侵害大家權(quán)利的行為。在區(qū)塊鏈這個機(jī)制上托慨,這種現(xiàn)象也很明顯鼻由,平常大家使用比特幣等等產(chǎn)品,并不會真的關(guān)心你背后的一套運(yùn)行機(jī)制之類的問題厚棵,你好用我就用蕉世,但是隨著使用的人數(shù)越來越多,網(wǎng)絡(luò)越來越卡婆硬,對大家的使用造成了很大干擾狠轻,這時候大家就期待有解決方案,而現(xiàn)實(shí)是解決方案有多種彬犯,大家無法達(dá)成一致意見造成比特幣現(xiàn)在遲遲不能升級向楼,而且產(chǎn)生了礦工分叉比特幣自己單獨(dú)運(yùn)行一個新的規(guī)則來表達(dá)自己的不滿。但是如果比特幣引入了投票機(jī)制就不一樣了谐区,用戶們投票選擇一種升級方案湖蜕,比特幣成功升級用戶獲益,如果升級后比特幣不好用卢佣,用戶繼續(xù)投票換一種規(guī)則繼續(xù)升級重荠,直到好用為止箭阶。當(dāng)然這其中肯定會設(shè)計(jì)到有人利用規(guī)則漏洞作惡的問題虚茶,還有多數(shù)人的暴政的問題,這些其實(shí)都可以慢慢去解決仇参。DPOS機(jī)制讓我們看到了區(qū)塊鏈還有另一種玩法嘹叫,而不是人云亦云盯著EOS的弱中心化不放。
針對弱中心化后诈乒,公鏈慢慢變成私有云罩扇,我的看法是公鏈應(yīng)用區(qū)塊鏈技術(shù)不僅僅是去中性化,而是建立在去中性化上的經(jīng)濟(jì)激勵機(jī)制。像阿里云喂饥、百度云之類的它僅僅是云服務(wù)而已消约,并木有設(shè)計(jì)一套經(jīng)濟(jì)機(jī)制,如果你開發(fā)DAPP木有利用到公鏈的這種經(jīng)濟(jì)激勵機(jī)制的話员帮,還不如直接用這個成熟的云服務(wù)來的方便好用或粮。