区块链技术-2.比特币原理

比特币原理

        比特币历史上第一次交易,2010年5月一位程序员用10000个比特币买了25美元的皮萨,而到了2017年12月10000万比特币价值1.8亿美元(人名币12亿)。那比特币到底是什么?为什么这么值钱?

        比特币是2018年中本聪提出的一种点对点电子现金系统(A Peer-to-Peer Electronic Cash System)。

        1.首先要用到密码学的知识,加密和解密,加密分为二大类对称加密和非对称加密。

            对称加密为私钥和公钥为同一个,例如,5211314,通过对称加密,密钥为3,得到 8544647(每位数字加3),然后可以通过每位减3得到原始内容,这就是对称加密。

            非对称加密,是指的是公钥和私钥不是同一个,通过私钥加密,然后其他人通过你提供的公钥解密,可以得到原始的内容,其中私钥可以通过得出公钥是什么值,但通过公钥不可以计算出私钥是什么。

    用对交易信息加密后的数字要具有对应性以及可鉴定性,对应性指的是用于加密和的数字必须和内容具有唯一性,哪怕内容有一点细微的改变,加密后的内容也要做相应的变化;鉴定性是指的是这条交易的发起方是谁,要能鉴定出来,而刚刚飞对称加密,只有发起方提供的公钥才能得出正确的交易信息,而公钥和人是对应的,所以也可以鉴定出发起方(交易付款方)。

比特币底层用的加密为 (SHA-256 安全哈希算法)。

    2.比特币就是通过这样将交易信息存储在区链上,但是还必须要注意一下的要点。

        2.1 必须要有一个唯一标识身份的账号(一个34长度的字符串),他就像你银行的账号一样,可以标识你的身份,并且每个人不可以重复。

        2.2 如何判断你账户你有足够的余额来支付呢?来完成交易呢?现在金融中,是通过银行这种中心机构来做甄别,你可以通过来查询自己的余额,但万一银行或者其他中心化的机构突然不能用了,怎么办?比特币(Peer-to-Peer)点对点,也就是存储在网络上节点的信息,每一位地位都是平等的,不存在中心管理,还有就是(银行转账的手续费也很高)。比特币将你所有的交易信息都存储在区链中,只有当你收到一笔交易时,当你用来支付时,会带上你这些信息,例如你是A,B之前给你转账1000BTC,而你此时要给C转1000BTC,他会附带上之前的信息;如果你要给C转1100BTC,他会查看1000<1100,所以不能完成支付;如果你要给C转900BTC,他会记录你将900BTC转给了C,将100装给了100,总之你发生的一切交易,追根溯源,从无到有,所有的交易信息都能够查到。这样就解决了如何判断账户余额,能否完成交易。

        2.3 转账记录的存储和维护,比特币的解决解决办法是,将完成的交易信息发布到网络上,让所有运行比特币的客户端都会下载搜有的交易信息,这样就解决了交易信息的存储,但是会产生3个问题(a)如何进行同步,(b)如何防止记录的数据被篡改,(c)双花问题(同一笔比特币交易被重复使用)。

    比特币中利用区块链解决这三个问题,区块链是一个个区块连接而成,区块中中存储着交易信息,而比特币中只认可和维护同一条区块链(也就是说所产生的已经确认过的交易信息都会存储在区块链中,而所有用户本地存储的链条是相同的)。

    a.如何进行同步:所有下载比特币客户端的用户总不可能时时刻刻都开着电脑,连上网,所以网络中节点的数据都不一致,那么如何同步区链中的交易信息,比特币的策略是同步网络中最长的主链数据,将其下载到本地客户端。

    b.如何防止记录的数据被篡改:当产生新的区块时,他会带上上一个区块所有信息的加密后的内容,所以当某一个黑客修改后本地某一条交易信息,他他后面的链路就连接不上他所修改的区块了,所在的链路就断了。除非你能不断的持续生成新的链路,致使链路最长,但这是不可能的,生成一个链路所消耗的算力,平均下来十分钟一个。

    c.双花问题(同一笔比特币交易被重复使用),比特币挖矿,生成一个新的区块,会生成一个随机数但当前72位为0,才会满足要求,而生成一个256位,前72位为0的随机数的平均时间为十分钟,所以记录每一条交易数据区块的平均时间为十分钟,当一个记录完成后,会在全网广播,其他的矿工就会停止计算,但是当一笔交易,差不多都在相同的时间记录,链路中会产生分叉,但都会记录下来,但当下一个交易时,就会继续记录,最终会选择较长的链路,较短的链路则被视为交易失败,一般一个小的转账(1到3个区块能确认),大的交易(3到6个区块能确认)。

3.比特币是如何发行的

    3.1 比特币的总量是恒定的,为2100万比特币,而比特币的产生是对矿工的奖励进入比特币网络而流通的,没产生21万个区块奖励减半,也就是说从0个区块开始到21万个每个矿工获得50比特币奖励,从21万开始的到此后的21万个为25万个比特币奖励,以此类推到693万个区块开始对矿工的奖励为0,也就是说不会在产生新的比特币流入比特币网络,矿工的收入完全来自于每笔比特币转账的交易费,交易费只在比特币账户之间转移,不会产生新的比特币。

                                                                                                 --菜鸟 Rode Chen

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