美文网首页
区块链应用之彩票总结

区块链应用之彩票总结

作者: 幻觉_ae51 | 来源:发表于2018-05-06 15:41 被阅读0次

本篇为基于区块链研习社课程学习总结。

可感知区块链产品-彩票,是众所周知的暴利行业,其暴利是建立在信息不对称的基础上,区块链的去中心机制是彩票的天然应用场景,在宣传方面也是一个很好的噱头。本篇只讲产品,抛开政策和有关牌照问题,相信其他问题总归有办法解决的。

彩票加区块链的竞争优势体现在下面三个方面:

第一,基于区块链的技术去中心,开源,透明,公平、公正,另外让用户可设置服务器,增强公平信任感,这就类似于让用户搭建节点加入来保障彩票的公平透明;

第二、用户识别方面,改变了传统用户名加密码的登陆方式,采用唯一哈希对应唯一用户名的方式,这样篡改难度是非常大的,类似于区块链钱包的私钥辅助记忆保存方式,其表现形式并不统一,例如我们经常使用区块链钱包的助记词功能,目前市场上的区块链钱包都是千篇一律的助记词功能,后续会介绍一种新的方式;

第三,借助token是区块链技术应用到彩票里面最佳的策略,(我的理解就是结算方便,而且一旦直接涉及到法币各种合规和KYC的等级都要提升,而且token还可以设计经济激励机制,本篇并没有介绍)。

竞品分析

设计一款彩票应用离不开的是竞品分析,竞品分析一般分三个方向:

第一就是选择和自身方向一致目标相同的用户,功能和需求类似的产品,比如说各家的彩票业务,选头部的一到两家产品做对比就足够了;

第二,市场和目标方向不一致,功能需求和产品本身进行互补的,类似于彩票中的一元夺宝啦,德州扑克等各种新的变态玩法,值得去借鉴;

第三,相当于互联网的用户思维,能占据用户更多的时间是重点,例如挖矿,每个家庭的带宽是有限的,其网络不可能支撑一堆矿机,普通用户挖矿的效率是很低,所以占用大家的注意力是侧重点。

竞品分析之后要做的就是总结一下,根据其他家的产品定位我们的差异点,彩票这个项目最大的差异点就是我们运用的区块链技术,目前能用区块链技术做彩票开发的,市面上有但不多,得奖算法也是公开透明的,既然用到区块链就要彻底化才有颠覆性,什么叫彻底化呢?大家知道区块链领域有一个不可能三角,去中心、效率、安全只能取其二,而目前很多的联盟链和公链几乎都是采取效率和安全,把去中心化变为弱中心化或者中心化,但是大家思考一下可以发现区块链的精髓还是去中心化,效率和安全目前用阿里云、百度云或者AWS等大企业的平台就早已实现了。若仅仅是满足业务需求,做效率和安全的提升谈自己的区块链有多牛这就是伪命题了。你越做的深就是一个私家云平台而不是区块链平台,所以不管什么场合去中心化依旧是区块链的精髓。例如,今年4月中下旬的时候,我们去和一家很大的企业谈供应链金融的落地问题,他们唯一纠结的地方就是目前大企业信誉非常好,一直想不到区块链能做出哪些差异化来,后来没办法就想到区块链结合清结算的思维做产品,他们对于这种清结算本事不感兴趣,谈了一上午对方始终没有绕开中心化的思想,如果他们全围绕中心化这个思维去做事的话,加区块链这个一个概念,可能仅仅是从原有业务90分到95分的提升,还有可能是90分到85分倒退,区块链最直接的接入是把它那么大体量的核心企业加入到联盟链中的一环,我相信中国和这个企业同体量的还有很多,它难道不想把其他同体量的企业拉进来一起搞事情吗?现实中不是不想而是因为数据孤岛的屏障或者各种体系的屏障,他们其实很明白这个道理,大企业的人其实并不昏庸他们很精明,这里想表达的是区块链仅仅是技术,你想做行业的颠覆,去中心化是肯定绕不开的话题。

公平博弈去中心也是我们彩票的主题

我们选用的底层框架是fabric,核心问题的处理用区块链加彩票的算法设计,借助token的模式,这样更容易落地。

第一,初始币的发行接口

比如我们定平台的币为彩票币,在自定义的chaincode(fabric里面常说的智能合约)一次发行1000亿到一个固定账户中,fabric智能合约启动时一定要进行初始化,对于彩票平台就是初始化一个彩票币的额度,我们定为1000亿。

第二,彩票币账户间互转接口

链上的用户是可以持有彩票币的,互相之间是可以发送彩票币的,至于更多的玩法是上层的事情,对于区块链底层来讲,上层做了一堆事情,底层的感受就是完成了一次转账的操作,这是一个必不可少的接口。

第三, 彩票币跨chaincode支持

