type
Post
status
Published
date
Jul 2, 2019
slug
summary
tags
Web3
category
Web3
icon
password
Property
May 23, 2023 12:42 PM
转载自我的微信公众号——无常随心说。
原创 无常 无常随心说 2019-07-02 12:26
先给出定义
区块链就是一个通过应用密码学的技术,由集体维护的分布式数据库。它是一个不可篡改的,去中心化的和去信任的可靠数据库。
通过上一篇文章相信大家已经对货币是什么有了了解,货币发展到现在,特别是在出现了电子支付的中国,我们已经离不开的支付宝和微信支付就是一种新形式的货币,它没有实体,就是一个由第三方机构担保的电子账本。
notion image
然而账本上除了我们自己的账目,其他人的账目对我们来说都是不可见的,恶意地的揣测下,马云(或者说某个有权限的人)要是往自己的支付宝账本上偷偷加了10块钱,我们是不知道的,我们放心使用支付宝和微信支付的唯一原因就是因为这些机构够大,够权威,我们信任它,信任是现代货币价值的基石。失去了信任,法币也就成了纸张。
无论你怎么宣传人性的美好,在我一个做安全的人眼中,信任都是不可靠的。
我一直认为古人们宣传要讲信用,要守信,不过是因为没有健全法制或健全规则下的委曲求全
回到正题,我们接下来要说的区块链,就是一种去信任的技术,什么叫“去信任”呢,就是交易(合作)的双方之间无需相互信任就能完成交易(合作)。感觉有点不可思议?但区块链实实在在地做到了这一点,只要按照系统制定地规则进行,你就不能欺骗任何人,任何人也不能欺骗你。夸张点说,你可以跟魔鬼通过区块链公平地交易,无论他如何阴险狡诈。
notion image
如图所示,传统支付系统通过数字签名和第三方机构记录账本,而区块链支付系统通过数字签名和区块记录来记录账本,它们都使用了数字签名技术,那么什么是数字签名技术呢?

什么是数字签名技术?

对于非专业人士,你只需要知道数字签名的作用就是证明信息是由签名者发出的就行了。就跟现实生活中我们在合同上签字盖章一个作用,只不过现实中签字是在纸上,数字签名是在电脑上。 不要觉得电脑上的东西就不可靠,这玩意的可靠性几乎跟1+1=2的可靠性一样。
如果你是个程序员,那我可有的跟你唠了
数字签名使用了公钥密码技术,理论上RSA,ECC都是可以的,但不论选择哪种加密算法,我们都需要一个私钥和一个公钥,公钥顾名思义,是公开的,私钥是我们自己保存不能给别人看的。我们使用私钥对
这里,不知道细心的你有没有发现一个问题,这样的数字签名还能通过重放攻击来伪造交易记录,比如记录是“张三给李四转了10元钱+数字签名”,通过数字签名我能确认这是张三发出的信息,但是大家互相是不信任的,那么我就假设大家都是贪婪的魔鬼,这时魔鬼李四会做什么呢?他会把这条记录复制无数次到账本上,连同签名一起复制,我们能通过签名得知这时张三发送的信息,却无法得知这次交易到底进行了多少次,这样李四就能把张三所有的钱都转走,怎么办呢?我们要保证每条记录都是唯一的,我们可以添加一个这个消息独有的信息,比如时间戳(就是交易发生的时间)。这样就保证了交易记录的不可伪造性。总结下,我们已经知道了区块链账本上的交易记录长什么样子
交易信息:转账人 转账金额 收账人 交易时间(时间戳)转账人的数字签名
有人就奇怪了,你不是说比特币交易都是匿名的吗,那这转账人收账人之间怎么确认彼此的身份呢?

比特币是如何匿名交易的?

notion image
要使用比特币进行交易,你首先需要一个比特币账户,它包括一个私钥和一个地址,这个私钥是不能随便告诉别人的,类似你的银行卡密码,地址则是可以公开的,别人知道了你的地址就可以给你打钱了,地址就类似你的银行卡账号。可是,比特币不是去中心化的吗,没有银行,没有办公楼,我去哪申请比特币账户呢?答案就是,人人可以随时随地,免费申请任意多个比特币账户。
私钥就是一个256位的二进制数字,甚至说你可以通过扔256次硬币来生成你的私钥。而地址呢?是通过你的私钥生成的,它跟你的私钥是一一对应的,但不能从地址反向推导出你的私钥,这其中运用了密码学中哈希函数的知识,后面会细说,这里先不提。那么怎么通过私钥生成地址?我一点也不会密码学,怎么算啊?当然不用你自己算了,细节不需要你来处理,下载一个比特币钱包,输入你的私钥就能获得你的地址了。生成一个比特币账户的操作完全是在你自己本地的电脑上执行的,所以即使生成完了大家也还不知道这个账户的存在,只有等这个地址完成了一笔交易,被记录在了区块链上(变成了人人可查的数据),这个账户的地址才会真正意义上的公开,人人皆知。
另外,对于比特币账户来说,私钥就是一切,如果丢了私钥,你钱包里的钱可就再也找不回来了,这跟银行卡可不一样,银行卡密码丢了可以打给客服重置密码,但比特币账户可没有中心化机构管理,丢了就是丢了,没了就是没了,可能你已经知道比特币的总发行量是有限的,没错,如果有人忘记了他钱包的私钥,那么比特币的总量就会减少。
你可能会想,如果两个扔硬币扔出来的两个私钥恰好一样怎么办,这样这两个人不就用了一个比特币账户,或者说其中一个人可以随便转走另一个人的钱了?没错,从数学上来说确实有这样的可能性,但从概率上来说,这是几乎不可能的,两个人扔硬币得到的私钥相同的概率是2的256次幂分之一,而2的256次幂这个数有多大呢?我这么讲吧,用“天文数字”形容它都是给了“天文数字”这个词无上荣光了。
所以,请像相信1+1=2一样相信你的钱包是安全的就好。因为注册比特币账户不需要提供任何个人信息,所以使用比特币交易时,大家只知道地址,而不知道背后到底是谁,这就为交易(合作)提供了匿名性。
总结下,你现在有了一个比特币账户(也叫比特币钱包)
私钥:相当于银行卡密码,是不能给别人看的。地址:相当于银行卡账号,由私钥生成,能给别人看的。
有了比特币账户,也知道了账本上的交易记录是什么样的,但我们怎么往账本上添加记录完成交易呢?欲知后事如何,且听下回分解~
 
 
到底什么是区块链(二)——节点和记账流程比特币——从什么是货币说起