区块链运行机制简介

区块链简介

区块链技术是构建比特币区块链网路与交易信息加密传输的基础技术,其解决的核心问题是如何在缺少可信任中央节点和可信任通道的情况下,分布在网络中的节点如何达成共识。区块链被定义为一个分布式的账本,即每个区块链的节点都拥有系统所有交易的信息和数据。所以区块链系统具有极大的鲁棒性,因为每个节点仅仅是系统的一部分,每个节点的权利相等,都有着一样的账本,摧毁部分节点对系统完全不造成影响。另一方面,区块链的运行机制也确保了交易的安全性,在一个庞大的系统中,除非你能控制大多数的节点,否则系统仍然会参照多数节点的意见来决定什么才是真实的结果,修改一部分账本毫无意义。最后,区块链中不存在中心化的中介机构,交易的成本大大降低,交易效率得到极大的提升。正是由于区块链的安全性、鲁棒性和高效性,其被认为是未来要颠覆世界的技术。

区块链分类

区块链按照其去中心化的程度可以分成三类,公有链、联盟链和私有链。
公有链没有官方组织及管理机构,无中心服务器,参与公有链的节点可以按照系统的规则自由接入网络,不受控制,节点之间基于共识机制开展工作。比特币属于典型的公有链。公有链适用于网络节点之间没有任何信任的场景,所有的用户都可以进入公有链成为其中一个节点。
联盟链是由若干机构联合发起,介于公有链和私有链之间,兼具部分去中心化的特征。联盟链的参与成员是预先设定的并且具有特殊特征的,适用于连接多个公司或者中心化的组织的场景,如银行间的清算。
私有链一般建立在某个企业内部,系统的运作规则根据企业要求进行设定,修改甚至是读取权限仅限于少数节点,同时仍保留着区块链的真实性和部分去中心化的特性。进入私有链的成员仍然是由中心控制和制定的,节点通过授权可以进入,如金融领域的联盟可以是私有链的。
公有链、联盟链和私有链这三种区块链的类型中,只有公有链真正解决了信任问题,联盟链和私有链还是建立在一定的信任机制的基础之上进行的。而正因为公有链通过挖矿这种工作量证明的机制完全替代信任机制,公有链中挖矿消耗的性能也不可小觑,公有链是这三种类型的区块链中性能最低的。

区块链运行机制

区块链技术是一个全民参与的记账方式,区块链的运行基于以下的基础机制:
1) 账簿公开机制
2) 身份与签名机制
3) 旷工挖矿机制
我们把区块链系统想象成一个封闭的村庄,每个村民或者每户人家都可以成为区块链上的一个节点,每个节点都拥有着这个村庄所有交易的一个账簿,账簿是公开的。只要账簿的初始状态是确定的,并且每一笔交易的记录是可靠并且有序的,当前每个人持有多少钱是可以推算出来的。按照常人的思维,就算村民之间交易的可以公开,村民肯定不想让整个村子的人都知道自己到底有多少私房钱,所以在区块链中,交易是公开的,但是参与的节点都是匿名的。参与区块链的节点之间不使用真实的身份进行交易,而是使用一个唯一的ID,在两个节点进行交易的报文中会带有此ID的数字签名,确保交易信息是从对应的交易方发起的。

那么在区块链系统中,节点之间是如何完成支付与交易的呢?假设在村庄中,老王和老张分别是区块链的两个节点,老王要向老张支付10个比特币,老王首先要询问老张的ID,例如老张的ID为ABC,老王的ID为XYZ,此时区块链中产生了一个交易,XYZ要向ABC支付10个比特币,于是老王就写了一个单子交给老张。为了追溯资金的来源,单子上除了付款人和收款人的信息以外,还有那10个比特币的来源信息,如例子中记录,比特币来源于账簿的第一页。单子写完后,老王会在单子上加上自己的数字签名(私钥加密),以便于老张验证这10个比特币确实是来自老王的。老张收到签名后,用老王的ID(公钥)即XYZ对其进行签名验证,证明这个单子是老王发过来的。

这里写图片描述

到此时,老张确定这个单子是从老张那发过来的,但问题是老张怎么确定老王身上有足够的比特币来支付呢?如果在一个没有去中心化的系统中,如老王要给老张转账,老王究竟有没有足够的余额来支付是通过中介机构银行来确定的,而在区块链系统中,承担这个确定工作的是旷工组织。在老王向老张发送交易单的同时,他会把交易信息广播给旷工组织,旷工组织里的每个旷工小组收到交易单后,负责确定交易并且把交易补充到账簿中去。旷工小组执行交易单确定操作是会获得奖励的。下面我们看旷工小组是怎么开展工作的。

旷工小组的具体工作就是生成如下的交易清单,首先旷工小组收到老王与老张之间的交易信息,会把这个交易写到交易清单一栏,接着旷工小组成员找到当前账簿的最后一页,讲其编号抄写到“上一交易编号”一栏。填写到这一步,旷工小组的工作还没有完成,旷工小组的成员把交易清单、上一交易编号以及随机数通过哈希运算,生成一个本账单编号,而区块链中对于本账单编号的值是有具体的规定的,比如目标编号需要前N位为0。由于交易清单和上一交易编号都是不可变的,旷工小组成员需要不断的变化随机数的值来生成符合规定的本账单编号。区块链会自调整账单编号的规则,使得其生成的时间是10分钟。旷工小组得到一张有意义的账簿纸之后(这张账簿也就是区块),为了得到奖励,必须立刻向其他小组确认自己的工作成果。所以该旷工小组会立刻广播他已经生成有效区块的信息,要求其他小组确认。其他小组收到此类的确认信息会立刻停下手中的工作,对此区块的有效性进行确认。确认完成之后,这个区块就进入了主账簿,后面的挖矿工作会基于这个更新后的主账簿进行。

这里写图片描述

对于挖矿小组来说,当账簿纸送出去后,如果后面有收到其他小组送来的账簿纸,其“上一页账簿纸编号”为自己之前送出去的账簿纸,那么就表示他们的工作成功被其他小组认可了,因为已经有小组基于他们的账簿纸继续工作了。而老张看到大多数的小组都确认了这个交易,就认为这个交易已经成功。

总结一下在区块链中的交易过程如下,
第一步,货币的所有者A会利用他的私钥对前一次交易(比特币的来源)和下一位所有者B的签署一个数字签名,并且将这个签名附加在交易单后面;
第二步,A将交易单广播至全网,B与旷工组织都能收到该交易单;
第三步,旷工节点通过解出对应的随机数,生成符合条件的哈希值,去争夺创建新区块的权利并且争取比特币的奖励;
第四步,当一个旷工节点找到解时,向全网广播该区块记录的盖有时间戳的交易,并由全网其他旷工节点核对;
第五步,其他款共节点核对区块的正确定,没有错误后他们会将该区块认定为合法并且去竞争下一个区块,这就形成了一个合法记账的区块链。

没有更多推荐了,返回首页