chaincode可以查阅某个用户有多少彩票币,这个是为做PC端的监控预留的。

第四, 交易费用支持

大部分网络交易都是要收取费用的,不收取费用的比如说投注不收取,这个是根据上层的设计逻辑合理调取这个接口,主要目的是为彩票平台设计者带来一定的利润回报,因为我们的算法公开的获奖者也是公开的,平台无法造假,交易费用就成了平台的获利点。

第五, 保留金额的判断

普通用户最低的保留金额默认是0,作为判断他是否有投注资格的一个接口。

第六, 发布规则

主要是提供发布抽奖规则的API接口,比如定义开奖的期数啦,开始时间、截止时间,投注数以及一二三等奖的资金占比。

第七, 查询接口

主要是查询活动规则,投注情况、中奖情况或者是余额查询等等。

大概就是以上的七个底层接口,下面说一下重点,就是提到的第六个接口,游戏规则的设定,从三个角度来讲这个规则:游戏规则、号码计算规则和全网关闭时间设计规则

游戏规则:大概是三点,第一选择要参与的活动,每个活动定义总参与的人次,比如一人次=一彩票币,例如押注某个球队获胜一个需要1000人次,每一人次就是一个彩票币,获胜者可以得到1000个彩票币,彩票币和人民币的兑换可以场外进行。

幸运号码的计算规则:活动的最后一个号码分配完毕后,将公示该分配时间点前该活动的最后100个参与时间及全网共识的活动关闭时间;(这里记住有两个时间,一个是最后100个的参与时间,另外一个是全网共识的活动关闭时间,所以一共是101个时间)将这101个时间我们进行数值求和,就会得到一个数值A,也就是每个数据按时分秒毫秒进行组合,然后进行求和就会得到一个很大数就是A,第三步就是把数值A除以该活动的总需人次,比如数值A除以总人次1000,会得到一个余数再加上一个初始值,我们初始值设置为10万,会得到一个最终的幸运号码,拥有该幸运号码的人会直接获得奖励,这里的难点是第二和第三都很好理解,难点是全网共识关闭时间,这个是和区块链息息相关的事情。

全网关闭时间设计规则:我们知道区块链记录是交易,所以每一个验证节点都会记录自己收到最后一笔彩票交易的时间,什么叫最后一笔交易时间?打个比方,比如我一共是1000注,等到第1000注结束的时候,然后没一个节点都会收到这个结束时间,然后每个节点再抛到全网共识达到一致的close time (关闭时间)。简单理解就是系统内置了N个节点,每个节点都记录自己收到最后一笔交易是时间,比如说是第1000笔结束的时候,因为网络有延迟性,我们这种分布式网络系统肯定是有延迟的,各节点收到最后一笔交易的时间肯定是不同的,(PS一个人说话,离他最近的先听到)系统中内置的N个节点收到最后一笔交易的时间是不同的。然后各节点讲自己的交易时间抛到全网进行全网共识,共识时间是3秒,3秒后每个节点拥有多个交易时间,(ps比如说一共5个节点,第一步是第1000笔交易结束的时候,5个节点各自有不同的时间,给他们3秒是时间进行共识,这五个节点会把他们收到的节点抛到网络里面进行广播,三秒之后每个节点都会有5个时间节点,就是他们都彼此交叉了,比如说我是第一个节点,3秒之后我不但有我自己节点1的时间,还有节点2、3、4、5的时间,也就是说3秒之后每个节点都有5个时间)接下来是各节点再将时间排序去重(因为有的节点离得近可能有相同时间),选择一个中间值,再抛出新的时间节点,进行下一轮,每个时间节点又会得到5个时间,然后就这样一直抛一直抛,一直到某个关闭时间,这个关闭时间就是每个节点抛出去的时间占到总体的80%以上为止从而得到共同的最终的关闭时间,设置的规则就是反复舵轮进行,实际中一般两轮之后也就是6秒就能决定出80%的关闭值,一般5-8s就足够了,但是这个关闭时间是随机的。抽奖结果是基于用户的投注时间,就是前面提到的最后100笔,也就是说总共1000注,从第900注开始记录从900注到1000注的用户时间,抽奖结果是基于用户的投注时间加权节点共识时间参与生成的唯一随机数,全节点共识时间就是上面的关闭时间。也就是说在这个彩票中唯一用到区块链的地方就是共识关闭时间。大家都知道区块链有tps瓶颈,不可能把所有数据都上链,这就是一个巧妙的地方,我们记录区块链的地方一定是要最核心的地方,而且最核心的核心还得把它简化下来,不能所有的都写到只能合约上去,包含的细节很多,包括钱包web端的后台设计,前面提到的有后台的接口,比如统计用户数量啦,token的统计,节点统计,类似于区块链浏览器功能。

