比特币原理

比特币的原理

每一笔交易包含一个或多个“输入”,输入是针对一个比特币账号的负债。这笔交易的另一面,有一个或多个“输出”,被当成信用点数记入到比特币账户中。这些输入和输出的总额(负债和信用)不需要相等。相反,当输出累加略少于输入量时,两者的差额就代表了一笔隐含的“矿工费”,这也是将交易放进账簿的矿工所收集到的一笔小额支付。

拥有密钥是使用比特币的唯一条件,这让控制权完全掌握在每个人手中。

比特币由这些构成:

一个去中心化的点对点网络(比特币协议)
一个公共的交易账簿(区块链)
一个去中心化的数学的和确定性的货币发行(分布式挖矿)
一个去中心化的交易验证系统(交易脚本)

完整客户端类似于一个独立的电子邮件服务器,因为它处理着协议的各个方面,而不依赖于任何其它的服务器或第三方服务。

轻量级客户端类似于一个独立的电子邮件客户端,能够通过邮箱服务器来访问一个邮箱,因为它在网络交流中依赖于一个第三方服务器。

在线客户端类似于在线邮件,因为它完全依赖于第三方服务器。

由加密算法产生的数字签名建立在Hash函数的基础上,RSA和DSA签名算法就属于这一类。
Hash函数H是一个公开的函数,用于将任意长度的信息M1映射成固定长度的一个值H(M1),H(M1)也称为消息摘要。
Hash函数H的特征是,当对消息M1做任何改变后变为M2时,H(M1)与H(M2)不等,即对信息的任何改变都会改变信息摘要。
发送方使用公钥密码算法和自己的私钥对信息的Hash值进行加密产生数字签名,即S=Sig(PrivateKey,Hash(M)),PrivateKey为公钥算法的加密函数Sig()的私钥。
接收方对签名的验证过程为:计算D=Ver(S,PublicKey)与Hash(M)是否一致,Ver()是解密函数,PublicKey为公钥。

常见交易形式:
(找零)

(把零钱换为大钞)

(给员工发工资)

比特币交易建立和签名时不用连接比特币网络。只有在执行交易时才需要将交易发送到网络。

交易的输出会被创建成为一个包含这笔数额的脚本的形式,只能被引入这个脚本的一个解答后才能兑换。简单点说就是,Alice的交易输出会包含一个脚本,这个脚本说 “这个输出谁能拿出一个签名和Bob的公开地址匹配上,就支付给谁”。 因为只有Bob的钱包的私钥可以匹配这个地址,所以只有Bob的钱包可以提供这个签名以兑换这笔输出。因此alice会用需要bob的签名来包装一个输出

交易被包在一起放进区块中时需要极大的计算量来证明,但只需少量计算就能验证它们已被证明。

挖矿在比特币系统中起着两个作用:

  • 挖矿在构建区块时会创造新的比特币,和一个中央银行印发新的纸币很类似。每个区块创造的比特币数量是固定的,随时间会渐渐减少。

  • 挖矿创建信任。挖矿确保只有在包含交易的区块上贡献了足够的计算量后,这些交易才被确认。区块越多,花费的计算量越大,意味着更多的信任。

比特币中的 “谜题” 是基于哈希加密算法的,其展现了相似的特性:非对称地,它解起来困难而验证很容易,并且它的困难度可以调整。

区块交易链

你可能感兴趣的:(精通比特币学习笔记)