当前位置: 首页 > 编程日记 > 正文

区块链概况:从数字货币说起

链客,专为开发者而生,有问必答!

此文章来自区块链技术社区,未经允许拒绝转载。
在这里插入图片描述
从数字货币说起
货币是人类文明发展过程中的一大发明,最重要的职能包括价值尺度、流通手段、贮藏手段。很难想象离开了货币,现代社会庞大而复杂的经济和金融体系还能否持续运转。

历史上,货币的形态经历了多个阶段的演化,包括实物货币、金属货币、代用货币、信用货币、电子货币、数字货币等。货币自身的价值依托也从实物价值、发行方信用价值,到今天出现的对信息系统(包括算法、数学、密码学、软件等)的信任价值。

注:中国最早的关于货币的确切记载“夏后以玄币”出现在恒宽《盐铁论·错币》。

需求
一般等价物都可以作为货币使用。然而平时最常见的还是纸币本位制,既方便携带、不易仿制、又相对容易辩伪。

注意,严格来讲,货币(money)不等于现金或通货(cash,currency),货币的范围更广。

或许有人认为信用卡相对纸币形式更方便。相对于信用卡这样的集中式支付体系来说,货币提供了更好的匿名性。另外,一旦碰到系统故障、断网、没有刷卡机器等情况,信用卡就不可用了。

无论是货币,还是信用卡模式,都需要额外的系统(例如银行)来完成生产、分发、管理等操作,带来很大的额外成本和使用风险。诸如伪造、信用卡诈骗、盗刷、转账等安全事件屡见不鲜。

很自然的,如果能实现一种数字货币,保持既有货币的这些特性,消除纸质货币的缺陷,无疑将带来巨大的社会变革,极大提高经济活动的运作效率。

比较
让我们来对比现在的数字货币和现实生活中的纸币:

属性

分析

胜出方

便携

这点上应该没有争议,显然数字形式的货币胜出。

数字货币

防伪

这点上应该说两者各有千秋,但数字货币可能略胜一筹。纸币依靠的是各种设计(纸张、油墨、暗纹、夹层等)上的精巧,数字货币依靠的则是密码学上的保障。事实上,纸币的伪造时有发生,但数字货币的伪造明面上还没能实现。

数字货币

辩伪

纸币即使依托验钞机仍会有误判情况,数字货币依靠密码学基本不可能出错。数字货币胜出。

数字货币

匿名

通常情况下,两者都能提供很好的匿名性。但都无法防御有意的追踪。

平局

交易

对纸币来说,谁持有纸币就是合法拥有者,交易通过纸币自身的转移即可完成。对数字货币来说则复杂的多,因为任何数字物品都是可以被复制的,因此需要额外的机制。为此,比特币发明了区块链技术来确保可靠不可篡改的交易。

纸币

资源

100 美元钞票的生产成本是 0.1 美元左右。100 面额人民币的生产成本说法众多,但估计应该在几毛到几块范围内。数字货币消耗的资源则复杂的多,以最坏情况估计,算出来多少就要消耗多少电(往往要更多)。

纸币

发行

纸币的发行需要第三方机构的参与,数字货币则通过分布式算法来完成发行。在人类历史上,通胀和通缩往往是不合理地发行货币造成的;数字货币尚无机会被验证,在这方面的表现还有待观察。

平局

可见,数字货币并非在所有领域都优于已有的货币形式。不带前提的在所有领域都鼓吹数字货币并不是一种严谨的态度,应该针对具体情况具体分析。实际上,仔细观察目前支持数字货币的交易机构就会发现端倪,当前还没有一种数字货币能完整起到货币的职能。

最后,虽然当前的数字货币“实验”已经取得了巨大成功,但可见的局限也很明显:其以来的分布式账本技术还缺乏大规模场景下考验;性能和安全性还有待提升;资源的消耗还过高等等。这些问题还有待于相关技术的进一步发展。

实现挑战
设计和实现一个数字货币并非易事。

在现实生活中,因为纸币具备可转移性,相对容易地完成价值的交割。但是因为电子内容天然具备零复制成本,无法通过发送电子内容来完成价值的转移。持有人可以试图将同一份电子货币发给多个人,这种被称为“双重支付攻击(Double-Spent)”。

也许有人会讲,当前银行中的货币都是电子化的,因为通过账号里面的数字记录了资产。说的没错,这种电子货币模式有人称为“数字货币 1.0”,它实际上是假定存在一个安全可靠的第三方记账机构来实现,这个机构利用信用作为抵押,来完成交易。

这种中心化控制下的数字货币实现相对简单,但需要一个中心管控系统。但是,很多时候并不存在一个安全可靠的第三方记账机构来充当这个中心管控的角色。

例如,贸易两国可能缺乏足够的外汇储备;网络上的匿名双方进行直接买卖;交易的两个机构彼此互不信任,找不到双方都认可的第三方担保;汇率的变化;可能无法连接到第三方的系统;第三方的系统可能会出现故障……

总结一下,在去中心化的场景下,存在几个难题:

货币的防伪:谁来负责验证货币;
货币交易:如何确定货币从一方转移到另外一方;
避免双重支付:如何避免出现双重支付。
好吧,这事其实不太容易。

比特币出现
在不存在一个第三方记账机构的情况下,如何实现一个数字货币系统呢?

近三十年来,数字货币技术朝着这个方向努力,经历了几代演进(包括 B-money、e-Cash、HashCash等),但这些数字货币都或多或少的依赖于一个第三方系统的信用担保。直到比特币的出现,首次从实践意义上实现了一套去中心化的数字货币系统。无需任何管理机构,比特币网络自身通过数学和密码学原理来确保了所有交易的成功进行。比特币自身的价值是通过背后的计算力为背书,这也促使人们开始思考在未来的数字世界中,该如何衡量价值,如何发行货币。

目前看来,数字货币比较有影响力的模式有两种,一种是类似 paypal 这样的选择跟已有的系统合作,成为代理;一种是以比特币这样的完全丢弃已有体系的分布式技术。

现在还很难讲哪种模式将成为未来的主流,甚至未来还可能出现更先进的技术。但对比特币这一类数字货币的设计进行探索,将是一件十分有趣的事情。

相关文章:

Android RecyclerView 基本使用

Android RecyclerView 基本使用 概述 RecyclerView出现已经有一段时间了,相信大家肯定不陌生了,大家可以通过导入support-v7对其进行使用。 据官方的介绍,该控件用于在有限的窗口中展示大量数据集,其实这样功能的控件我们并不陌生…

lisp语言cond和if套用_在'if'语句中设置多行条件的样式?

