对区块链的理解

2018-08-16  本文已影响0人  Doter

尝试着自己去理解区块链

科普-区块链

一. 简单的理解:

1. 理解中心化:

  1. 转账的时候,A转100给B的操作是,A通知银行要转账100给B,银行需要验证A是否有足够的钱,之后为A账户减100,B账户加100。
    而银行就是中心。

  2. 通常情况下,如果中心值得信赖,这里不会出现问题。假如有一天,中心出现漏洞,或者被管理员进行了违规操作,可能会出现比较严重的损失。

2. 去中心方案:

1.假如A和B,各自维护一账本,A转100给B,两个人都在账本上进行记录A转100给B。这样的话,如果两个人互相信任那就没有问题。但是其中一个人出现的赖账呢?这样会导致当前的账本,出现问题。如果三个人各自维护一个账本,其中一个人赖账,那么是不是可以进行验证。(记住这里的最少三个人可以防止赖账)。

2.如果10个人,#1转100给#2,它需要通知所有人,我要转账给#2,这样每个人都会进行验证这次是否可行(A是否有钱),验证后每个人将在在各自账本记录转账。。那么这笔交易就会每个人都会记录。如果#1想要篡改记录,或者提出的交易不能进行,那么其余的人对它进行否认,最终#1的操作是无法成功的。
假如其中6个人共同赖账其余4个人,应该是可以赖账成功的吧?所以这里需要记住(想要赖账必须大于50%的人数同时操作)。

3. 区块链

  1. 接着上面的例子,假如规定了账本只能记录100条交易,那么当交易满100条是,需要启用新的账本,而之前的账本进行封存,这样的话:一个账本就是区块,而连起来的账本就是区块链。

以上对于区块链的理解,可以让你明白区块链可以做什么。
简要总结:

  1. 可以进行去中心化的记录。
  2. 最少需要三个节点才能进行。
  3. 50%及以下的的节点出现赖账是不能成功的。

二.进阶理解:

上面只是最简单的区块链思路,接下来尝试从设计思路理解。

1. 保证安全性

这个比较简单,当节点数据出现不一致时,将会选用节点最多的相同账本为准。这样的话尽可能保证数据的正确性及安全性。

2. 封存账本(挖矿)

  1. 当一个账本写满了,我们需要开始一个新的账本,但同时我们需要将旧的账本进封存。
  2. 我们约定使用同一种非对称加密方式。或者我们先用哈希进行计算。哈希的结果用HashCode表示
  3. 我们约定上一个账本的HashCode为:aaaa,我们约定当前要加密的HashCode为bbbb。
  4. 接下来我们需要进行穷举计算出,HashCode(账本+aaaa+key)==bbbb。中的key。
  5. 计算出key后,公布给所有人,然后大家使用HashCode(账本+aaaa+key)进行加密,这样的话,如果某个人的账本有问题,将无法进行正确的hash,也就不能进行封存。如果公布的key有问题,都无法加密时,则证明公布者的账本有问题。
  6. 注意4上面说的穷举计算一个key,相当于破解一个密码,那么如此耗费计算资源的操作必然需要提供给公布者好处,不然我想没人愿意干着事,所以每次公布者的账户会增加一定凭空出来的钱(其他人的账户不变)。
    这也就是挖矿。
上一篇下一篇

猜你喜欢

热点阅读