史上最全了解比特币的科普对话,没有之一
发布于 3 个月前 作者 赞比社区 230 次浏览 来自 比特币

​比特币和丢丢币的对话 (丢丢币代表中央机构或者第三方发行的法定货币。)

比特币出现的原因,解决的问题。

丢丢:哼,你不就是个虚拟的数字吗?一点儿用处都没有。 比特:我不仅仅是虚拟的数字,我还是一个拥有底层复杂机制构建的电子现金系统。

丢丢:虽然我被机构创造了出来,但时刻都有深深的危机感。虽然我自己很庆幸,但我知道现在的魅力都是别人基于对机构的信任给我的。什么时候他们再创造个落落,拉拉的,我就完成没辙了。 比特:是啊,现在所有的交易都是基于第三方的信任发生的,所以我才想创造一个点对点,人对人,不用经过第三方就可以直接进行交易信任的系统。

丢丢:这样啊?那我到时候还能存活吗? 比特:当然啊。你还是你,只是我想通过这种方式看看另外一种交易的可能。

丢丢:那有了这种信任的体系,你会用我来进行交易的量化吗? 比特:这种交易是用电子货币进行的。我创造了一种数字货币,名称就叫比特币。

丢丢:那比特币除了让交易的点和点之间直接交易外,还有别的什么好处吗? 比特:当然有。就像上次你向我诉苦的那件事,老王和老张已经成交了,但后来老张单方面,背地里毁约,于是花了很大的成本解决纠纷,然后你还被他们俩骂的够呛。

丢丢:是是是,那你有解决办法? 比特:是的,比特币的另一个好处就是交易不可逆。一旦交易被写入整个比特币系统,理论上没有任何人力可以篡改数据。

丢丢:为什么要说理论上,意思是还是有可能篡改。 比特:按照比特币体系的设计,若有人力能够篡改超过51%节点的数据,就可以改变。之后我会告诉你,改变51%基本不可能。

丢丢:好的。那还有什么优点? 比特:还真有一个。之前老李不是想转48元给自己的儿子,因为他怕转多了,儿子乱花。到了银行才被告知太少了不能转。于是老张只好转了最低的100元。

丢丢:是啊,钱太少了,柜台是没有办法办理的。就像现在买卖东西,几分钱的交易已经不存在了。 比特:可是比特币就不存在这样的问题,它没有最小支付额,多少金额都算。而且就像我们现在一些银行卡里面,最后剩下的只有几十,几块,我们通常就直接将卡给扔了,不要了。 但比特币就可以将这些闲散资金都收集起来。

丢丢:听起来还蛮不错的。哎,昨天没睡好,储藏室的温度太低了。 比特:恩恩,注意身体。完美储存你们也需要很大的成本。比特币就不需要考虑租房,隔离,调室温,防虫咬。

丢丢:恩恩,那倒是,比特币都睡硬盘上就行了。 比特:呵呵。

比特币系统运作流程 丢丢:那你能告诉我它到底是怎么发挥作用的?也像我一样有第三方监督吗? 比特:不用第三方。比特币系统将所有的信任都建立在数学计算上。

丢丢:那一定很复杂,我可算不懂数学题。 比特:不需要算懂数学题。用起来其实很简单。 我们假设老王向老张买一克黄金,价值10个比特币。老王和老张登陆比特币系统分别生成属于自己的一对密钥(公钥和私钥),类似我们现在的账户和密码,但公钥和私钥更复 杂。他们是由密码学,数学等联合生成的一些字符串。老张将自己的公钥(账户名)给老王,老王通过自己的私钥(密码)签名后将10个比特币发送给老张。

丢丢:那老张收到10个比特币后交易就完成了? 比特:还远远不是。老王在发出10个比特币的时候,交易开始,这时候还有很多个矿工收到了信息,他们已经准备好了便签将上一次交易便签的独有字符串(也就是哈希值)写在新的 便签上,然后在老张收到比特币以后进行数学计算,第一个计算出的结果的矿工认证了这笔交易的真实性,于是这笔交易就被写在新便签上。

丢丢:写在便签上就可以了? 比特:还不行。这个矿工还需要拿着便签去到至少6个矿工那里让他们确认。如果这6个矿工确认了交易的有效性,他们就会通知整个比特币系统的节点,并将这个新的便签加入到原来 比特币的总便签本中。

