繁体   English   中英

如何用区块链进行文件的数字签名?

[英]How to make digital signature of documents with blockchain?

我的目标是创建一个网站,要求用户登录,上传文件并使用区块链单点或多点标志签名 ,就像signaturablocksign一样

我已经看过这两个网站,并且对它们如何工作有一点了解。 但这是我没有得到的技术图片。

所以作为一个中级python开发,我有一些问题。 请回答。

  1. 如果各方成功签署(技术上),则在下载之前将文档上传到我的网站之后的整体流程。

  2. 如何生成私钥和公钥以及是否将它们与用户信息一起存储?

  3. 如何与区块链api进行交互。 我已经通过api,但没有任何意义。

Blockchain上的文档存储可能会影响其性能,因此从可伸缩性的角度来看并不总是这样。 因此,最好将文档存储在分散的分布式文件系统(如IPFS(行星际文件系统))中,然后将引用传递给像以太坊这样的区块链平台。 在以太坊中,您可以设计和开发具有授权证明类型的一致性算法的多重签名钱包,并调用一系列智能合约,这些合同可以帮助您以安全和可扩展的方式创作,编辑,版本,发布,存档和过期文档方式。 希望能帮助到你。 如果您需要有关此方法的任何进一步详情,请与我们联系。

Phew,你为区块链的新人设定了一个艰难的目标。 不过,这是非常可行的。 我将不按顺序回答你的问题,因为这就是代码的流程。

如何生成私钥和公钥以及是否将它们与用户信息一起存储?

您不应该生成私钥。 至少,如有必要,使用客户端代码生成它们。 至于存储,你也不应该存储它们。 让用户将它们存储在客户端,最好是在具有Metamask的API的专用钱包中。

不幸的是,你的帖子意味着你的意思是比特币区块链,我不知道任何类似的比特币API钱包...如果你必须使用最安全的存储和加密,但不管你做什么,都不要发送私人服务器的密钥。

如果各方成功签署(技术上),则在下载之前将文档上传到我的网站之后的整体流程。

好的,让我们按照一步一步的示例文档签名。

  1. 将文档上传到您的网站。
  2. B签署他的私钥文件。
  3. B将签名文档上传到您的网站。
  4. 您的网站哈希签名文件。
  5. 您的网站使用签名文档哈希作为元数据广播事务。

现在让我们说A想要验证B签署了该文件。

  1. A下载B签署的文档副本。
  2. 对已签名文档进行哈希处理,并将其与您提供的哈希值进行比较。
  3. A检查区块链以查找包含文档哈希的事务。

如果所有三个步骤都成功,A现在可以确定B在事务被包含在块中的时间周围签署了文档。

如何与区块链api进行交互。 我已经通过api,但没有任何意义。

正常的blockchain.com API不适合此用例。 您对事务内容没有足够的控制,这是嵌入文档哈希所需要的。

我建议您使用像python-bitcoinlibbitcoinlib-js这样的库来创建事务,并使用RPC到节点,与区块链进行交互。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM