有了密码学账号的个体
如何在网络空间活动?
直接给答案:当然是使用密钥签名一条消息,然后发送给目标
这里我选择使用 json 作为组装消息的格式
使用测试账号:
Address:o8Tjmes6iAukirYrBosSY9ntC5ahqz9ztK
PublicKey:0203411B7B6FA68C59DE640CA6E4648A60BFFA17020BAD5B47C7CDE58431D70D43
先构造基础消息
{
"Action":201,
"Content":"Hello world...",
"PublicKey":"0203411B7B6FA68C59DE640CA6E4648A60BFFA17020BAD5B47C7CDE58431D70D43"
}
Action 是消息类型(为什么用 Action 不用 Type,因为消息是个体在网络空间的活动)
Content 是消息内容
PublicKey 是消息生成账号 o8Tjmes6iAukirYrBosSY9ntC5ahqz9ztK 的公钥
使用账号 o8Tjmes6iAukirYrBosSY9ntC5ahqz9ztK 的密钥对消息签名
Signature:3044022018C52C995C094392113EC322E270EFAD854219701C53C6DEA791B0B139129A9E02203DF614DC1671A1E939B77AA840CE847E2DC39971FE2C9212A9C35C40A29283D0
对基础消息增加签名,可以得到
{
"Action":201,
"Content":"Hello world...",
"PublicKey":"0203411B7B6FA68C59DE640CA6E4648A60BFFA17020BAD5B47C7CDE58431D70D43",
"Signature":"3044022018C52C995C094392113EC322E270EFAD854219701C53C6DEA791B0B139129A9E02203DF614DC1671A1E939B77AA840CE847E2DC39971FE2C9212A9C35C40A29283D0"
}
可以使用 0.1.0 版的 oxo-chat-client 右小角的<校验 Json>对这条消息进行校验
前面提到用公钥可以算出账号地址,
其次校验签名需要的三个参数是:基础消息、公钥、签名
因此在基础消息中加入公钥,第一可以表明消息的生成账号,第二可以用于后续的签名校验,是必要的
加入签名后的消息,修改任意一个字符都无法通过校验,
(这在数学上是可以被证明的,可以被证明的才是可信的,因此我信仰数学 [In Math, I believe] )
由其不可改变的特性,我称其为原子消息。
使用这条原子消息,个体可以实现了“使用账号 o8Tjmes6iAukirYrBosSY9ntC5ahqz9ztK 在网络空间上进行了一次活动 /操作”,其他个体无法使用账号 o8Tjmes6iAukirYrBosSY9ntC5ahqz9ztK 做出操作。
========================================================
作者:o5rdqyAP36HG6HTCHbiTNh1GJ7kvKk4Z5m
序号:4
https://oxo-chat-server.com/bulletin/25CDE89E60E8E7E2AF66F344502D22E8