想知道更多区块链技术知识,请百度【链客区块链技术问答社区】
区块链在本质上就是一种记账方法,当然了,并不是通过人来记账的,而是通过一种 软件,我们暂且简称为区块链客户端。一个个的区块链客户端软件,它们运行在不同的设备上,彼此之间独立工 作。通常我们把运行中的客户端软件称为“节点”。这些节点运行后,彼此之间会认识一 下。
在这个网络中,每个节点都维护着自己的一个账本,账本中记录着网络中发生的一笔笔账务。区块链技术属于一种 技术方法,可以用来实现各种不同的业务功能,小到如上例中的日常记账,大到各种复杂 的商业合约,等等,记录的数据也就不同了。网络中的节点是独立记账的,可是记账的内 容要保持彼此一致。在有些系统中,会考虑到被骰子投中的节点的劳动付出,毕竟它要负责整理数据,验证数据,打包数据,还要再广而告之,这个活还是挺辛苦的。于是会设计一种激励机制,负责打包数据的那个节点可以获得系统的奖励,这个奖励类似于论坛积分,站在软件技术 的角度,就是一个数据。这个数据可以视为奖金,有时候大家会很积极地去争取那个奖 金,于是就希望骰子能投中自己,有些区块链系统在这个环节会设计出一种带有竞争的机 制,让各个节点去抢,谁能抢到这个机会谁就能获得打包数据的权力并且同时获得这笔奖 励,在这种情况下,我们会形象地将这个竞争的过程称为“挖矿”。那么,话又说回来了,我们将一个个运行客户端称为节点,那到底怎么标记不同的使 用者呢?也是通过用户名注册吗?实则不然。在区块链系统中,这个地方的设计很有意 思,是通过一种密码算法来实现的,具体来说是通过一种叫公开密钥算法的机制来实现 的。我们知道,对于一种密码算法来说,无论算法过程是什么样的,都会有一个密钥。而 公开密钥算法拥有一对(也就是两个)密钥,跟虎符一样,是彼此配合使用的,可以互相 用来加解密。其中一个叫私钥,另外一个叫公钥,公钥可以公开给别人,私钥要自己保管 好。在区块链系统中,公钥就是用来用户身份识别的,一般不会直接使用公钥,因为不容 易让人记住。公钥往往都比较长,实际处理的时候都会进行转换,比如取得公钥的最后20 个字节或者经过一系列更复杂的转换,最后得到一个称为“地址”的转换结果,这个“地 址”就能代表一个用户。现在我们知道了,区块链的技术理念,其实就是大家共同来参与记账,通过一种规则 不断地选出账务打包者,其他节点接收验证,并且每个用户都有一对密钥表示自己,通过 脚本系统的功能实现在公共网络中定向发送有价值的数据。