【实际行动发起】发起建立区块链即时通讯软件体系

在大陆,所有的通讯都受中国政府监控,因此很多大陆网友必须噤若寒蝉,生怕自己被“查水表”。

因此,受到区块链技术的启发,我希望发起一个基于区块链的社交软件。


※注意,本项目建立在 GitHub,请勿通过阁下常用账号为本项目作出贡献。

※强烈建议参与者使用新建立的品葱、GitHub参与到本项目开发当中。

※建议使用 Protonmail 注册相关账户。


GitHub

https://github.com/distributed-im-dev-group/DIM_OpenSource


区块链设计
本 IM 软件共需要聊天记录、关系记录以及交易记录三条区块链,交易使用的货币称为 Message Coin(简称 mc)。

REF-0.1 每个用户在建立账户时,生成公私钥对及其对应的账号,用随机密码 Key0 加密私钥得到 Key1,并用用户密码 UserKey 加密 Key1 得到密码明文。用户使用 UserKey 解密密码明文得到 Key1,使用 key1 解密得到 key0 以鉴权。
REF-0.2 用户添加对方为好友时,需要就用户与好友的好友关系生成一个随机密码 Key3 用于加密聊天记录,并将 Key3 用 key0 加密后发布到关系记录区块链上。
REF-0.3 关系记录包含用户账号,好友账号以及聊天记录密码,用 Key0 加密后得到加密后的关系记录,用用户私钥生成签名,并将签名,关系记录发布在关系记录链上。
REF-0.4 用户在传输信息时,用发送方私钥、加密后正文、接收方账号及时间戳和当前最高区块号码生成签名,并将签名、发送/接收方账号、时间戳及加密后正文公布在聊天记录链上。
REF-0.5 当用户在一台新机器上登录自己的账号时,使用 UserKey 进行 REF-0.1 的步骤进行鉴权,并发布消息需要拉取关系记录以及聊天记录。将用户拉取到的关系记录以及聊天记录经用户许可后用 Key0 保存在当前计算机上以免重复拉取关系及记录。拉取聊天记录时,需要支付自定义数额的 Message Coin 给信息的提供者。设置更高的聊天记录记录及拉取奖励可以激励矿工并获得更快的响应速度。
REF-0.6 当信息接收方收到信息时,将收到信息的时间戳、信息签名用接收方私钥签名后发还到信息发送方。
REF-0.7 矿工可根据自己的计算机性能以及硬盘空间保存关系记录、聊天记录与交易记录。矿工可以通过为用户提供关系记录信息、聊天记录信息与生成交易区块获得 Message Coin。


不可追溯设计
REF-1.0 关系记录、聊天记录、交易区块将被按一定数量 Bytes 打散后存入不同矿工的计算机。

可升级设计
REF-2.0 区块链协议中应留一定空间写入区块链版本号以进行升级。


网络协议设计
REF-3.0 区块链基础通信基于传输层,信息传输基于应用层。


安全设计
REF-4.0 对称式加密算法应使用 AES-256,非对称加密算法应使用 RSA-4096 或更安全之算法,散列算法应使用 SHA-3。
REF-4.1 在可靠的非对称量子加密算法出现后,应切换到非对称量子加密算法。


交易记录
REF-5.0 交易记录设计可参考以太坊。但智能合约不得与关系记录以及聊天记录产生关系。

其他设计
REF-6.0 为了更方便用户使用以增加用户基数(用户基数大,则每个用户都更安全),应支持快速交易确认以及智能合约满足第三方开发者在区块链上设计获利模式。
REF-6.1 应建立标准委员会为表情包、红包等功能制定标识符标准。例如:聊天记录正文为 /:&Emoticon=0001^:/ 则在客户端自动转换为“你好”表情。

【项目流程】
  1. 设计白皮书
  2. 设计通信协议并封装好包。
  3. 基于通信协议开发区块链核心程序。
  4. 基于核心程序开发客户端。
2
分享 2019-08-02

4 个评论

DongDong 新注册用户
现在的无中心系统都在吃中心巨兽牙缝里的残食。题主的去中心区块链IM也是一样。至今还没出现革掉中心巨兽命的无中心化系统。

复制已有去中心的系统,不如创建个人自我中心的系统。在非电子网络的现实社会网络中每个人都是以自己为中心在生活着。人与人是怎么交流信息证明自己是自己的呢?完全靠谱的证明只能是两个人见面。加密技术的出现可以在见面互换密钥后不见面也仍然能验证彼此。网络的美好之处在于实现了快速传输数据。而不是Web,更不是 Google、推特和脸书这些眼里只有钱的公司。

我对自我中心系统的畅想:

自我中心系统的基础:

1:生成自己的密钥对。这就是一个完整的人了。(OpenGPG实现了这点)
2:用DHT等无中心技术互联。就是一个真正的互联网络了。
3:提供基本File API 给构建于此系统之上的应用使用,提供基本的构建于无中心互联技术的 Msg API给系统通讯和应用的社交通讯使用。

