区块链技术概念
通过区块链的概念,我们知道区块链本质上是一种记账方式。当然,它不是由人保存的,而是由一个软件保存的。让我称之为区块链客户端。结尾。它们在不同的设备上运行并且彼此独立工作。通常我们将运行的客户端称为“节点”。所有节点都位于互连网络中。在网络中,一旦发生交易,消息将立即广播到每个节点。在区块链软件的结构中,相互通信的功能被称为“网络路由”。
在这个网络中,每个节点都维护自己的账本,记录网络中的每笔交易。具体是哪些类型的账户呢?这取决于它是什么样的功能网络。区块链技术是一种技术方法,可以用来实现不同的业务功能,比如日常记账、各种复杂的业务合同等,那么网络中的记账需要保持一致。采用的方法是大家遵循一个规则,通过规则选择记账节点。那么这种规则就变成了“共识算法”。
在某些系统中,会考虑通过规则选择节点过程中涉及的劳动力。毕竟这个节点需要不断地通过“工作量证明”来获得记账权,这是相当困难的。因此,会设计一种激励机制,负责打包数据并广播的节点可以获得系统的奖励。那么每个人都会非常积极地去争取那种奖励。有些区块链系统会设计一个竞争机制让各个节点进行竞争。谁能抓住这个机会,就将获得数据打包权并获得奖励。在此,我们来形象地描述一下这次比赛。这个过程被称为“挖矿”。
那么,话又说回来,我们会一一运行客户端成为节点,那么我们如何标记不同的用户呢?也是通过用户注册吗?事实上,在区块链系统中,它是通过密码算法,具体来说是通过一种称为公钥算法的机制来实现的。我们知道,对于密码算法来说,无论算法过程如何,都会有一个秘钥,而公钥算法有一对秘钥,它们相互配合使用,可以用来加密和解密。互相解密。其中一个称为公钥,另一个称为私钥。公钥可以透露给他人,但私钥应由您自己保管。在区块链中,公钥用于识别用户。
那么这两个键如何协同工作呢?我简单解释一下:用公钥加密的数据必须用相应的私钥解密,用私钥(通常称为“签名”)加密的数据必须用相应的密钥解密。比如张三要给李四寄一张支票,那么怎么寄呢?如果直接发送的话,校验中的数据肯定会被整个网络的其他节点知道。出于安全原因,这是绝对不允许的。于是张三用李四的公钥加密了支票,然后签上了自己的名字(用自己的私钥签名)。这种情况下,即使其他人拿到了支票也没有用,因为只有李四四有自己的私钥来解锁支票使用。这种功能设计在区块链系统中被称为“脚本系统”。
总结:现在我们知道区块链的技术理念其实就是每个人都参与记账,通过规则(共识算法)不断选择记账打包者,其他节点接受验证,每个用户都有一个表达自己的秘密通过脚本系统的功能,在公网上定向发送有价值的数据。
区块链工作流程
区块链的应用有很多。第一个应用区块链技术的软件是比特币。截至目前,区块链技术的衍生系统已经出现了很多,如闪电网络、正义通行证、以太坊、超级账本等。但无论它们是什么类型的应用,它们的工作方法或工作流程都是相似的。本质上,它们都是相同技术结构的产品。接下来我们来谈谈区块链的工作流程。
我们先来看一个转账交易流程。转账交易本质上就是发送一条数据。该数据可以表示为资产、订单或其他形式的数据。让我们看一下下面的插图:
从图中我们可以看到整个数据发送过程比较简单。数据发送后,会被打包成块,然后广播给所有节点进行确认。确认没有问题后,会写入到本地。在区块链账本中,当网络中的大多数节点确认写入后,在确认没有问题后会将其写入各自的本地区块账本中。当网络中大多数节点确认写入时,转账交易就算完成。
这个工作流程具有代表性,其他各种系统都是在此基础上衍生和扩展的。例如,有的会增加身份认证功能,确保只有满足身份验证的用户才能发送数据,有的会扩展交易数据。表达能力不仅可以表达一般的交易转账,还可以表达更复杂的业务逻辑。有许多不同的应用程序,但它总是在变化。
说白了,整个区块链网络就是大家共同维护一个公共账本。请注意,这个账本只是一个逻辑概念。每个节点独立维护自己的账本数据。所谓公共账本,就是说它们各自的账本必须是一致的,一致的部分就是公共账本。区块链技术实际上是围绕着如何保持数据一致性以及如何防止公共账本的数据被篡改。为了解决这些问题,区块链有自己的技术栈。我将在下一篇博客中详细阐述区块链。链技术栈。