首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
oxogenesis
V2EX  ›  奇思妙想

一定程度上对标所有聊天型、帖子型应用系统,不知道有没有描述清楚,有没有人能够看得懂

  •  
  •   oxogenesis · 184 天前 · 2464 次点击
    这是一个创建于 184 天前的主题,其中的信息可能已经有所发展或是发生改变。
    35 回复  |  直到 2019-08-02 18:49:45 +08:00
    dawn009
        1
    dawn009   184 天前
    没有描述清楚。
    大概知道你想干嘛,但无法建立起直观概念。宏观概览被淹没在了技术细节里面。
    hyyou2010
        2
    hyyou2010   184 天前   ♥ 1
    先赞了。欣赏探索与创新以及个体权利意识。

    赞同一楼所说,宏观概念应该提取出来做简明说明,半页篇幅,让人几分钟即看懂。
    oxogenesis
        3
    oxogenesis   184 天前
    嗯嗯,后续再梳理下思路,好好表述一下

    想法比较简单
    聊天型、帖子型的应用系统,本身并不生产内容,只是提供了一个网络存储服务
    就开始滥用权利,删号、封号、删帖、看帖子要满足各种条件

    那我就使用逻辑账号,把数据都存在本地,然后开一个公网数据中继服务,
    要获取我发的、收藏的帖子,借助公网中继从我的本地获取
    促进数据的自由流动

    聊天也是同样的道理,我用企业提供的服务和客户端,我与朋友聊天内容的保密性完全没有保障,
    使用公网数据中介,我和朋友可以做到端到端加密,
    而不是使用互联网企业,我与服务器端到端加密,服务器知道、存储我的私人聊天
    oxogenesis
        4
    oxogenesis   184 天前
    这样人人都是内容服务器
    dawn009
        5
    dawn009   184 天前
    和 Solid 相比,有哪些异同?
    oxogenesis
        6
    oxogenesis   184 天前
    solid 指的是? https://learnsolid.cn/#about
    SoLiD (源自「社交链接数据」,Social Linked Data )是一组约定和工具,主要用于构建基于关联数据的分布式社交应用。Solid 是模块化和可扩展的,它尽可能地依赖于现有的 W3C 标准和协议。
    真正的数据所有权
    用户可以自由选择数据存储的地方以及谁可以访问数据,Solid 通过将数据与应用程序分离达到了这一效果。

    模块化设计
    由于用户产生的数据与应用程序是分离的,所以用户能够避免互联网服务提供商随意锁定、删除数据,从而在各个应用之间无缝切换而且不会丢失任何数据或社交关系。

    数据重复利用
    开发者在创建新应用或改进现有应用时,可以重用现有的数据,其中有些数据可能是由其他程序创建的(但要得到用户的许可才能使用)。

    =========================
    我的目标是面向普通个人提供可用的
    1、本地生产的账号,基于这个账号实现以下两个业务功能
    2、与其他个体网上加密聊天,个体到个体的端到端加密,而不是客户端到服务器的加密
    3、发布公告供其他个体浏览,无人可以过滤个体的内容

    所有数据存放在受个体控制的本地环境
    oxogenesis
        7
    oxogenesis   184 天前
    先定义数据后设计系统,与他的数据程序分离思路类似
    不丢失数据和关系,是显然的,所有系统这都是最基本的
    他是技术规范、底层设计?面向的是开发者,不知道要解决啥问题
    我要直接解决现实问题
    oxogenesis
        8
    oxogenesis   184 天前
    再补充一点
    这样做并不是为了盈利,可能需要自己部数据中继节点,规模不大的情况下,个人完全可以负担
    如果数据量大,也有可能会有商业机构愿意做公告聚合服务,这样他们就需要部署服务能力强的中继节点,服务质量好的节点能够旁听到大量公告内容

    整体上具有完全的可持续性
    dawn009
        9
    dawn009   184 天前
    来自维基百科:

    Solid (中文:社交互联数据)[1]是由万维网发明者蒂姆·伯纳斯-李( Tim Berners-Lee )领导的网络去中心化项目,由麻省理工学院 ( MIT )运行。该项目为需要链接数据的应用程序开发了一个分布式网络平台,这个平台完全由用户控制,而不是由其他组织或个人控制。它“旨在从根本上改变网络应用程序的工作方式,从而实现让每个人拥有真正的数据所有权,并且改善隐私状况”[2]。


    历史

    在伯纳斯-李于 1989 年发明万维网二十年之后,他在为万维网联盟撰写的草稿中概述了万维网的设计问题,并提出了 Solid 项目[3][4]。伯纳斯-李越来越沮丧地看到他发明的万维网被滥用,例如:俄罗斯黑客涉嫌干扰 2016 年美国大选,2018 年 Facebook 用户数据泄露风波,Facebook 在 2012 年秘密对近 70 万用户进行心理实验,谷歌和亚马逊为可以识别人类声音情绪变化的设备申请专利[5]。

    伯纳斯-李想要改变目前互联网的运行现状,Solid 项目是改变它的第一步,以让个人用户完全控制自己的数据[6]。伯纳斯-李欢迎任何人加入和贡献 Solid 项目[7]。

    2015 年,該項目收到万事达为支持 Solid 的开发而捐贈的一百萬美元。伯纳斯-李的 Solid 项目研究团队与卡塔尔计算研究所和牛津大学合作[8]。2018 年,伯纳斯-李创立了商业合资企业 Inrupt 以支持 Solid 的发展[9]。
    设计

    要实现分布式网络,需要克服许多技术挑战[10]。应用程序和数据必须分开,允许人们将个人数据存储在他们想要的地方。身份验证程序必须正确识别数据所有者,同时确保隐私。与传统的分散的 P2P 网络(如 BitTorrent )相比,Solid 应该增加更多控制权和功能,而不是使用传统的集中式网络 。最后,系统必须易于使用,速度快,并且允许开发人员快捷地开发应用程序[10]。

    Solid 的核心是在保护隐私的前提下共享信息。用户将个人数据存储在任何自己想要的“ pods ”( 个人在线数据储存器 )中。在用户授予应用程序权限后,Solid 认证的应用程序可以请求数据。用户可以在几个 pod 之间分发个人信息,例如,不同的 pod 可能包含个人简介、联系方式、财务信息、健康状况、旅行计划或其他信息。用户在注册经认证的社交账户时,可以通过授予其访问特定 pod 中的信息的权限来,以完成账户注册。用户保留对用户 pod 中数据的完全所有权和控制权:用户可以控制每个 pod 包含什么数据、每个 pod 的存储位置以及哪些应用程序有权使用这些数据[1]。

    Solid 由以下几部分组成[11]:

    一个特定格式的数据库:它包含有个人数据,例如身份证明、权限认证、登录信息、权限列表、联系人、消息、订阅、评论等(与集中式社交媒体服务功能相同)。
    一个描述 REST API 的规范文档,以指导开发人员构建服务器或应用程序。
    一个用来实现 Solid 规范的服务器。
    一个用于测试和验证 Solid 实现的测试套件。
    一个由在 Solid 平台上运行的社交应用、身份提供程序和帮助库组成的生态系统。
    一个可以互相交流、发布文档和教程的社区。
    oxogenesis
        10
    oxogenesis   184 天前
    “用户在注册经认证的社交账户时,可以通过授予其访问特定 pod 中的信息的权限来,以完成账户注册。”
    向谁注册,注册账户就相当于把蛋蛋让人捏在手里,还怎么活

    在这一点就完全不同,我的这个系统,所有账号都是在本地生产的,同时能被其他用户识别
    oxogenesis
        11
    oxogenesis   184 天前
    老打错字。。。

    在这一点就完全不同,我的这个系统,所有账号都是在本地生成的,同时能被其他用户识别
    dawn009
        12
    dawn009   184 天前
    @oxogenesis #10 可以自建 server,自己选择存放在哪里,当然也包括存放在本地。所以我认为你想要的,Solid 已经做了。
    lhx2008
        13
    lhx2008   184 天前 via Android
    如果发消息不用付费,那么最终会不会淹没在垃圾和广告的洪流中。
    niubee1
        14
    niubee1   184 天前
    端对端加密通讯不基于中心服务器做中转的 IM 我实现了一套出来,绝对私密, 绝对安全, 我觉的很适合矫情的 v 站用户, 我们都是一挂的
    oxogenesis
        15
    oxogenesis   184 天前
    @lhx2008 不会
    默认过滤器
    所有消息都需要校验 Json 格式、签名有效性、To 字段是否为本地系统所使用的账号,识别所有消息的来源账号
    公告过滤器
    本地系统只向关注个体表内的账号发送连续的公告请求消息,直至获取全部公告消息
    根据公告消息的引用关系,向引用账号发送离散的公告请求消息,获取被引用的单条公告消息
    TODO:单条被引用消息的获取来源,不应该局限于引用账号
    聊天过滤器
    本地系统只与好友个体表内的账号,发送和接收密钥协商消息、聊天消息、聊天同步消息

    本地系统会过滤,在白名单中的才会被个体看到
    如果你看到了大量广告和垃圾,只有一种可能,你订阅了大量广告和垃圾的发布账号
    oxogenesis
        16
    oxogenesis   184 天前
    @dawn009 我已经说了,“向谁注册账号?就相当于把蛋蛋给谁捏着。”
    自建 server 只是一个表象,
    他的 server 是 server
    我的 server 只是数据中继,只对消息进行形式化验证,不处理具体的身份认证,不知道用户邮箱、用户密码
    你是属于没看懂那一伙的
    niubee1
        17
    niubee1   184 天前
    个人觉得你这个原型有一个悖论在其中, 如果是针对点对点私密通讯, 那么点对点的加密机制就是必须的,但是你这里又要对标发帖子的, 帖子信息是属于公开或者半公开的信息, 即使加密了, 我通过公告获取到后,最后也是能得到明文的信息, 那么加密还有什么意义?另外看得出来你的原型受了 BTC 很大的影响, 但是区块链块存储的意义是在于批量打包确认, 你这里又不需要公式机制来确认打包, 搞得有点奇怪了。聊天和发帖子是两种不同形式的信息共享机制, 我觉得你想要合二为一的想法并不合理
    oxogenesis
        18
    oxogenesis   184 天前
    @niubee1 没有合二为一,而是将数据分为两类:
    1、绝对公开的,叫公告,对标的是帖子型,只希望传播的越广越好,怕的是被封杀、被过滤、传播受阻,不做加密处理,发表言论是自由,言论被传播也是自由,但是每次传播是基于每个人的选择,没有人可以对其他人定向广播,只有别人来你这拉取公告;
    2、绝对不公开(只对聊天的当事人公开),不对服务器公开;
    niubee1
        19
    niubee1   184 天前
    另, 基于区块链技术来聊天的话, 效率及其低下, 这个东西可以存在于理论上, 但是无法实用化。如果如果要实用, 直接用 ETH 架设私链,用 DAPP 也完全能实现类似的功能
    lscho
        20
    lscho   184 天前 via Android
    看三楼描述的不就是区块链吗。。。。

    你是没搞明白啊,并不是没人想吧端到端加密应用到聊天、论坛上,而是政策不允许啊。想提供聊天、内容发布服务的话,内容必须要能被审查的。
    oxogenesis
        21
    oxogenesis   184 天前
    @niubee1
    引入区块链思想是为了增强信任,减少系统滥用

    一个账号的公告消息链,是为了防止这个账号修改、否认、删除已经发布的公告
    一个账号的公告消息链如果分叉、不一致,这个账户就丧失了信用,你还关注他干什么
    niubee1
        22
    niubee1   184 天前
    @oxogenesis 信任是基于共识的, 如果共识机制不完整的话, 本身就不可信了,BTC 的共识机制是经过时间验证的, 你如果只取用一小部分那还不如不用, 因为反正也是不可信的嘛
    oxogenesis
        23
    oxogenesis   184 天前
    @lscho 想和做是两码事
    《中华人民共和国网络安全法》第二十四条规定,网络运营者为用户办理网络接入、域名注册服务,办理固定电话、移动电话等入网手续,或者为用户提供信息发布、即时通讯等服务,在与用户签订协议或者确认提供服务时,应当要求用户提供真实身份信息。用户不提供真实身份信息的,网络运营者不得为其提供相关服务。

    为个体提供信息发布、即时通讯服务的是个体的本地系统,每个人都是使用自己的本地系统,一个系统一个人身份还不够真实?实在不行加个功能,供个体录入实名信息(但永远不向外发送),不就行了。
    数据中继服务器就像网络设备处理 ip 数据包一样,是感知不到用户和内容的
    oxogenesis
        24
    oxogenesis   184 天前
    @niubee1 只是借用区块链部分思想,如果做公链账本,需要全网同步数据,效率当然低
    比如我只关注 500 个人(这已经不少),我只需要同步 500 个链,每个人关注的人,同步的内容不一样,我只需要校验这 500 个链是否有效,取关、封杀伪造数据的账号即可
    只不过是把微博所有关注浏览的信息移到本地了,并且随时可以删,并不是要把微博整站下载到本地
    oxogenesis
        25
    oxogenesis   184 天前
    @niubee1 公链信任需要共识
    个体账号单链不需要共识,谁愿意信就信
    niubee1
        26
    niubee1   184 天前
    @oxogenesis 既然爱信不信,还搞这么些麻烦事情
    oxogenesis
        27
    oxogenesis   184 天前
    @niubee1 “因为反正也是不可信的嘛”
    程序只能保证 json 格式、签名、消息接收账号等形式话校验,序号、前消息哈希值等数据链校验,从技术上保证数据不可伪造,不可伪造就是可信的数据
    信任是人类行为

    你说的不可信是:你可以伪造他人账号的数据?
    oxogenesis
        28
    oxogenesis   184 天前
    @niubee1 爱信不信是人的自由选择,搞工具是为了人选择时有依据

    “创建新回复过程中遇到一些问题:
    你回复过于频繁了,请稍等 1800 秒之后再试”
    每当这种时候发生,我就深深感觉到,作为一个人打了这么多字,竟然被一个网站限制自由,很悲哀
    我又不是回复给你网站,我是回复给 niubee1 这么一个人
    谁写的这个程序给我站出来

    当然 niubee1 这个人也是没有整体全面的思维能力,东伊缀西医追,概念混淆泛泛而谈,不能聚焦于具体问题,展现了 v2 普通用户的一般水平

    水平高的大佬都是默默的收藏
    dawn009
        29
    dawn009   184 天前
    @oxogenesis #16 并不是表象。自建 server 时就是向自己注册,所以你当然可以把卵蛋捏在自己手里。

    给我的感觉,你在做这个之前对同类型的工具了解不够。不知道你在决定造轮子之前都调查过哪些已有轮子。

    沟通成本有点高。
    oxogenesis
        30
    oxogenesis   184 天前
    @dawn009 我对 solid 确实不了解,按你说的
    那么我有一个问题,比如你自建了一个 server,其他人如何使用这个 server ?需要账号吗?账号是你的 server 存储管理的吗,其他人的蛋蛋是不是被你捏住了?
    Teamo
        31
    Teamo   181 天前
    我看懂了 po 说的啥了
    简化一下,举个例子
    用户即 server,好比每个人都有一个扩音器,每个人说的东西都可以到达其他人的耳朵中( client )
    但是每个人都能选择听还是不听这个人说的内容。
    问题是,要是有大量 bot 实行信息炸弹怎么办?
    可信度几乎没有的公共信息最后都筛选不出来,会导致大量用户选择弃用吧
    要不就是最后导致小圈子成立,这圈子可能产生大量非法信息
    希望能给出解答
    oxogenesis
        32
    oxogenesis   181 天前
    @dawn009 应该是回答不上来了
    @Teamo
    这种每个人都是 server 的模式,强就强在不怕暴力攻击
    歹徒可以去抢劫富户、钱庄、银行,但是歹徒不会一个农民一个农民的抢,歹徒的人手是有限的
    每家都有点钱,歹徒也抢不过来,总比大家把钱都放在银行,被黑客一锅端了强

    技术手段只是保证每个小电台是可以被区分识别的,初期可以把接听电台设定为现实生活中认识的人,然后再通过关系传递,去发现其他不认识但优质的内容提供者

    人与人之间成立小圈子还是大圈子,合法信息还是非法信息,跟技术没啥关系,谁来判定小圈子不好不行,每个人身上装个监控就好了?
    如果有人利用技术干了坏事,就跟有人用棒球棍干了坏事一样,有警察叔叔
    dawn009
        33
    dawn009   180 天前
    @oxogenesis #32 因为不想和你说话了。

    「 server 与 server 之间是如何通信的?如果每个人都自建 server,互相之间可以通信吗?」答案是肯定的。

    这个问题稍微调查一下就可以明白,没必要问我。

    本来是你向大家介绍自己的系统,应该是你来比较与现有系统的异同,体现自己的设计有哪些优点。现在反过来需要我给你介绍其他系统,责任倒置了。所以算了,沟通成本太高。
    linhua
        34
    linhua   178 天前
    和 Twister 差不多

    "
    Twister 是一款测试性的 P2P 微型博客自由软件。它是完全分布式的,所以没有什么单独的位置可以攻击,进而无人可以让它停止工作。这个软件系统使用端对端加密以保护信息交互安全。[6] 软件基于 BitTorrent 和比特币,并且意图创建一个分布式的 Twitter 克隆。
    "
    oxogenesis
        35
    oxogenesis   178 天前
    @linhua 对 p2p 并不强调,重点在“账号在本地系统”,因此服务器只做数据中继,从而重要性被大大弱化,降低垄断、权利滥用等对个人不利的情况发生
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   982 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 24ms · UTC 18:27 · PVG 02:27 · LAX 10:27 · JFK 13:27
    ♥ Do have faith in what you're doing.