区块链是啥?理论层面:区块链是去中心化的分布式账本。今天我们以一种大家都能理解的方式来具体讲讲区块链,首先,抛出两个问题:
A、B是交易双方,C记录这笔交易。
例子:现金交易,打借条存证或第三方见证该笔交易。问题:如果发生交易纠纷,C可作为证据,倘若A、B一方与C串通,或者C丢失,则无法佐证该笔交易。
A、B通过C来交易,C是中心。
例子:用户使用支付宝之间的交易。问题:如果C中心系统出现问题,丢失数据,也无法佐证该笔交易。
怎么解决以上两种问题呢?答案:区块链将一个C变成无数个C。A、B是交易双方,系统上所有的节点C都来记录。
每发生一笔交易,系统在每个节点C上更新记录一次这笔交易。如果这笔交易发生问题,则系统上超过50%的节点C来验证这笔交易的真实性。
如何验证呢?比如,A转账10块钱给B,这笔转账会在区块链系统上进行广播,接收到广播信息的节点C们,就可参与记录并验证这笔交易。
A和B本身是不公开的,具体内容的交易内容也不公开,系统仅仅公开发生了这笔交易及其数额。而且交易不可篡改,因为区块链使用哈希算法(Hasche Algorithm→Hash)。
01 哈希算法
哈希算法,是一类哈希函数的总称,最直观的理解是把“任意长度的输入”变成“固定长度”。哈希函数H接受任意但有限大小的消息x并输出固定大小的哈希值h,即h=H(x)。
举个例子:
x1=A转账10块钱给B h1=a3fc27b01sakhsgdb356cgh1
x2=A转账了10块钱给B h2=c6804n57s3p8dh46dfhqpfgm
h1与h2的字符长度是一样的,每一个输入x,对应唯一的哈希值h。而且,已知输入内容,求哈希值容易,已知哈希值,求输入内容几乎不可能。
因此,记录在区块链上的信息是无法篡改的,一旦篡改,所有得到的哈希值都会发生改变。常用的哈希算法为SHA-256,它的固定输出长度为64位字符。
哈希算法与区块链有什么关系呢?用哈希算法将交易记录打包成一个个数据块(即“区块”),然后将数据块一串串的链接起来就形成了区块链。(过于技术层面的东西我们先不去深究,大概理解是这层意思。)
02 非对称加密技术
区块链还使用了非对称加密技术,交易双方A、B完全不需要了解对方是谁,更不用寻求第三方机构作为信任背书,就可达成信任共识,进行交易。
那么,什么是非对称加密技术呢?
- 对称加密:加密和解密,使用同一个密钥。比如我们在社交平台注册账户,登录验证需要一个密码。
- 非对称加密:加密和解密,使用不同的密钥。加密时的密码是全网公开可见的公钥(publickey),解密时的密码是拥有者的私钥(privatekey)。
回到前面的例子:A转账10块钱给B(A、B各生成一对密钥并将公钥公开)
A在B的公钥上加密一个信息“A给B转账10元钱买XX”,然后发送给B。B用私钥解密,接收到这则信息。
B在A的公钥上加密一个信息“可以交易10元钱的XX,这样这样交易”,然后发送给A,A用自己的私钥解密,完成一笔交易。
这种加密属于交易前的交流,交易后则在区块链系统上生成广播:A转账10块钱给B,所有节点C的账本上都会记两笔,A -10, B+10。
以上的描述中,仅仅是区块链的一部分,仅供大家理解参考。区块链是多种技术整合的结果,它囊括了密码学、数学、经济学等等....
这些技术以特定的方式组合在一起,形成了去中心化的记录与存储体系,并对存储数据的区块打上时间戳使其形成了一个连续的、前后关联的真实数据记录存储结构。待续......