补充,让用户感知区块链设计并把权限全部给出去,登陆注册后钱包私钥导出是必不可少的,移动端钱包大部分助记词。钱包私钥独特设计思路,用WiFi进行导出,对于安卓手机来讲支持WiFi导出和导出到本地,对于IOS苹果手机支持WiFi导出和iCloud导出。WiFi导出要求PC和手机处于同一局域网下,其实局域网下传输要相对安全很多,相比于目前很多用户私钥导出基于互联网要安全很多,而且操作也不复杂。

彩票肯定是一个火爆的行业,tps是最值得考究的,因为大量的人参与是一个绕不开的话题,而目前我们采用的fabric并不是所有的数据都上链,如上面提到的7个接口,仅仅是把游戏的规则,只能合约的算法和获奖记录在链上进行了记录而已,其余的全部在链外进行。按照这种玩法我们上层应用能抗住的tps能到2000,你想想fabric测试速度是300-500之间,而我们选择部分上链能达到2000,也就是说提高了将近7倍,这是一个实测数据,2000是一个最保守的估计,我们压力测试到10000笔的时候才会出现系统崩溃,而对于一个小的应用场景,比如说世界杯来讲2000的tps应该能满足很多场景了,在多的话就是排队了。

PS.对于目前各类区块链框架的tps可信范围是1000-10000之间是最可信的区域,若大家看到某一份白皮书写了几十万或者上百万的并发就要想想他们的前提、测试机是基于什么配置,他们的网络环境都要考虑,和我们实际中是有很大差别的。

我的总结:本篇提到了区块链技术最大的精髓是去中心化,然而我想到了为什么我们需要去中心化呢?或者说去中心化给我们带来了什么好处?在传统的世界,人们之间的合作是基于信任的,不论这信任是基于人与人之间的,还是通过第三方中介机构背书的。但是比特币让我们突然发现人与人之间的合作也是可以基于一套去中心化的算法规则,你认可这一套去中心化人为设定的运行在机器上自动化的规则我们就可以开展金融交易。首先这套规则是每个人都可以提出修改意见的,当然会不会被采纳又是另一回事,紧接着运行在机器上自动化的规则帮助我们节省了多少人力与时间成本。无外乎经济学人杂志说比特币是信任的机器。但是本篇文章说到对于弱中心化他是不看好的,这个我们要结合实际应用看,比如说EOS,EOS的弱中心化是结果而不是手段,那么EOS做了什么造成了弱中心化这个结果呢?因为EOS为了引入DPOS机制(委任权益证明)详细说明见本链接[区块链]DPoS(委托权益证明机制)官方共识机制详解——BTS、EOS - CSDN博客,BM引入DPOS解决是为了解决如何持续优化升级这套运行在机器上的自动化的规则,毕竟一套规则随着参与的人数越来越多它总会面临着各种各样的问题,如何获得大家的认同去修改游戏规则成了一个比较棘手的问题,因为这套规则是基于去中心化的,大家认同这个规则才跑到一起玩,不认同完全可以不跟你玩。但是现在比特币就面临着社区分歧太大难以实现共识并修改规则,而BM正是借鉴现实社会中的投票机制来试图解决这个问题,在现实社会中民主国家的运行机制是平时民主并不干预国家的运行,而国家一旦侵害了大家的利益,大家就会用投票的方式来表达不满,并试图影响政府去改变这种侵害大家权利的行为。在区块链这个机制上,这种现象也很明显,平常大家使用比特币等等产品,并不会真的关心你背后的一套运行机制之类的问题,你好用我就用,但是随着使用的人数越来越多,网络越来越卡,对大家的使用造成了很大干扰,这时候大家就期待有解决方案,而现实是解决方案有多种,大家无法达成一致意见造成比特币现在迟迟不能升级,而且产生了矿工分叉比特币自己单独运行一个新的规则来表达自己的不满。但是如果比特币引入了投票机制就不一样了,用户们投票选择一种升级方案,比特币成功升级用户获益,如果升级后比特币不好用,用户继续投票换一种规则继续升级,直到好用为止。当然这其中肯定会设计到有人利用规则漏洞作恶的问题,还有多数人的暴政的问题,这些其实都可以慢慢去解决。DPOS机制让我们看到了区块链还有另一种玩法,而不是人云亦云盯着EOS的弱中心化不放。

针对弱中心化后,公链慢慢变成私有云,我的看法是公链应用区块链技术不仅仅是去中性化,而是建立在去中性化上的经济激励机制。像阿里云、百度云之类的它仅仅是云服务而已,并木有设计一套经济机制,如果你开发DAPP木有利用到公链的这种经济激励机制的话,还不如直接用这个成熟的云服务来的方便好用。

相关文章

网友评论

      本文标题:区块链应用之彩票总结

      本文链接:https://www.haomeiwen.com/subject/scqurftx.html