我想知道Ethereum是否可以用于加密的对等通信,比如在两方或多方之间大量传送加密的短消息或加密数据。
是否有我可以复习的例子或应用?
发布于 2016-04-13 13:48:12
请查看https://github.com/ethereum/wiki/wiki/Whisper-Overview中Ethereum协议中的用例部分:
shh.post({ "topic": t, "payload": p });没有签名,没有加密:匿名广播;有点像一个匿名主题过滤的twitter提要。shh.post({ "from": myIdentity, "topic": t, "payload": p });开放签名,没有加密:清晰签名的广播;有点像一个普通的twitter提要-任何感兴趣的人都可以看到一个特定的身份是发送特定的东西给没有人特别。shh.post({ "to": recipient, "topic": t, "payload": p });没有签名,加密:加密的匿名消息;有点像一个匿名的丢弃框-消息是私有的所有者的dropbox。他们不知道是谁干的。shh.post({ "from": myIdentity, "to": recipient, "topic": t, "payload": p });秘密签名,加密:加密签名的消息;就像安全的电子邮件.一种身份告诉了另一种东西--没有人能读懂它。只有收信人知道它是从寄件人那里来的。shh.post({ "from": myIdentity, "to": recipient, "topic": t, "payload": p, "deniable": d });秘密签名,加密与可选的看似合理的否认。如果布尔参数d为false,则其等价于上一次调用。如果d为真,则收件人不能向任何第三方证明消息来源于发件人,尽管仍可以自己验证。这是通过在对称会话加密密钥而不是消息体上计算的数字签名来实现的。下面的评论的回应
引用来自Péter Szilágyi的对存储在智能契约中的数据进行加密/解密的有效技术是什么?:
由于区块链上的所有事务和数据都是公共的,因此需要对Ethereum之外的数据进行加密,并插入已经加密的数据。类似地,您需要提取加密的数据并在本地解密它。我确信javascript有很多密码库可以让您这样做,web3 --我怀疑它包含了这样的功能--因为它超出了它的范围。
引用dbryson来自智能合同能计算加密的数据吗?的话:
如果我正确理解您的问题,您所指的是所谓的安全多方计算,这不是当前智能合同的能力。事实上,这是一个极具挑战性的问题,也许最好从区块链中解决,因为它可以是计算密集型的。我建议你先看看麻省理工学院的神秘项目和openPDS项目。我还没有在Ethereum中看到任何计划好的里程碑来实现这个功能。
您还可以查看以下内容:
发布于 2017-01-09 10:57:33
我们刚刚提出了基于Ethereum的UnwiredApp项目。这基本上是一种智能契约,它记录与给定用户相关的消息,并让收件人和只有他才能阅读这些消息。音高视频在这里。
smart合同中的基本可靠代码如下:
struct mess {
uint256 idMessage;
uint256 idPrevious;
uint256 timestamp;
address from;
string message;
}
/* Array with all messages with structure messages[to][idMessage] */
mapping (address => mapping (uint256 => mess)) public messages;因此,每个存储的消息都是一个保存id值的结构、指向前一条消息的指针、时间戳、发件人(from)和消息本身作为字符串。
所有消息都存储在有两个索引的映射中,即"to“和"idMessage”。这样,智能契约就可以始终回答给定帐户的最后消息。
https://ethereum.stackexchange.com/questions/2953
复制相似问题