区块链是一个去中心化的分布式账本系统,是基于密码学原理而不基于信用,不需要第三方中介的参与,由分布式网络中的所有节点共同维护的系统。
其原理如下:
1.当分布式系统中一个节点进行一笔进行交易时,该节点会输入交易的编号,交易的数量,然后用自己的私钥生成数字签名,写上接收方的地址,最后发送整个分布式网络;
2.在分布式的p2p网络中,一个消息会辐射式从周边节点扩散,这样所有的节点都能知道新的交易的产生;
3.当其他节点收到交易内容后就对交易的数目和签名进行校验,确认签名无误并且发送者的确拥有足够多的资产,则会将该交易信息纳入一个区块中;
4.每个节点都尝试在自己的区块中找到一个具有足够难度的工作量证明,这个工作量证明就是区块链中的共识机制之一,这个过程通常称之为挖矿;
4.当一个区块找到了一个工作量证明后,该节点就能得到一定的报酬,类似于劳动所得,这个劳动主要是指计算机的计算和消耗的电费,而报酬一般是电子货币,比如在比特币系统中报酬就是一定数量的比特币,同时它向全网进行广播;
5.当且仅当包含在该区块中的所有交易都是有效的且之前未存在过的,其他节点才认同该区块的有效性;
6.其他节点表示他们接受该区块,而表示接受的方法,则是在跟随该区块的末尾,制造新的区块以延长该链条,而将被接受区块的随机散列值视为先于新区快的随机散列值。
节点始终都将最长的链条视为正确的链条,并持续工作和延长它。如果有两个节点同时广播不同版本的新区块,那么其他节点在接收到该区块的时间上将存在先后差别。当此情形,他们将在率先收到的区块基础上进行工作,但也会保留另外一个链条,以防后者变成最长的链条。该僵局的打破要等到下一个工作量证明被发现,而其中的一条链条被证实为是较长的一条,那么在另一条分支链条上工作的节点将转换阵营,开始在较长的链条上工作。在交易中也会扣除少量比例的数额作为手续费发送给挖矿者,
打个比方来说。存在这样一个小镇,这个小镇上没有银行(去中心化),但小镇上的每一个人都有一个匿名账号和一本小镇所有记录的账本(所有的账本可以自动同步),两个人之间进行交易可以直接进行,无需通过第三方机构,这叫去信任。
匿名账号只有拥有才能使用该财产,镇上的交易可以通过这些匿名账号进行的。而且因为是匿名的,所以拥有者的个人隐私不会被泄漏。(匿名性)
当镇上的张三想把他的一部分资产转移到李四那里,他会把需要转的这部分资产打包起来并用李四给他的锁把资产全部锁住。这样,除了拥有钥匙的李四之外其他人都打不开。然后,张三登录他的匿名账户在这个包裹上进行签名和标记资产数量,并写明是转移给李四的匿名账户上。完成后就通过广播把这个交易发送给镇上所有人。
这样每个人都知道了这笔交易,以后想否认也不可能。(不可撤销)
知道消息后其他人得来验证,第一验证这个签名是否有效,有效是指确实由张三的匿名账户发出,第二会从公开账本上验证张三的匿名账户上是否拥有该部分资产。当验证ok后,就将这笔交易记录到公开账本上。而进行这些操作的那个人也会得到一定数量的奖励。
经过这些步骤后,张三的这部分资产实际上已经转移到李四那里了。当李四需要的时候就可以用他唯一的钥匙打开这部分资产。
因为账本是所有人共同维护的,而且公开透明的,任何人想要知道某个账号上有什么财产上,都可以在这个账本上查到,任何人想在账本上做手脚也不太可能,广大人民群众的眼睛是雪亮的,细微的改动都能被发现。
在比特币系统中的共识机制是工作量证明,但在工作量证明的计算中有很大一部分会被抛弃,造成严重浪费,所以在以太坊中,还引入了另一种共识机制叫做权益证明。它类似于股东机制,拥有股份越多的人越容易获取记账权。此机制不需要大量的计算,而是通过保证金(数字货币、资产等具备价值属性的物品)来证明,收益为抵押资本的利息和交易服务费。提供证明的保证金越多,则获得记账权的概率就越大。