起因是问看到最近的B萌比赛,出现了一些本不该出现的情况。我实在没有想到,一个二次元的投票活动竟会惊动娱乐圈这个庞然大物,然后被特殊的力量影响,最终走向了固定的结果。
再想想,现在二次元的空间也许被大幅挤占。以前的B站有入站答题作为坚实的城墙,保护着二次元的平台;后来,城墙变成了小土包,各式各样的人冲了进去,将原住民挤在边边角角;现在,将以前的东西拿出来,却被不知道哪来的势力强行占领。A站现在虽然一问都说要支持,但是实际上使用的人却不多。
开始时我考虑的是一个只有二次元才能加入的投票网站,但是想了想又觉得为何不将其在概念上扩展、功能上精简,于是就有了建设一个二次元认证平台的想法。
平台相关设计
账号相关
在账号方面,采用随机10位十六进制ID作为唯一登录凭据,密码/密钥/2FA作为仅有的登录方式,允许随时注册。
用户在注册后可进行答题验证。注册后24小时内未通过任意答题的账号直接彻底删除,随后ID可能再次被注册。(答题相关内容见下文“认证实施方案-认证设计”部分)
进行过答题验证的账号,会在所有验证过期后365日被彻底删除。
有未过期验证的账号不会被删除。
身份验证方案
进行身份验证时通过一次性token进行验证,且仅允许使用一次性token。每个账号同时最多持有10个一次性token。
创建token时需填写要使用此token时的活动代码。
每个一次性token创建后30日内有效,过期自动销毁。
需查询token有效性时,查询方须有活动代码。
平台提供API,通过API的返回值来确定相应token是否有效。
查询API输入参数包括token、领域、活动代码,相应接口仅返回True/False以告知该token是否有效。
持有此token的账号在该领域的验证处于未过期状态、活动代码与token创建时的活动代码相同且90日内没有通过过相同活动代码的验证则视为有效,否则视为无效。
在通过验证后,相应账号创建的其它同活动代码的token直接失效。
认证实施方案
认证设计
每个账号可进行不限数量个领域的认证,每个领域认证过期时间可能不同。
每个领域尽可能按相关内容划分较小的范围,如“约会大作战系列”“某系列(超炮、魔禁)”“请问您今天要来点兔子吗系列”进行划分。
领域的认证通过答题进行,详见“认证实施方案-答题相关”部分。
答题相关
答题以题库中随机出题的形式进行,建议采用选择填空混排的形式(即选项ABCD不一定包含正确答案,选项E可自行填写的形式)。
建议每领域题目数量在200以上,从其中抽取不重复的20题进行作答,每题限时30分钟,答对其中10道题目视为通过。
题目建议为需熟悉该领域才能答出(如《游戏人生》中,空与白在最后抛硬币时抛出的是哪一面)/熟悉该领域也有可能无法答出(如“点兔”中香风智乃最常穿的衣服上衣最外层有几颗扣子)/需对照原作仔细查证(如《幸运星》中,在讨论烤鸡肉串的吃法时,高良美幸背后的黑板上面贴了几张纸)的高难或高耗时题目。
应用方案
下面,是一些我考虑到的这个平台的应用场景。
投票场景防止刷票
通过问卷发放平台收集投票,将问卷设计为三道题目:
1.token(输入框)
2.要投票给谁(下拉选择框)
3.此token的认证领域(下拉选择框)
通过限制第3题的可选范围可以实现仅允许某些领域账号才能投出有效票。
群聊进群验证
只允许某特定领域的人加入的群聊可以要求进群验证中填写token,只允许token有效的人加入群聊
设计原理
账号设计
上面所说的账号的设计其实是一种弱化账号持有的设计,密码忘了大可以直接新建一个账号。账号从头到尾都不会与任何其它东西绑定,用于验证的token也都是一次性的,这样可以最大化保护隐私。
账号并没有验证手机号/邮箱等要求,因为重复注册多个账号几乎没有意义——除非你愿意答好几遍很难的验证题目。
账号的删除机制可以保证有充足的ID可以使用,而且即使是16^10个ID都用完了还能再加一位。同时,这样也可以将没用的数据删除,降低存储需求。
账号除了ID、密码、token、领域认证情况、最近参与活动代码之外没有任何需要储存的内容,没有用户名、介绍之类的设计,尽量节省存储空间,并保证平台简洁、纯粹。
答题设计
将题目难道设计得如此之高,有两方面原因。第一方面是这样可以保证通过的用户至少对相应内容有了解或肯为了通过验证去花费时间,另一方面可以提高刷票等行为的成本。
先说第一方面。验证的目的就是保证仅有喜欢相关内容的人才能参与,而如果一个人不了解或不愿意为其花费一定时间的话我很难认为他是喜欢相关内容的。这方面的设计参考了B站的入站答题,当年我为了过答题可是左百度,右看番软件,答了一下午的题才过(并且有个题问门牌号的让我印象深刻,谁会注意那个啊QAQ)。
而提高刷票成本方面,每刷一张票需要过一遍答题,这么难的题目想要过也不容易,那么刷票的成本便增加了。当然,也要考虑脚本答题的可能,所以我都考虑是题目选项部分随机,除E(填空)选项外均将随机后的内容文字转图片并拼成一张图,而后叠加部分不影响文字辨识的可干扰计算机识别的图案,或是采用仅人类可看出题目的视觉错觉图案(如仅动态可视的滚动雪花屏)。
平台资金设想
若是单纯作为公益性服务,很可能遇到服务器持续亏损的情况。博客园多次濒临关闭已经证明没有稳定资金来源的平台是难以维持的。所以,不得不对可能的资金来源进行考虑。
普遍来说,很多小的工具类网站上通过广告来获取收入。但是此种方式需要考虑广告会影响使用感受、广告拦截器进行拦截、收入是否足够。
不少项目也会有公开的赞助渠道。但是此种方式收入不稳定,难以持续。可以有,但是不能作为主要来源。
注册收费方案可将成本分摊给用户,且可以进一步加大刷票等行为的成本。但是考虑到如此以来删除账号的机制便会显得缺少人性,且与平台设计理念有分歧,属于下下策。
考虑到平台的账号设计,会员收费便显得没有意义。难道要设计成平台用户可认证一个领域,会员可认证3个领域,超级会员可认证5个领域那样吗?显然这种方案并不可行。
结合平台功能,还可以考虑收取服务费的方式。此方式指活动代码需向平台申请,平台依据相应活动代码的被验证次数进行收费。此方案可将服务器成本分摊至使用验证服务的平台/组织/活动,但是需考虑其定价是否会导致无活动选用。
以上,就是我个人的一些拙见,欢迎大家来讨论相关内容。当然,如果有人真的做出来了这样一个平台,我会非常开心。
目前受限于时间、资金、技术等因素,我可能短时间内难以去实现这样一个平台,所以很可能仅仅是将其提出来,实是抱歉。