梳理了一些基础概念,非常清楚了解区块链的入门知识
当一个用户发起交易,向其他用户发送一定数量的加密的货币,该交易就会被传到网络上的每一个节点,之后被每个节点验证。
交易经过验证后,与其他经过验证的交易一起,被打包,由矿工添加到区块中。使用加密方法,将区块链接在一起,形成区块链。这一过程就体现了共识机制。需要每个节点保持一致性,
密码学在其中的运用,例如哈希算法,这个过程就是将任意输入的信息转化成固定长度的字符串。这个值是几乎不可逆的,它的另外一个特性就是即使是轻微的改变数据,输出的结果也会截然不同
假设有一个哈希函数,称为SHA-256(Secure Hash Algorithm 256位),它是一种常用的哈希函数,输出长度为256位(32字节)。
现在我们有两个输入数据:
我们将使用SHA-256哈希函数对这两个输入数据分别进行处理,得到它们的哈希值。
你可以看到,尽管两个输入数据非常相似,只有一个字母的大小写不同,但它们的哈希值却是完全不同的。这展示了哈希函数的抗碰撞性,即使输入数据只有微小的变化,也会导致生成的哈希值完全不同。
区块中的每个区块都包含前一个区块的哈希值,从而形成一条不可逆的区块链。想要更改一个区块,就必须更改后续所有的区块。
公钥密码学在其中的应用为用户之间的交易保证安全。私钥保密,公钥公开,同时数字签名技术,也就是私钥配合一段信息进行加密形成的摘要,以此验证双方的身份。传输交易信息时用的对方的公钥,解开信息用的自己的私钥。保证了交易的准确性和安全性。
透明性。任何人都可以在公共区块链网站查看区块链的所有数据,包括交易数据和区块数据。
对称加密:双方首先要确定加密算法和解密算法,确定密钥后,需要发送确定的密钥进行验证是否是相同的,在密钥配送的过程中,便会产生安全问题,如何确保你的信道没有被人监听呢?那么就诞生了非对称加密
(1976年) 非对称加密的原理就是,双方都有自己的一对公钥和密钥,也就是4个密钥。公钥是公开的,而私钥是自己保留的,不被任何人知道。私钥解公钥。这个过程就是:小红用小明发来的公钥来对发送的信息进行加密,当小明收到后,小明用自己独有的私钥,进行加密。小明私钥是不被任何人知道的。因此保证了在不安全的信道中信息传输的安全性。
RSA 公开的非对称加密算法公开 1977 年
公钥数字签名的安全性概念 1988年
那么承接上面的一个问题,你怎么知道发送信息方到底是不是小红呢?我们上面说,小红用小明的公钥进行加密,小明用私钥解密,这一过程只是确定了接收方结果。假设信道是透明的,任何人都可以用小明的公钥加密,向小明发送信息,那么就无法保证信息的准确性。
那怎么办?这时候就体现了数字签名的作用。数字签名就是 用私钥配合一段信息,用哈希函数生成出来的一个摘要。等于是在传输的信件下再附加一个签名,当小明收到信件后,用小红给的公钥去解开,得到里面的摘要后,对信件本身使用哈希函数,得到的摘要2与信件里的摘要进行匹配,如果两个值是相同的,那么可以确定是小红发的。
哈希函数加密的特性就是,如果信件稍有更改,那么小明对信件本身使用哈希函数的值将与众不同。过程中,这样既保证了信息传输的安全性和确定性。
其实这样子还不是很安全,如果A,B方都要知道互相的公钥也是要发送的,如果没有人去做保证,如何辨别真假呢?这时就需要有一个双方都信任的第三方证书颁发机构来协调。
证书颁发机构,即认证中心CA 。将公钥与那个人的身份信息进行绑定,相当于防沉迷验证吧,如果CA像未成年人用爸妈的身份证进行验证呢?那都别玩了,难办啊,难办就不办了(掀桌子)。要改变这个情况,真正的要理解去中心化思想了。
密码学家大卫·乔姆(David Chaum)于1982年发表的论文《不可追踪支付的盲签名技术》对此进行了详述。
以转钱为例子。
-A -B -C 分别是支付方,银行,收款方。
-数字签名,盲化函数,随机函数
你使用盲签名的目的是为了,,不想让银行知道 是A 转钱 给 C 以此保证A C双方的隐私,和这场交易的隐私。
流程是这样的(我的理解)
可能会看的很迷糊,不过明白一下几点更好理解
我的理解是对新区块的合理性的检验。工作量的话是指在得出合理性新区块所作出的计算量。新区块添加到区块链的过程通常是由矿工完成的。当矿工成功解决了一个复杂的数学问题(也称为哈希碰撞),他们就会创建一个新的区块并将其广播到网络中。这个新的区块需要满足一些标准才能被其他节点接受并添加到他们的区块链中,这些标准包括:
这些标准确保了新区块的合法性和有效性,以及区块链的连贯性和安全性。一旦新区块被其他节点验证并接受,它就会成为区块链上的新的最后一个区块,包含在网络中的所有节点的区块链副本中。
用单向随机函数找出具有特征的值
-找出 n 个0开头的哈希值
一个固定的字符可以有多个对应的哈希值,而你的任务是通过不断尝试来找到满足特定条件的哈希值。这个过程需要不断的尝试。那这个有什么用呢?
抵御垃圾邮件
不断尝试需要算力,算力是需要资源的,可以理解为钱。如果对邮件发送不做限制,便会造成邮件轰炸,类似于短信轰炸。而运用了这个,那么发送就需要一定的成本,可以很好抑制。我只需要验证符合条件哈希值就行了,验证一次,但是发送邮件可能需要大量计算。易于验证,难于计算。
怎么说明这种哈希值的稀缺性呢?(电子货币)
当一个人通过计算得到特定特征的哈希值,这时就变成了可花费的电子货币。比如要求你找到前面数位有多少个0的哈希值,因为哈希值生成的随机性与难改变,就需要通过类似暴力破解的方式去找。这就需要算力资源。而算力资源的提供需要电力和设备,这样就产生了成本,以此电子货币也拥有了类似于物质层面的价值。那么随着你前面的得到0的哈希值越大,那么代表着这个价值越大,随着技术与算力的提生,那么这个哈希值就会贬值。
基于加密货币持有量的共识算法。在PoS机制中,参与网络维护和验证交易的节点被选中的概率与它们持有的加密货币数量成正比。它弥补了工作量证明的一个缺点。如果大部分人都为了开一个新区块都花费资源,那将消耗巨大。不管能力强弱,一般是能力强的解决这个数学问题的概率高,当然能力弱的也有机会选中。选择少部分人去开新区块。
任何人都可以访问和使用它,无需特定的许可或授权。这些网络通常是开源的和透明的,意味着其代码和交易数据对所有人都是可见的。比特币和以太坊是公共区块链的典型例子。在公共区块链上,参与者可以自由地创建和验证交易,并参与共识过程。在安全性方面很高,但是效率低
不对公众开放的区块链网络,通常由单个实体或组织管理和运营。这些网络主要用于内部目的和用途,可以更好地控制访问权限和数据可见性。不使用共识机制也没事,因为内部成员都是知道的,而且隔绝了外部访问。适用于企业,而且效率要高
联盟链是介于公共区块链和私有区块链之间的一种混合形式。在联盟链中,多个组织共同创建和管理一个共享的区块链网络。这些网络可以是开放的或封闭的,根据联盟成员的需求来设定访问权限和数据可见性。只要与验证者达成共识,就可以轻松的进行修改。能不能正常运行还要看参与者的行为了
了解更多 https://academy.binance.com/zh/articles/what-is-blockchain-and-how-does-it-work
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!