※ [本文转录自 C_Chat 看板 #1R8CTrlP ]
作者: mrbigmouth (大嘴先生) 看板: C_Chat
标题: [讨论] 自由创作网计划
时间: Wed Jun 13 15:27:47 2018
这是一个我大概从一年前就开始想要搞的专案,
一直以来也有断断续续的在Coding跟研究,
只是由于各种原(ㄉㄞˋ)因(ㄉㄨㄛˋ)进度一直很慢。
最近刚好又在CFantasy板看到了有人在讨论相关问题,
干脆提前把一直以来的脑中计划梳理一下PO上来让大家讨论,
一方面算是给自己一点压力(?),
二方面抛砖引玉希望得到有价值的建议、在早期规划阶段做的更好,
三方面也许能够吸引到其他无聊的同(一ˋ)志(ㄍㄨㄥ)一起协作。
(最好的情况就是有人觉得这计划好棒所以直接跳下来帮我做掉!)
(我的立场跟做ACGN股票系统时完全一样,完全不介意有人把我的创意端走!)
零、起源与目标
大陆小说的和谐问题一直是大家有目共睹的夸张,
可以说是到了严重影响正常创作的程度,
但我一直认为这只是真正问题的冰山一角而已。
认真思考一下,为什么这些小说网站可以为所欲为的和谐它们要和谐的东西?
对,和谐的主力推手是政府,
但“小说网站具有这样的能力”才是政府可以推动和谐的主因。
如果创作者都把自己作品放在境外网站或部落格上,那肯定不怕和谐。
但现今的作者却无法这么做,因为即使你是名气超大的作者,
也不可能在自己搞自己的之后还能享有跟之前一样的读者群。
那么读者为何要死心眼的只在小说网站上看小说?
因为小说网站上集中了大量的小说,
依靠搜索、排行榜功能可以让读者更快更好的找到想看的小说,
并且更方便的支付金钱、表达对作者的支持。
但是仔细想想,现在的小说网站真的有做好这些应该做好的功能吗?
我觉得是没有的。
淘宝上各小说网站的各式推荐票都已经明码标价,
现在有点网络阅(尝)读(毒)经验的读者都很难靠小说网站的排行榜找到心仪的作品。
各种黑心条款与媒介的抽成让读者的钱到作者手上时基本上不到一半。
满坑满谷的盗版网站让人可以毫不费力的免费取得创作者的辛苦成果。
当然还有最严重的和谐之风、自我审查、关键字过滤,
让读者不得不忍受满篇乍看之下莫名奇妙的防和谐错字怪词,
还得提心吊胆的担忧看到一半的连载小说会莫名不见!
其实认真找找,让你不用忍受和谐的小说网站还是很多的,
但是它们不是最终在人数起来之后被政府找上门跟着接受和谐的处置,
就是无法让创作者得到足以令其持续创作的利益。
小说网站媒合了创作者与读者,却也垄断两者间的管道,
当后两者转换平台的成本过高时,前者就拥有了对后两者为所欲为的能力。
不彻底改变这点,由于政府拥有对小说网站拥有为所欲为的能力,
就不可能阻止政府为所欲为的和谐他们想和谐的东西。
因此我这个专案希望做到的,
就是建立一个去中心化(Decentralization)的创作分享平台,
让读者与创作者能够“更为自由的寻找有利他们的媒合机制”的体系,
目标达成以下成果:
(1)创作者可以自由的发布作品,无法被任何势力以阻断媒介的方式进行阻止。
(2)创作者可以确保自己对自己作品包含发布、修改、定价在内的所有权力。
(3)创作者可以自由的选择有利他的读者付费与打赏管道。
(4)创作者拥有对读者的筛选权力,
并透过盲水印等技术来排除那些不经同意散播其心血作品的读者。
(5)所有读者对所有作品的评价机制公开透明,不可作伪、不可修改,
读者可以依据这些原始资料,自由的选择甚至自设他所偏好的评价排行机制,
进而更好的找到他心仪的作品。
虽然起因主要是小说,但由于媒介的关系也一定可以包含图片、漫画的创作,
故暂时定名为“自由创作网”。(欢迎提供更好的名字)
壹、基本运作机制与网络架构说明
自由创作网是由所有参与者共同组成的网络,
每一个参与网络的节点在权力与地位上彼此相等。
任何参与者无需向任何单位进行注册帐号,
只要连接上网络内的任一节点就可以参与整个网络,
节点可以透过一般网络位址、TOR洋葱路由或者随机代理的方式连接网络,
所有在网络内交流的讯息皆会经过加密,防伪造、防长城自动阻挡。
创作者可以将其创作摆放在网络内指定的“资源点”中,
(可以是他自己的电脑,或者是任一个他愿意信任的网络节点。)
“浏览者”需取得创作者的允许方可下载浏览之,
取得的资源将是“只有指定浏览者才能解密”的状态,
需要的时候,盲水印技术可以在资源被无断转录时追溯是哪个浏览者转录的。
“浏览者”可以透过两种方式对创作进行评价,
一种是将“评论”视为一种相依性创作纪录在指定“资源点”中,
一种是依照一定规则数据化的分数评价。
在网络中,任何节点都可以自定义一套创作收录、评价数据化的规则,
举例而言,不想查水表的正规小说网站营运商可以制造一套完全符合大陆政府标准
的小说收录标准,定义出“每人每天一张推荐票、每月一张月票”的正统评价机制。
PTT乡民也可以自建立一套“符合乡民审美观的创作分享平台”,
定义另一套“仙草、粮草、毒草”或类似ehentai创作标签的评价标准。
定义标准者在节点内被称为“炼管理者”,
各自管理一条标准公开、不可伪造、不可删改的区块炼资料。
“浏览者”可以在观看创作时以任意一套他愿意接受的机制做出评价,
并被所有可以接纳该标准的“炼管理者”收录其评价。
所有的评价区块炼资料全部公开,
任何人都可以依据任一条区块炼的资料进行数据的验证或者统计规纳,
而浏览者可以依据统计、规纳后的结果在该区块炼内寻找他喜欢的作品。
而创作者的作品会同时存在于所有允许其存在的区块炼中。
自由创作网内的参与者皆具有以下一个或多个的身份,
其负责任务由少到多,排列如下:
1.浏览者
具备一把只有自己知道的私钥与其对应的公钥,
拥有一个根据其公钥算出的唯一性ID。
此为参与自由创作网的最低条件。
透过唯一性ID与其公钥,浏览者方可向资源点请求创作资源。
请求到的资源唯有其私钥方可解读。
“浏览者”身份可以由任何一个具有运算力的机器担任,
包括但不限于智慧手机、平板、浏览器或浏览器插件。
2.节点
在唯一性ID外,节点还需具备“可以被互联网上其他电脑直接访问的地址”,
该地址可以是正常的IP位址,也可以是TOR洋葱路由的唯一性位置。
节点需要付出一部份的内存来纪录部份节点的公钥与地址,
并随时可能成为其他浏览者或节点在搜寻节点过程中的中继搜寻点。
在拥有者允许下,节点也可以成为其他浏览者/节点的代理,
替其传送加密后的讯息与其他节点交流。
(为了绕过防火长城,或者作为没有固定地址的移动终端的中继点)
3.资源点
资源点需要保持稳定的在线时间,具有足够的频宽负担浏览者的传输任务,
拥有足够的容量储存创作者的作品,
在需要时付出大量的运算量来计算需要传递给浏览的盲水印加密作品。
4.炼管理者
炼管理者需要保持稳定的在线时间,
需要付出较少的运算量来审核创作者的创作声明与浏览者的评价投递。
5.数据统计者
数据统计者读取炼管理者公开的区块炼资料,
对所有的创作作品进行分类、排行,供浏览者搜索其心仪的作品。
数据统计可以由浏览者自己进行,此时可以加入自定义的运算条件,
例如:“我觉得某某ID肯定是收费灌票的我要排除他的评价结果”。
数据统计者也可以是公开的入口网站。
在实作上,节点、资源点、炼管理者、数据统计者四者可以是合一的,
组成的结果就是现在大家所看到的小说网站,
不同的是创作品不再仅仅被一家小说网站所收录。
而小说网站主机的营运费用很可能是由捐款、所有创作者合力支付,
或者是如现今一般的从浏览者支付购买作品的金钱里抽成维持。
贰、核心技术解析与当前工作进度报告
这章节是给所有有意愿参加计划的技术人员看的,
内容包含的技术较为艰涩,看不懂的人大可以直接跳过,
只需要知道“理论技术上真的能达成目标”即可。 XD
(一)帐户机制:
自由创作网的浏览者ID采用比特币的钱包机制。
创建帐号时不需要向任何单位通报,
只需要以RSA算法产生自己使用的随机私钥即可。
决定私钥的同时会产生出与之相对的公钥,
透过对公钥进行杂凑函数,就可以最终决定出一个长到不太可能重复的唯一ID。
每一个ID在创作自由网络上都代表着一个身份,
透过其保管的私钥签暑发布讯息,以防伪造。
各身分之间彼此对等,没有人拥有删除另一个帐号的权力。
(炼管理者还是可以完全封锁一个帐号进入区块炼来达成类似的效果。)
这边有一个小小的问题,使用者随机决定的ID有没有可能正好一样?
虽然有可能,但机率实在太小了。
我觉得,比特币都不担心的事大可以不用担心。XD
这里使用到的相关技术网络上已经有太多的现成套件可以使用,
没有工作需时问题。
(二)加密型Kademlia算法:
https://zh.wikipedia.org/wiki/Kademlia
以Kademlia算法为核心的分布式散列表(DHT)已被电驴等P2P软件使用已久,
是确定最可行、最简易且最实用的分布式资讯搜索方式。
Kademlia算法可以在任意两个固定长度的字串间计算其“距离”,
在自由创作网内,所有帐号的ID长度都会是相等的。
因此当节点连上网络时,
其会不断定时往“接触到的最靠近的节点”里去广播自身的存在。
当另一个帐号需要寻者一个节点位址时,
就可以透过不断递回“往更接近的方向搜寻”的方式,迅速的找到其节点。
在自由创作网中,由于节点的ID是其公钥的杂凑化,
因此在广播地址时,只需要检查其公钥与ID的对应关系就可以预防伪造。
广播的地址则可以预先以ID拥有者的私钥进行加密,
有需要联络时才用随着广播的公钥进行解密,
避免以明码标明地址被封包检查拦截。
节点的联络地址可以是以下三种格式:
(1)可以直接联系的IP、网域:
其他使用者可以直接透过正常的网络联结直接拜访该使用者,
一但建立联接,就不再需要再次从Kademlia网络上查找,是最快的方式。
缺点是地址公开透明,要小心被政府查水表。
但只要不是会存放违法资源的资源点,应该就不用担心。
(2)洋葱路由(TOR)的访问地址:
也就是俗称的暗网网址,此方式可确保使用者的真实位置不被查找,
缺点是联络双方都需要额外安装洋葱路由器以透过暗网沟通,速度较慢。
此外,洋葱路由并非真正的去中心化分布式网络,
政府真心想要阻断还是能阻断的,虽然使用者想绕过还是能绕过,
但会导致“被封了一个VPN就得再找一个VPN”的类似状态,
不能提供一个非常稳定的网络环境。
(3)代理者的ID:
以另一个Kademlia网络上的随机使用者作为代理,转交加密后的联络资讯。
这个代理仲介可以无限的串连叠加(代理者的代理),
在网络规模足够庞大的状态下,
就会形成近似I2P隐形网络计划(Invisible Internet Project)的设计,
视情况不断增高的难度会让追索目标真正位置几近不可能,
除非直接封锁网络内大部份的节点,也无法用防火墙检测封包的方式来阻断。
缺点是网速会变得非常非常的..........慢。
相关技术已经差不多开发完了,虽然我最近很想要整个重写。
有可能的话,以C++重新撰写再封装成Web Assembly的形式,
应该可以大幅提升整个网络的效能。
(三)私有型区块炼与衍生炼:
区块炼是近年来随着比特币兴起而热门的技术,
但我们并不是真的要搞电子货币,因此并非全面应用。
去除那些专为电子货币而设计的机制,区块炼可以被描述成一种资料模型:
区块与区块之间透过杂凑函数形成的顺序彼此炼在一起,
每个区块内含一定笔数的“交易”资料,
每一笔交易都需以交易参与者的私要进行“签章”以认证防伪。
靠以上的结构就可以构成区块炼的两个特性:
(1)所有交易都是不可伪造的。
(2)已经进入区块内的交易永远不可能被删除或修改。
最多只能弃用一整块或一长条的区块炼,把资料回溯到资料写入之前。
在自由创作网里,我们将以下四类资料存入区块炼中:
(1)“A创作者发布/撤销/修改X资源于B资源点”资料,
X资源可以是任意小说、漫画的一个章节单位或者一个艺术创作图。
在存入区块炼时,应具有根据其内容运算出的杂凑ID,
供浏览者检查,避免伪造。
创作者在修改资源时,则是发布一份相应的连动资源,
供浏览者运算连动以计算出修改后的结果。
(这代表浏览者可以选择浏览修改前的结果。)
(2)“A使用者订阅X资源于B资源点”资料,
用来证明A曾经订阅过X资源的资料,
这笔资料需要由A使用者与B资源点共同签署以防伪造,
除了供某些评价规则进行检查,还可以做为资源点的订阅资格检查。
比如:“需要先订阅购买小说的前面全部章节才能订阅下个章节”,
这样在发现有人盗转时,进行的帐号封锁才会有足够的吓阻能力。
(3)“A评论者发布/撤销/修改跟X资源有关的Y资源于B资源点”资料,
让使用者可以对小说漫画等创作发表评论的资料,
发表的评论内容同样也是资源之一,需要向特定的资源点索取内容。
(4)“A评论者依据规则对X资源发布???评价”资料。
让使用者可以“炼管理者”所定义的规则来对作品提供数值化的评价,
此评价可以是数值化的,供“数据统计者”制造排行榜所用。
也可以是非数值化的标签、分类,让其他使用者搜索、分类时使用。
在大多数电子货币的区块炼中,区块炼的区块生成者是不固定的。
所有参与者依照“工作证明”或“股权证明”或“价值证明”等机制来竞争。
然而此类机制都不适合这个专案,工作证明机制浪费的运算量太大,
其他不需要浪费运算量的机制则有违去中心化的思想,有被垄断/封锁的风险。
因此本专案只能采用绝对私有制度,
让炼管理者以节点ID为首个区块ID来发行区块炼,
该区块炼上的每一个区块都需要炼管理者的私钥进行签章,
也只有炼管理者能审核有哪些资料能够被写入区块炼之中。
当一条新的区块炼被建立时,
炼管理者可以在开头宣告其继承于哪一条区块的哪些节点,
或者直接从旧的区块链条上将小说、评论、评价等资料爬下来。
由于每一笔资料都带有交易参予者的签章,因此也不会有伪造问题。
相关的程式码....完全没有动过,
但理论已摸清,应该不会有问题。
(四)盲水印技术:
https://www.zhihu.com/question/50735753
盲水印是一种在图片(音乐也行)中混入人眼难以辨识的资讯,
但哪怕该图片被涂改、压缩、切片、扭曲,
这些资讯仍可透过算法的作用重组回大约的样子。
如此以来,只要资源点能在发布资源时,
将订阅者的ID以盲水印写入图片中,(文字创作也可以先转为图片)
就可以轻易的在图片被盗转时找到该图片是被哪一个订阅者盗转的。
(资源点可以纪录该资源的订阅者ID有哪些,
每个节点ID目前定为223位字符,只要能复原出最少5个字符,
搜寻比对一下是非常简单的。)
目前网络上有现成的盲水印套件可以使用,
但效能与健壮性(防止盲水印被人破坏的能力)都不是很令人满意,
我有找过很多据说更好的算法,但距离要写成程式还有很大的功夫....
在最理想的状况下,
盲水印绘图程式应该是连同随机解密密码被封装成Web Assembly组件,
然后由浏览者的前端自行绘制成资源图的。
这样资源点就只需要传送加密资源给浏览者即可,可以大幅增加效能。
参、我可以帮忙什么?
(一)开发:
整个专案距离完成还有非常非常远的距离,
除了上述四项核心技术之外,
节点、资源点、炼管理者、数据统计者都需要各自的端点程式。
不同装置的浏览者更是需要不同的前端接口,
再加上便利创作者发布作品的程式....
这专案想要成功,绝对不是一个人可以办到的。
(二)讨论:
虽然距离完成还有很久,但整体架构已经差不多拟定了,
然而目前皆只是我个人的一己之见,
很可能有什么漏洞或者可以更好的地方,
而你可以帮着思考,在开发之前就让整个专案变得更好。
(三)宣传:
一如所有去中心化的专案,
这个专案的价值会随着参与者的数量而等比级数的提升。
想想比特币,没人使用就不会有任何的价值。
哪怕现在专案就连个影子都还没有,
中断失败的可能性老实讲真的很高,
但你可以把这个构想分享给任何有能力的人,
也许就会有人跳出来接着做下去了也说不定?
以上,打字打的好累,暂时想不到还有啥需要讲的了。
先让大家讨论讨论吧,其他的等我想到了再说 :Q