每天5分钟,学点区块链
比特币的交易
比特币交易是比特币系统中最重要的部分。根据比特币系统的设计原理,系统中任何其他的部分都是为了确保比特币交易可以被生成、能在比特币网络中得以传播和通过验证,并最终添加入全球比特币交易总账簿(比特币区块链)。比特币区块链是全球复式记账总账簿,它的核心客户端有几十个G的文件,可以把它简单理解成是全球账本。每个比特币交易都是在比特币区块链上的一个公开记录。
首先需要特别强调的是,接下来我们要介绍的比特币交易,是客观下的比特币交易流程,涉及到我们之前所讲过的密钥、挖矿等等概念,而非买入或卖出比特币的交易指南。
以下内容是@币全101的一篇文章的总结(原文:https://zhuanlan.zhihu.com/p/37161655):
如果我想要转出比特币给你,首先我要将交易意向告知给比特币网络中所有的节点,让他们来认证这项交易。这些节点需要证明的有两点:第一是我有足够的比特币去完成交易,第二是我没有将这些比特币用到与别人的交易之中。验证这两点没有问题后,这些节点还需要校对公钥和签名。一旦这项交易被认证,那这项交易的信息就会被添加到一个区块之中,区块和区块相连,就成了区块链。
交易的逻辑很简单,那具体又是怎么进行的呢?
首先,我们的比特币不会真正的放在比特币钱包中,放在钱包里的是我们的比特币地址,地址里含有我们所有的交易历史以及余额。
我们需要通过随机数生成一串32字节的数,这就是我们的“私钥”。随后我们可通过椭圆曲线加密算法生成私钥所对应的“公钥”。公钥由65个字节组成,公钥再经过一系列的加密处理就会得到我们的钱包地址。
公钥和私钥之间相互关联,其中公钥是完全公开的,私钥则需隐秘保管。虽然公钥是由私钥推算而来,但是公钥没办法逆推出私钥来,因为私钥生成公钥的加密算法是不可逆的,这就是所谓的非对称密钥密码系统。
每次交易时,我们把私钥和一些交易信息(包括转账数额和转入的钱包地址)一起输入电脑端或者手机端的比特币软件。收到这些信息后,程序就会产生一个“签名”(必须要有私钥才能产生“签名”),这个签名会和生成的转出公钥一起被加入交易数据包之中,并扩散到比特币的网络上寻求认证。网络上的节点可通过公钥中记载的交易历史来认证交易,因为所有的交易在比特币的账簿上都是公开的。这个设计的精妙之处就在于程序会用交易数据中的公钥对签名进行解密和校验,而只有对应的公钥才可以解密由私钥生成的签名。如果验证失败则说明公钥和私钥并不是相对应的一组。在这个过程中,我们既认证了私钥的正确性,又不需要知道私钥的确切字符串。
当我的交易被正式认证后,这条交易信息就会和其他的交易信息一起被打包到一个区块之中。通常认为,想要篡改区块链中的数据就需要掌握51%以上的算力。而每个区块中都含有代表了上一个区块的哈希值,所以如果上一个区块有任何略微的改动,那现区块上的记录就会大相庭径。因此如果想要篡改任意区块上的数据,那就要将后续区块的哈希值都做出调整。而在进行篡改的过程中,可能会不断有新的区块加入到这个链中,进一步增加需要完成的工作量,因此我们认为区块链具有不可篡改的特性。
比特币的竞争币
市面上这么多竞争币,该如何决定关注哪些呢?一些竞争币旨在成为广泛流通的主流货币,还有一些是实验室项目,仅仅是为了测试不同的特性和货币模型,更多的仅仅是那些发起者们创富的手段。我一般通过某款竞争币的决定性特性和市场规模来对其进行价值评估。
以下是关于竞争币和比特币的不同之处的几个问题:
这款竞争币有没有引入重大的创新?
如果有,那么这项创新是不是足够吸引使用比特币的用户转移过来?
这款竞争币是不是致力于某一细分领域或应用?
这款竞争币可以吸引到足够多的矿工来抵御一致性攻击吗?
还有一些有关关键财务和市场指标的问题:
这款竞争币的市场总值是多少?
整个系统的用户/钱包规模大概是多少?
接受其支付的商家有多少?
整个系统每日的交易数是多少?
交易总量是多少?
莱特币(LTC)
莱特币是最早的一批竞争币中的一员,自2011年发布至今,已经成为继比特币之后的第二成功的电子货币。它的主要创新在于两点,一是使用了更新了工作量证明的算法,二是更快的货币参数。如果把比特币看作电子货币中的金币的话,那么莱特币的愿景就是当电子货币系统中的银币,谋求成为比特币的一种轻量的替代货币。考虑到莱特币8,400万的货币总量和相对更快的确认速度,很多莱特币的拥趸相信与比特币相比,莱特币更适合零售业的交易。
出块速度:2分半
货币总量:到2140年达到8,400万
一致性算法:scrypt
市场总值:20亿美金(2017.6)
比特币现金(BCH)
2017年8月1日,比特币现金(Bitcoin Cash/BCash)成为了比特币区块链第一个硬分叉。
当时,随着比特币的用户越来越多,一个制约比特币发展的问题凸显出来:容量瓶颈。如果说比特币区块链是一个账本,那么区块就是账本上的一页纸,纸面积太小,账目太多,导致帐记不下了。容量不够,带来的第一个问题是确认时间变长,也就是一笔转账从发起到被写入账本的时间间隔变得更长了。漫长的等待让比特币变得难以使用。如果不想经历漫长的等待,那只能通过支付更高的转账手续费来加快确认时间。转账手续费越来越高。截止到目前(2017.11),一笔普通的转账至少需要30元人民币左右的手续费,才可以以正常速度确认。有些小额的比特币账户,干脆连转账都转不出来了,因为余额都不够交手续费的。高手续费,让比特币在小额转账上失去了优势。所以那些曾经非常适合用比特币的小额支付应用场景,变得不再适用于比特币。
比特币如果要想在竞争中继续保持领先,就必须降低转账手续费。实际上,在最近两年,比特币的市值占总的数字资产市值的比例在逐渐下降。扩容问题已经迫在眉睫,甚至正在决定着比特币的生死存亡。比特币从2016年开始,转账数就已经达到瓶颈,无法再增加了。比特币社区内对于这一问题的解决方案的争议巨大,之后便出现了比特币现金硬分叉。BCH解决这一问题的方案很简单:直接将区块容量扩展到8M,并将其他方案中可能存在安全隐患的方案剔除掉。实际上,这也正是中本聪的原始方案。1M的区块大小,是在初期为了防止粉尘攻击才做的保护,网络发展起来后是需要解除这个限制的。
– BTC手续费: 0.0015 BTC/KB
– BCH手续费:0.0002 BCH/KB
实际上现在BCH网络的区块容量足够大,只要稍微给一点手续费,都可以很快得到确认。通过扩容来降低手续费的效果非常明显。
那么,今天的5分钟内容就到这里!
网友评论