区块链与比特币(1)

2018年最后一天,想想明年要做点啥。嗯,我想搞清楚什么是区块链和比特币。

最好的方法莫过于写一遍。好,开始~

1. 什么是交易。

交易,就是我给你钱,你给我货。你给我货,本质上跟我给你钱,是同一种事情。所以,我们只需要搞清楚,“我给你钱”本质是什么。

最简单是货币,我给你10块钱,你拿着。我少了10块,你多10块。

复杂一点是银行转账。银行要确认三件事情:1. 我有10块可以给(无论是银行账户,还是透支额度)。2. 我减少10块,你多10块,这件事情要同时发生或者同时不发生。3. 如果转账发生了,这件事情要查得到。其实3这点不是必须的,因为给现金的时候这一点不存在。但给现金的情况,通常一手交钱一手交货,而银行转账到货物交割往往有延时,有个记录会好一些。

现在,我们要在一个既没有银行,又是虚拟的世界做这件事情。于是我们要建立一个机制,当A要给B 十块钱的时候,这个机制可以保证, 第一,确认A有没有支付能力。第二,以某种形式,让A减少10块,B增加10块这两件事情,同时发生或者同时不发生,并且在发生的时候,可以让A的支付能力减少10块而B的支付能力增加10块。第三,可以追查到A付B十块钱这件事是否存在。

银行就在做这三件事情。而如果有人想干坏事,他可以:1. 他可以篡改自己的账户信息,比如偷偷增加1个亿,让银行以为他有1个亿,于是他就可以买很多东西。2. 他可以让银行内部出现漏洞,A增加10块钱的时候B不减少10块。这样,AB如果是一伙的,就可以赚大钱。3. 删除银行交易记录,当收到别人10块钱的时候,死不认账,在真实世界中不把货给人家。

1和3基本是一样的,都是银行记录的信息,银行要做的是防止信息被篡改。要防止2,银行需要保证,增加和减少10块的记录同时发生。如果有多笔交易,比如A一次给100万个同伙各打了100万,银行会有一个顺序(无论是怎么决定),当A的钱给光以后,后面的交易就无法进行。

现在没有了银行,怎么解决 1. 信息记录(并防止篡改), 2. 交易确认(发生了还是没发生), 3. 多交易排队 这三个技术问题呢?

 

2. 比特币世界的信息与交易

比特币的世界里,只有一种信息:x给了y z块钱。

我们先假设这信息无法被篡改。

那么小明怎么知道自己有多少钱呢?就看这个世界里,x给小明z块钱的信息,z的总和是多少。

比如这样的信息有2条:a给小明10块钱,b给小明15块钱。那么小明实际上就有25块钱。但这25并非直接存在的信息,要通过计算获得。

所谓交易,就是某些信息变成另一些信息。比如今天小明给了小红20块钱,那么,在确认了小明有20块以后,上面两条信息会被干掉。变成另外两条:小明给小明5块钱。小明给小红20块钱。

这里我们绕过了两个技术难题。1. 我们假定信息不可篡改。2. 我们假定信息的传播很容易:交易一旦发生,全世界马上知道。这也是区块链技术的关键。

 

 

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

%d 位部落客按了讚: