来源 | Hackernoon
编译 | 火火酱
责编 | Carol
出品 | 区块链大本营(blockchain_camp)
伟大的事情都很简单,而且大多数都可以被凝结成几个词:自由,正义,荣誉,责任,仁慈,希望。——温斯顿·丘吉尔
在本文中,我将用代码示例来描述我所知道的最简单的区块链应用程序。这对于那些以区块链为起点的人来说是十分有用的,也可以为经验更为丰富的架构师们提供一个设计模型。
让我们想象一下下面这个用例:你收到了一份经了好几手的文档,而且你想要确保它的真实性。这份文件可能是你要购买的汽车的服务手册,也可能是证明你要购买的房屋的房产证明,它可能是任何东西。
对文档进行数字签名以确保其不被篡改并不是什么新鲜事了,你可以获取文档内容并生成一个加密签名,该签名会与文档本身一起被发送出去。
文档接受者可以再次生成签名,并验证其与提供的签名是否匹配。若匹配一致,则证明文档没有被更改过。这就是MD5 checksums(MD5 校验:https://en.wikipedia.org/wiki/MD5)可以提供的功能,使用起来非常方便。但它的缺点是你需要通过接收签名来验证文档的真实性。如果有人在中间同时修改了文件和签名,那你便无从查证了。
由于从个人那里获取数据并不十分可信,因此有时会有第三方介入,提供有偿的记录保存服务。这种获利动机是促使记录保管者保持诚实的根本原因。
第三方的介入确实是一个可行的方案,但远不是最完美的方案。记录保管者会将自己放在权力顶端的位置,并且在没有竞争压力的情况下榨取高额酬金。更