之前在知乎上回答了一个问题 区块链是什么,如何简单易懂地介绍区块链?,在评论区又讨论了一下,自己整理成了一篇文章,简单介绍一下什么是区块链以及区块链支付流程。
比方说,一个圈子里有10个人,每个人都有一台电脑和一个自己的签名,每台电脑里都有一个账本,里面记录了这10个人的余额和交易;每次圈子里的人做了一笔交易(转账)的时候,就要更新所有电脑上的账本(10份账本),10份账本时时同步来确认交易完成。
这个账本就是区块链。
账本是一页一页的,每一页写满了交易记录,一页页堆在一起成了一本本子就是账本;区块链是一块一块的,每一块写满了交易记录,连在一起成了一条链就是区块链。
比方说,甲转给乙100元,甲就对圈子里的所有人喊一声,“我要转给乙100块了”,然后,其他人就在自己电脑的账本上都写上:XXXX年XX月XX日甲和乙做了这么一笔交易,甲转给了乙100元。现在圈子里所有的电脑上都有这么一条甲的转账记录,这样一来,圈子里的人就都知道了甲的钱少了100,乙的钱多了一百。
下面举一个具体的例子,说明区块链系统是如何运作的。
首先,我们通过工具生成一个私钥,然后通过私钥与椭圆加密算法算出公钥。私钥是我们的身份证明,是我们的交易密码并且不可修改与追回,这个是要绝对绝对保护与保密的。公钥公开,相当于身份证号,别人可以通过公钥找到我们。身份证号(公钥)是可以冒充的,但交易密码只有你自己知道,所以只要保护好私钥,就是安全的。
有了私钥和公钥以后,进行如下操作:
- 对公钥进行哈希运算,得到公钥哈希值;
- 再对公钥哈希值进行Base58编码,得到另一串数据,这一串数据,就是钱包地址。
通过私钥,我们得到了公钥,再通过公钥,我们就得到了钱包地址。
钱包是用来干嘛的?放钱的!
是的,比特币就放在钱包地址里。那比特币是怎么交易的呢?
比如,小明要给小红转账100元,他得记录下转账金额100元,然后是小红的钱包地址,他自己的公钥地址,但如果就这样转的话,小红无法确定这100元是小明转给她的,因为小明的公钥是公开的,所以,小明要用自己的私钥对数据签名,所谓的签名就是使用私钥对数据的摘要进行加密得到一个签名,小红得到了小明的签名和公钥后,用公钥解密,发现解密出来的数据摘要与实际的一致,确认这是小明的签名,OK,交易确认。
这笔交易就这么记录到账本里去了。回答中说过,圈子里每个人有一本账本,小明刚刚只是在自己的账本里写了这么一笔交易,接下来就是账本同步了。
请注意,账本不是你一部分,我一部分,而是你一份,我一份,两份相同。有一万个人,就是一万份相同的账本,如果觉得这不是很浪费很冗杂吗?那就对了,区块链就是用的很冗杂很冗杂的冗杂存储。
好了,现在有了这么多份账本,但交易总是先发生在其中一个账本上,这么多账本怎么同步呢?靠什么?靠吼。
就是靠吼,小明在圈子里吼了一声,他转了100元给小红,其它人听到了,开始记账(这里涉及了工作量证明,区块链生成和比特币的产出,挖矿指的就是这一步的动作),技术上这个吼叫做广播(P2P协议)。
在这整个过程中,没有任何中心化机构的参与。
下面延续甲转钱给乙的例子,讲讲区块链的特点:
每个人如果想要知道甲还有多少钱,不需要去银行查账,只需要查自己那本帐就知道了;两个人想要交易,不需要银行,直接可以转账,等待圈子里的每个账本同步就行了。不需要通过中心权威机构确认和查询,这叫去中心化;
每个人都能通过电脑看到所有人的交易记录(转账记录),这叫透明性;
圈子外的人可以看到账本,只要你复制了他们的账本并且有一个自己独有的签名就可以加入圈子了,这叫开放性;
如果谁想耍赖,比方说甲硬说自己没给乙汇100元,还把自己的账本给改了,这没用,其他9本账本都说他汇了。除非甲篡改了6本账本,不然他就无法抵赖,这就是信息的不可篡改;
人跟人之间的交易,不需要相互的姓名、身份证号等等一堆个人隐私的东西,只要你的签名就行了(这个签名只是一串独一无二的数字字母组合,跟个人信息无关),这就是匿名性。
目前最大的圈子是比特币圈子。还有一些比较大的圈子,如以太坊、莱特币等。
作者:zgljl2012
链接:https://www.zhihu.com/question/37290469/answer/128002814
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
我的微信公众号
网友评论