RippleMessenger:区块链客户端(第1/2部分)

发布: (2026年3月1日 GMT+8 13:21)
7 分钟阅读
原文: Dev.to

Source: Dev.to

请提供您希望翻译的正文内容,我将按照要求保留源链接并将正文翻译为简体中文。

Question

基于之前对个人数据权利的分析,个人在网络空间中能够实现的最大公平与自由程度到底是多少?

个人电脑上的主权

在使用自己的电脑(它也是网络空间的一部分)时,个人几乎拥有主权:

  • 存储他们想要的任何数据。
  • 随时读取这些数据。
  • 任意删除数据。
  • 生成新内容(写小说、编辑视频、进行设计工作)。
  • 安装任何他们喜欢的软件(甚至自己编写)。
  • 开机或关机,连接网络或断开网络。

简而言之,使用个人电脑时,个人是主宰。

因此: 多使用你的电脑。当你在使用自己的电脑时,你掌控一切。

最大的现实力量 vs. 在线服务

在面对个人控制的在线服务时,个人能够现实追求的最大力量是其已发布数据不被删除的权利

要实现这一点,需要满足三个条件:

  1. 本地存储与备份

    • 将数据保存在个人电脑上。
    • 即使网络服务删除了数据,你也可以从本地副本重新上传并重新发布。
  2. 开放、独立且公开的数据格式

    • 以公开规范且不受任何专有条件限制的格式发布数据。
    • 示例:一旦 TCP/IP 包标准公开发布,任何符合该标准的包都可以在互联网上传输。
    • 数据可以独立于任何特定系统存在;系统仅遵循个人的指令来传输、存储或显示数据。
    • 因此,任何人都可以在网络空间提供数据服务——没有单一提供商能够在整个网络上删除个人已发布的数据。
  3. 不可伪造且不可否认的数据(加密完整性)

    • 使用加密技术对数据签名。有效的签名防止伪造,并确保签名者不能否认已发布的事实。
    • 密钥对在本地使用开放算法生成,且不受任何第三方授权或管理,从而实现匿名发布(对服务提供商和非交互方保持匿名)。
    • 个人可以向特定方透露真实身份,也可以不透露。信任最终是每个具体人自行作出的判断。

除了上述两大权力之外,个人不必追求其他额外权利——甚至可以主动放弃其他诉求。

推荐的数据格式

基于分析,个人应选择 一种数据格式 在网络空间发布数据。该格式定义如下。

{
  "type": "object",
  "required": [
    "ObjectType",
    "Sequence",
    "PreHash",
    "Content",
    "Timestamp",
    "PublicKey",
    "Signature"
  ],
  "maxProperties": 10,
  "properties": {
    "ObjectType": { "type": "number", "const": "ObjectType.Bulletin" },
    "Sequence":   { "type": "number" },
    "PreHash":    { "type": "string" },
    "Content":    { "type": "string" },

    "Tag": {
      "type": "array",
      "minItems": 1,
      "items": { "type": "string" }
    },

    "Quote": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "object",
        "required": ["Address", "Sequence", "Hash"],
        "properties": {
          "Address":  { "type": "string" },
          "Sequence": { "type": "number" },
          "Hash":     { "type": "string" }
        }
      }
    },

    "File": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "object",
        "required": ["Name", "Ext", "Size", "Hash"],
        "properties": {
          "Name": { "type": "string" },
          "Ext":  { "type": "string" },
          "Size": { "type": "number" },
          "Hash": { "type": "string" }
        }
      }
    },

    "Timestamp": { "type": "number" },
    "PublicKey": { "type": "string" },
    "Signature": { "type": "string" }
  }
}

字段说明

核心/必填字段(6)

字段描述
ObjectType标识此对象的类型。
Sequence此项在由该 PublicKey 在此 ObjectType 下发布的链中的序号(从 1 开始,每次递增 1)。形成每个账户每种类型的逻辑链。
PreHash链中前一项的哈希;对于第一项,它是固定值 44F8764BCACFF5424D4044B784549A1B。与 Sequence 共同构成防篡改链。
Timestamp本公告的创建时间;应晚于任何被引用的项。
PublicKey发布账户的标识符。
Signature对公告进行的加密签名,确保完整性、真实性(绑定到 PublicKey)以及不可否认性。

内容相关字段(可选/可扩展)

字段描述
Content公告的主要文本内容,由用户填写。
Tag用于后续检索和过滤的标签数组。
Quote对其他公告的引用(跨链链接/回复),通过 Address + Sequence + Hash 指定。
File附件文件的元数据(名称、扩展名、大小、哈希)。

公告概览

公告本身包含文件数据——它仅通过哈希保存引用,从而可以单独传输实际文件。

最低验证规则

任何节点/对等方在接受或存储公告之前必须执行以下检查:

  1. 签名验证

    • 使用提供的 PublicKey 验证 Signature
    • 这确认了发布者的完整性和真实性。
  2. 序列连续性

    • 确保链中当前的最后序列号(针对该 PublicKey + ObjectType)恰好是 Sequence - 1
  3. 前置哈希验证

    • 计算前一项(Sequence - 1)的哈希。
    • 确认此计算得到的哈希与公告的 PreHash 字段相匹配。
    • 这保证了新项可以追加到链的尾部。
0 浏览
Back to Blog

相关文章

阅读更多 »

与过去的最后之舞🕺

介绍 你好 dev.to 社区!一周前,我发布了我的第一篇文章,介绍了自己,并解释说我离开了网页开发,专注于 cryptography……

当工作成为心理健康风险时

markdown !Ravi Mishrahttps://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fu...