丢丢:哦哦,可是为什么要让矿工确认,两个人交易不就好了? 比特:这就是问题的核心。两个人若没有第三方的保证,老张会怕老王赖账。老王也怕老张不是真的想买东西。于是引入了算法的共识机制,就是这些矿工不停的运算,看谁能最先找 出能认证这笔交易的代码。

丢丢:那这些矿工自己都不用工作?专门帮助别人确认交易? 比特:不是,矿工在做这件事情的过程中也得到了比特币的反馈。就是说第一个算出认证这笔交易代码的矿工会被支付一定数量的比特币作为矿工费。

丢丢:那被支付的矿工费从哪里来? 比特:是从系统中来,就像那些拿着铁锹,探照灯挖矿的人一样。这些比特币就是矿工从系统中挖比特币出来。这也相当于一个铸造币的过程。

丢丢:原来就是造币,那不是币会越挖越多? 比特:我也考虑了这个问题。于是将比特币的总量定在2100W个,而且规定了每分钟能被挖出的比特币总量。如果某些矿工算力加大,就是说用更短的时间找到答案。那系统就会自 动提高运算的难度,保证每分钟产出的定量。

丢丢:如果是这样的话,那2100W个挖完了以后矿工不就没有收入了? 比特:不会,到时候每笔交易就会给矿工支付手续费,手续费给的越高,矿工更有积极性去给交易做验证。

丢丢:看起来确实不错。那听你这么说,每笔交易都写在便签本上,是不是所有交易都能被查找出来。 比特:是的,所有交易按照前后的顺序全部记录在一个总的便签本,也就是比特币系统中。

比特币系统本身存在的问题及解决办法

丢丢:听起来好像挺完美的,就没有问题吗? 比特:还真有一个双重支付的问题。不过我也想好了解决办法。

丢丢:什么双重支付? 比特:我们再用上面的例子,老张找老王买黄金,需支付10个比特币。同时老张告诉老李想买他的大米也需支付10个比特币。老张像矿工一样自己准备了一个新的便签,然后将自己和 老王老李的交易都分别写在新便签上,如果正好他也是第一个算出数值,便可宣布将这张新的便签页加入到主便签本上。这时老王看到自己的交易已经被验证,便将黄金给了老 张。 老张接下来并没有将10个比特币打给老王,而是给了老李买了大米。老张没有将便签拿去给另外的6个矿工确认,所以其他矿工所在的节点不会接受这个交易并记录到总便签中。

丢丢:所以说一定要等到加入的便签被另外6个矿工确认,并通知所有人以后才能算交易完成? 比特:是的。而且最好等6个矿工确认并发布一定时间以后再将交易的东西给到对方。

丢丢:这样看起来还是有一定风险啊。 比特:是的。所以要非常谨慎。还有一个办法就是临到交易时从系统中新生成一对密钥,这样就避免不诚实的人提前拿到自己的公钥(账户名)去准备新的便签页,从而成为第一个算 出正确数值的人。

丢丢:这样我明白了。可是从刚刚的对话我发现所有的交易都记录在便签中,而且矿工或者每个节点都能看到这本便签。那如果我的公钥被别人知道了,岂不是我的所有交易信息都泄 露了? 比特:是的。所以一定要保存好自己的公钥和私钥。如果想避免未来被公开交易信息,可以平时多生成一些密钥对,那样即使泄露了其中一个公钥,别人也只能看到自己部分的交易。

丢丢:哦,看起来是很好的解决方案。可是每天那么多的交易,假如有个矿工添加的时候,正好还有另外一个矿工也正确算出了另外一个交易并添加在主标签薄上,那这个矿工的数据 不是不准了? 比特:好问题。这个就是当被添加的新标签页被6个矿工确认,并被加入主便签簿后以后。这个矿工就将自己算好的便签加入到这条最长的便签薄中。也就是说他算的时候还是按照之前 的算,可是算完以后若另一条已经加入在他的位置并且是最厚的便签薄,他的新标签页就要加在这个后面,而不是分叉出另外一条记录账簿来。

丢丢:好吧,有些懂了。 比特:听了这么多也累了,昨天没睡好,现在好好休息下吧。下次再和你分享。 原文:https://zanbtc.com/thread-7399-1-1.html​​ 参考:https://zanbtc.com/forum-2-1.html​

回到顶部