文件的发布:
文件以hash为名,发布时可以附带文件名作为建议名称(类似电骡链接那样)。
hash出现冲突时对比文件,把不同之处附加到hash名后作为区分。虽然正常使用时hash冲突概率小于中奖五百万,但是出现冲突时而没有类似这样防范处理,会造成灾难性后果。

文件的属性:(我还没太想好这个)
文件的可选属性中含有作者,视频文件或是电子书文件有不同的作者格式。

文件的传输价值:
网民A传输1TB数据给网民B,A和B的账本就是 A欠B 1TB,当然网络繁忙时也可以上涨价值,比如1TB数据记账1.5TB,这都是A和B之间要协调的事。账本只需要相关的人记录存储就好了,此时可以用区块链技术。如果他们有共同的朋友C,并且3人之间出现循环帐,就可以发起平账,以缩减账簿大小。我不太看好加密货币,因为从某个方面来说还是中心化的,比如算力大的有能力发动 >50% 攻击的节点从某个方面来讲是中心。IPFS的filecoin 我还不太明白是什么原理,但是可以说一句,只要能影响到其他人的都不算是去中心。而我设想的欠人多少数据的帐簿不是中心化的(不过这种账簿的价值也仅限于网民之间传输数据之用),因为这只存在于相关的人之间和其他人无关,当然网民也能向其他人公布这种账簿,因为帐簿不被赖账能表示个人信用可靠,越有社会关系的就越不会违背信用。
注意,传输数据的帐簿只记录传输多大的数据,而不表示文件本身的价值。

文件的价值:
一个1G的电影文件的价值一般来说大于1G大小的随意录音的文件。需要使用自我中心系统帐簿之外的方式付款给作者。
我认为每个诚实的人都可以用自己个人的数据使用感受自由地给数据作者付费。
当然如果看了电影预告后再看电影感觉和预期不符,诚实的人可以说作者伤害了自己,数据的定价为负,可以要求作者赔款。不赔款可以从使用作者其它的文件而不付费。甚至可以惩罚性的声明永不付费知道作者道歉,最后面是个人道德哲学,是个人的事情。

应用层的畅想:
自我中心系统提供软件市场,
软件用类似沙箱或Chroot等技术限制运行,软件完全感知不到不相关的外界。
引用也是一个个文件,应用价值可自由定价。
应用层只能使用自我中心系统提供的文件API和节点Msg API。

一个音乐应用自由付费的畅想:
这个月听了500次歌曲,一共100首歌,自我感受到的价值有20块钱,
有的歌听了10次,有的歌只听了一次。有的歌打了10分,有的歌打了1分。音乐应用按照这些数据出了一份账单报告给你,你可以手动调整一下(比如只打一分的歌曲一分钱都不给),手动调整后点个确定这些钱就可以支付给作者了。付款方式需要外部支持:比特币或paypal等,我并不想再设计一种鸡肋的加密货币。

关于如儿童色情等违法数据问题:
会出现组织提供过滤器应用给这些 文件 hash id 打标签,如儿童色情,或情色等。方便那些怕被FBI踹门或戒色吧的网民手动设置后使用。当然这些数据也有可能会被沉迷于儿童色情的人拿去专门下载这些数据,如果有人不怕FBI的钓鱼节点就使劲作吧,这都是这些人自己的选择,自己的风险,自己去承担就好。也许有人想让自我中心系统原生就能完全做到过滤这些东西,第一:这是没法完全做到的的事情。第二,我对违法文件的违法性存有疑虑,第三:我是和所有人一样平等的人,不是“精英”,不该当这些人的父母去决定你们不该看什么。当然对于那些心智不成熟不被人管就不舒服的巨婴,我要劝他们删掉这个自我中心系统,阉掉自己的网络人格,去用Google Facebook 推特的服务吧,这些中心巨头会按照时下流行的价值观好好调教他们。
DIM_Dev_Grp 回复 DongDong 新注册用户
这样的也很好阿,但是我这篇文章的主要目的是建立一个无法被监管的社交网络。所以希望阁下另外发一篇主题帖以陈述你的想法,谢谢。
DongDong 新注册用户 回复 DIM_Dev_Grp
我的意思是不如咱们造出这个系统,你的无法被监管的社交网络作为应用运行在自我中心系统之上。
你觉得呢?
DIM_Dev_Grp 回复 DongDong 新注册用户
但是造出分布式聊天软件的主要目的是快速提供一个无法审查的IM软件供大家使用,如果做出你的那一套系统之后再在此之上造Distributed IM软件感觉耗费的时间和精力有点多。
直接造 DIM 的话,可能不到十个人几个月时间就能造出来的Prototype了。

要发言请先登录注册

要发言请先登录注册