Harley Holco..679您不需要在第二个条件行上使用4个空格.也许用:if (cond1 val1 and cond2 val2 andcond3 val3 and cond4 val4):do_something另外,不要忘记空格比您想象的更灵活:if (cond1 val1 and cond2 val2 andcond3 val3 and cond4 val4):do_somethingif (cond1 …

jvm七种垃圾收集器

JVM_七种垃圾收集器介绍 本文中的垃圾收集器研究背景为:HotSpotJDK7一、垃圾收集器概述如上图所示,垃圾回收算法一共有7个,3个属于年轻代、三个属于年老代,G1属于横跨年轻代和年老代的算法。JVM会从年轻代和年老代各选出一个算法进…

新手怎么学以太坊区块链开发?

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 在学习以太坊应用开发时,除了学习solidity开发智能合约,一个小白还应该补充 哪些知识?文本将给出相关的学习资源…

【题解】 bzoj1260: [CQOI2007]涂色paint (区间dp)

bzoj1260&#xff0c;懒得复制&#xff0c;戳我戳我 Solution: 这种题目我不会做qwq&#xff0c;太菜了区间打牌(dp) 用f[l][r]表示从l到r最少需要染几次色。状态转移方程&#xff1a; 1.\(f[l][r]min(f[l][i],f[i1][r]) (l<i<r)\) 这段染色等于俩段分别染色&#xff0c;…

[deviceone开发]-组件功能演示示例

一、简介 这个是官方比较早期对组件功能的展示集合&#xff0c;因为发布的比较早&#xff0c;只包含了部分组件&#xff0c;但是常用的组件和常用的功能都包含了。初学者推荐。二、效果图 三、相关下载 https://github.com/do-project/code4do/tree/master/demo四、相关讨论 ht…

联想g510升级换什么cpu好_老兵不死,十年前的联想 Y450 笔记本复活记

如果你是一个接触笔记本电脑比较早的用户&#xff0c;那么联想小Y的大名你一定不会陌生&#xff0c;作为联想旗下较为成功的产品线&#xff0c;彪悍的小Y在几年前就打出了名堂&#xff0c;而小Y系列笔记本里面又以 Y450 最为经典&#xff0c;Y450 引入 NVIDIA GT240M 中端移动显…

区块链和数据库

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 区块链技术是一种不依赖第三方、通过自身分散式节点进行网路数据的存储、验证、传递和交流的一种技术方案。因此&#xff0c;有人从金融会计的角度…

普通粒子群算法和优化方法

粒子群优化(PSO, particle swarm optimization) 是由Kennedy和Eberhart在1995年提出的一 种群智能优化方法。 优点&#xff1a;好理解容易实现&#xff0c;适合解决极值问题 缺点&#xff1a;容易过早收敛&#xff0c;容易陷入局部最优解&#xff0c;&#xff08;如果初始点选的…

古人怎么称呼年龄

来自为知笔记(Wiz)转载于:https://www.cnblogs.com/sanyuanempire/p/6154780.html

vue变量传值_vue组件与组件之间传值

目录一、父组件向子组件传值二、子组件向父组件传值三、兄弟组件之间的传值如上图所示&#xff0c;2是1的子组件&#xff0c;1是3的父组件&#xff0c;2和3是兄弟组件一、父组件向子组件传值&#xff1a;html代码:<div id"app"><v-app><!-- 用:xxxx&q…

区块链技术背后的运行逻辑

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 区块链技术可能是自互联网技术以来最伟大的发明。区块链可以在不需要有中央权威机构的情况下或不需要双方信任的情况下交换价值或财富。想像一下你…

scp遇到路径中有空格

sudo scp root1.1.1.1:/test/soft/123/Microsoft SQL Server 2000.iso . 错误&#xff01; sudo scp root1.1.1.1:"/test/soft/123/Microsoft SQL Server 2000.iso" . 错误&#xff01; sudo scp root1.1.1.1:/test/soft/123/Microsoft\ SQL\ Server\ 2000.…

bzoj 3262 陌上花开

本质是一个三维偏序&#xff0c;一位排序后cdq分治&#xff0c;一维在子函数里排序&#xff0c;一维用树状数组维护。 把三维相等的合并到一个里面。 1 #include<iostream>2 #include<cstdio>3 #include<algorithm>4 #include<cstring>5 #define N 100…

jspstudy启动mysql失败_MySql启动数据库设置初始密码

这一小节介绍在Mac OS、Linux、Windows上启动关闭重启MySQL服务&#xff0c;以及部分图形化界面对服务的操控。安装完成后&#xff0c;可以使用 service 命令启动 mysql 服务&#xff0c;在Mac上service命令不存在。命令行启动关闭重启MySQL服务在命令行终端启动 MySQL 非常方便…

区块链技术产生数字货币时代

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 比特币是一种革命性的数字货币&#xff0c;更是一种颠覆性的创新技术。比特币最大的贡献是创造了信用&#xff0c;解决了困扰互联网进一步发展的拜…

软件构造 第二章 第一节 软件生命周期和版本控制

软件构造第二章 第一节 软件生命周期和版本控制 基本内容 Software Development Lifecycle (SDLC) Traditional software process models (waterfall, incremental, V- model, prototyping, spiral) Agile development and eXtreme Programming (XP) Collaborative software de…

三极管在ad中的原理图库_555时基电路内部结构及其工作原理

555时基电路特点时基电路是一种常用的模数混合型集成电路。由它组成的振荡器、单稳态触发器、双稳态触发器和各类电子开关等都被十分广泛地应用在各类电路之中。它具有定时精度高、响应速度快、温漂小、输出驱动电流大、结构简单等优点。555时基电路型号命名555时基芯片由其内部…

Mac下导出chrome插件

Mac下导出chrome插件 chrome最强大的功能之一就是插件&#xff0c;有时候需要给小伙伴们共享一些插件&#xff0c;所以需要将自己chrome中的插件打包&#xff0c;在mac下打包插件还是挺费劲的&#xff0c;在此记录。 打开chrome的扩展程序&#xff0c;找到要导出的插件&#xf…

区块链技术的本质是分布式数据库

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 区块链技术是基于比特币应用提出的一个概念&#xff0c;他是一个融合了多种技术的一个集成式创新。目前区块链的应用早已不仅仅局限在比特币上。人…

sql数据库系统表和mysql系统表

sql数据库系统表,常用的(sysobjects,sysindexes,sysindexkeys,SYSCOLUMNS,SYSTYPES 及更多解释说明): https://docs.microsoft.com/zh-tw/previous-versions/sql/sql-server-2012/ms177596(v%3dsql.110) 系统存储过程sp_spaceused: 执行sp_spaceused存储过程的时候可以不用带参…

交换机启用光口命令_如何在思科交换机上查询光模块状态?

本篇文章易天光通信(ETU-LINK)将为大家介绍下怎么在思科交换机上查询光模块的信息。 第一步,我们需要连接网络,然后登陆思科交换机的管理平台,用户名和密码默认是cisco/cisco。 第二步,在交换机的特权EXEC模式,通过输入以下使用显示光纤端口光纤收发器命令:show光纤端口…

深入浅出谈以太坊智能合约

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 1什么是合约? 合约是代码&#xff08;它的功能&#xff09;和数据&#xff08;它的状态&#xff09;的集合&#xff0c;存在于以太坊区块链的特定…

人机猜拳(这是最近的一个总结)

人机猜拳是我自己原创的一段代码&#xff0c;我刚学完do-while&#xff0c;知识有限&#xff0c;但自己感觉写的这段代码是我的一个小巅峰&#xff0c;发出来让大家看看&#xff0c;新手能学到东西的话是极好的&#xff0c;然后更多的是想让一些老鸟给点建议。这个写代码很枯燥…

利用python3 调用zabbix接口完成批量加聚合图形(screens)

在上一篇博客中&#xff0c;我们完成的利用python3 调用zabbix接口批量增加主机&#xff0c;增加主机的item,增加主机的图形&#xff01; 接下来我们完成批量增加主机的screen 首先我们要增加screen需要哪些参数呢&#xff1f;官方的解释如下&#xff1a; {"jsonrpc"…

轮播切换_javascript基础(一)——轮播图

javascript基础(一)——轮播图1、轮播图的实现原理轮播图的js实现原理其实十分的简单&#xff0c;首先将图片放入一个ul标签中&#xff0c;ul标签的大小要足够将所有图片放入其中。然后再将ul标签放进div中&#xff0c;这个div的大小正好可以显示一整张图片&#xff0c;将其他图…

以太坊挖矿源码:clique算法

链客&#xff0c;专为开发者而生&#xff0c;有问必答&#xff01; 此文章来自区块链技术社区&#xff0c;未经允许拒绝转载。 clique 以太坊的官方共识算法是ethash算法&#xff0c;这在前文已经有了详细的分析&#xff1a; 它是基于POW的共识机制的&#xff0c;矿工需要通…

JS中简单原型的使用

转载于:https://www.cnblogs.com/hwgok/p/6163335.html

vuex+vue-router拦截

干就完了 项目中经常遇到这样一个场景&#xff0c;用户信息或者进行增删改的一些模块&#xff0c;需要根据用户是否登录&#xff0c;进行路由拦截&#xff0c;直接上代码 在store文件夹下的store.js中存放一个默认登录状态 /** store.js* */ import Vue from vue import Vuex …

通关制单机器人_2020关务节|“数字供应链与智能通关”论坛——如何打造云上跨境贸易生态圈...

点击标题下「蓝色微信名」可快速关注 随着跨境贸易的飞速发展&#xff0c;其涉及的有商流、信息流、资金流与物流。其中&#xff0c;物流特别是跨境物流&#xff0c;又是其中较为重要的一个环节。如何解决跨境贸易的物流物流困难&#xff1f;让我们来听听&#xff0c;欧坚集团副…