开头先问一个问题:为什么一张可能只有几厘钱成本的纸币,却能够购买到价值百元的商品呢?要解决这个问题,首先要理解我们人类社会从实物货币到记账货币的演变,其次要理解我们现在所处的互联网世界里信息的传递机制。这也是理解比特币的关键所在。
从货币发展史的角度来看,货币一开始是实物货币。贝壳、羽毛、牲口、金银等等,它们被当做一般等价物,是因为人们相信它们稀有性的特点,本身的价值等于被交换物品的价值。后来,随着人类活动的日益频繁,贵金属沉重、不易携带的缺点暴露了出来。我们逐渐过度到用纸币进行商品的交易。我们现在所见到的纸币,制作成本可能只有几厘钱,却能够换取价值100元的物品,这是因为有国家的信用背书,让人们相信这一文不值的纸币能够换100元的物品,能够提供100元的购买力。
随着互联网的发展,我们连纸币也懒得带了。现在很多人出门几乎都不带钱包了,带一个手机扫扫二维码就可以了。之所以这么方便,是因为我们大部分时候使用的是记账货币。比如发工资只是在银行卡账户上做数字的加法,买衣服只是在银行卡账户的数字上做减法。整个过程中不需要见到纸币,所有的过程都是在记账。记记账,就可以完成发工资、购物等,这么轻松的事,到底由谁来负责呢?在我们国家,就是各家银行、第三方支付机构和央行来负责记账,央行拥有整个国家大账本的记账权,这是一种中心化记账的方式。
说到这个记账的过程,是为了找到比特币产生的历史原因。有一个叫中本聪的密码学专家,他发现在2008全球经济危机中,美国政府可以无限增发货币,因为在这个体系里只有它有记账权。中本聪觉得这样很不靠谱,于是他思考能不能有这样一种现金支付体系:不需要一个中心来记账,大家都有权来记账,货币不能超发,整个账本完全公开透明,十分公平。这就是比特币产生的原因和动机。
中本聪之所有有这种想法,相信你也已经看出了问题所在。记账货币必须有一个记账方,这个记账方多数时候是银行或第三方支付机构等,这是一个中心化的记账方式。中心化是由银行或第三方支付机构的信用来担保,如果银行受到类似黑客的攻击,数据是有可能会被篡改的,并且它高度依赖银行的信用,存在不安全的可能。而如果由一个中心变为多个中心,由原来只能由银行记账,变成了人人都能参与记账,是不是就可以化解这个问题呢?是的,如果去「去中心化」进行记账会更加的安全,这也就是“去中心化”概念的由来,也是中本聪发明了比特币的由来。
但是问题又来了,如果不是一个中心化机构来记账,大家都能记账的话,如何保证每个人手里的账本是统一的呢?如何能保证账本不被坏人恶意改掉数据呢?为了解决这个问题,这个神秘人中本聪发明了一个叫“区块链”的系列技术集合,来保证这账本不被修改。他设定了这么一套规则,规定比特币网络大约每10分钟出一页账单,账单上记录这段时间网络里的来往交易,我们把这一页账单叫“区块”。类似每10分钟有一道数学题被丢到网络中,大家比赛,看谁算的快。那么,为什么大家要竞争这个记账的权力呢?这也是中本聪最为聪明的一个地方:他把比特币的发行和记账行为绑定在了一起,记账的人每获得一次记账权,就会获得系统产生的新的比特币作为奖励。也就是说算的最快的计算机,就会「挖」到一定数量的比特币。他规定比特币总量为2100万枚,每个比特币的产生伴随着每一页账单,也就是每一个区块问世。最开始每个区块的奖励是50枚比特币,大概每4年减半一次,一直到2140年全部奖励完,也就是比特币全部发行完毕。一页账单生成后,马上开始下一页账单的竞争,下一页会跟在这一页账单后边,有严格的顺序。如果有人想要私自修改某一页账单里的数据,他必须从那一页账单开始重新计算这道超难的数学题,并且在非常短的时间内赶上现在的账单数量,否则没有人会相信他的账本是真的,也没有人会从他的这个账单后面继续往后记账,最终会被大家抛弃,白白浪费成本。有也且只有掌握的运算能力达到全部网络运算能力的51%以上,才在理论上有可能改掉某一页账本里的数据。但是要达到全网51%的计算能力几乎是一件不可能的事,再加上社区会警惕并且施压超过30%的计算力量,所以动用算力进行恶意的数据修改,几乎不可能发生。比特币实现了在一个没有中心化机构记账的情况下,能够安全的进行比特币的发行、记账和激励,这是一个伟大的发明,它完全有可能重新定义这个世界。而比特币的底层技术,也就正是区块链。
区块链除了去中心化,还有一个及其牛逼的特点,就是价值的传递,这完全不同于互联网的信息传递。互联网不依赖于某一机构,或者某一国家而运行。在这个网络里,你可以很轻易地传送信息。不论你是在美国,还是在非洲,甚至在太空中,只要有互联网,就能实现点对点的信息传递,互联网传递信息的方式是复制。假如你有一张照片,发给了朋友,其实不是传递给了朋友,而是发给了他一份副本。照片传递给你朋友之后,你手里还是这张照片,而你朋友手机里多了一张照片的副本。互联网这种副本的信息传递方式,在诸如版权、货币、票据等价值载体的传递中会出现问题。因为你不能传递给别人一份带有版权的文档之后,自己手里还有一份。举一个极端的例子,你给别人转过去一笔钱,你不可能自己再拥有这笔钱的。价值的传递和信息的传递,不一样在于:价值的传递要求信息的传递与价值的转移同时进行。而区块链就是这样一个在没有一个中心化机构的情况下,实现全球范围的价值的传递。如同互联网将人类社会带入了信息时代一样,区块链有可能成千上万倍加速人类资产的交换,人类社会将有可能会进入一个全新价值交换时代。比特币的去中心化、价值传递特性将有可能重新定义世界。社会各界对也有几种不一样的看法。第一种观点,奥地利学派认为它是“无主货币”,是超越国家的信用货币存在,这种提法现在越来越少了;第二种观点,有人认为它是一种全球电子现金,解决跨中心的支付问题;第三种观点是一种主流观点,认为比特币因为储量恒定、开采难度逐渐变大、稀缺、易分、快速传递等特点,未来将可能是一种全球流通的数字资产,起到价值存储的作用,相当于现在的黄金。各种说法,见仁见智。不管怎么样,比特币已经发展成为区块链在全球最成功的应用,市值达几百亿美金。开始有各个国家为它立法,比如德国、日本、加拿大等。它的存在,代表了一种新的价值传递方式。我们来回顾一下,今天首先讲了记账货币是实物货币的自然演化,比特币是去中心化的记账货币的产物,人人可记账;接着讲了比信息传递机制和比特币的价值传递特性;最后,我们还了解了社会上对比特币认知的三种观点,主流观点认为比特币可能是一种全特币运行的基本原理;再接着讲了互联网的球流通的数字资产。
版权声明:内容归硅谷live所有,未经许可任何人不得商用!!
目录一.加解密算法数字签名对称加密DES(DataEncryptionStandard)3DES(TripleDES)AES(AdvancedEncryptionStandard)RSA加密法DSA(DigitalSignatureAlgorithm)ECC(EllipticCurvesCryptography)非对称加密签名与加密过程非对称加密的应用对称加密与非对称加密的结合二.数字证书图解一.加解密算法加密简单而言就是通过一种算法将明文信息转换成密文信息,信息的的接收方能够通过密钥对密文信息进行解密获得明文信息的过程。根据加解密的密钥是否相同,算法可以分为对称加密、非对称加密、对称加密和非
文章目录1.任务背景2.任务目标3.相关知识点4.任务实操4.1安装配置JDK4.2启动FISCOBCOS4.3下载解压WeBASE-Front4.4拷贝sdk证书文件4.5启动节点4.6访问节点4.7检查运行状态5.任务总结1.任务背景FISCOBCOS其实是有控制台管理工具,用来对区块链系统进行各种管理操作。但是对于初学者来说,还是可视化界面更友好,本节就来介绍WeBASE管理平台,这是一款微众银行开源的自研区块链中间件平台,可以降低区块链使用的门槛,大幅提高区块链应用的开发效率。微众银行是腾讯牵头设立的民营银行,在国内民营银行里还是比较出名的。微众银行参与FISCOBCOS生态建设,一定
当音乐碰上区块链技术,会擦出怎样的火花?或许周杰伦已经给了我们答案。8月29日下午,B站独家首发周杰伦限定珍藏Demo独家访谈VCR,周杰伦在VCR里分享了《晴天》《青花瓷》《搁浅》《爱在西元前》四首经典歌曲Demo背后的创作故事,并首次公布18年前未发布的神秘作品《纽约地铁》的Demo。在VCR中,方文山和杰威尔音乐提及到“多亏了区块链技术,现在我们可以将这些Demos,变成独一无二具有收藏价值的艺术品,这些Demos可以在薄盒(国内数藏平台)上听到。”如何将音乐与区块链技术相结合,薄盒方面称:“薄盒作为区块链技术服务方,打破传统对于区块链技术只能作为数字收藏的理解。聚焦于区块链技术赋能,在
我正在使用Ruby1.9.3和Rails3.0.9构建一个应用程序我有一个像下面这样的类。moduleCDAclassDocumentdefhumanize_class_nameself.class.name.gsub("::","")endendend我想要像“CDADocument”这样的类名。我的humanize_class_name方法是实现此目的的正确方法吗?或Rails是否还有其他可用的内置方法? 最佳答案 如果您使用i18n,您可以调用Model.model_name.human来获取本地化的模型名称。例如:Event
关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion我浏览了socializationgem的文档并且它没有彻底解释如何在我的路线和Controller中设置gem以使关注和提及功能正常运行。我想知道是否有人可以告诉我如何在我的路由和Controller中设置这个gem以使其正常运行。将不胜感激一个深思熟虑的回答。
前阵InfoQ社区看到腾讯云腾讯云区块链服务平台(TBaaS)长安链体验活动,一顿操作猛如虎报了个名,体验完用一个字概括:强。非要再加几个字的话,总体感受下来装配模式灵活高效,配套工具完整辩解。话不多说开始主题本文目录结构分为区块链分类和TBaaS平台介绍、TBaaS平台上链教程三个部分一、区块链分类:大体上来说,区块链可分为公链,联盟链,私有链三种:公有链(PublicBlockchain)公有链是指任何人都能参与的区块链。公有链是去中心化程度最高的区块链,不受机构控制,整个账本对所有人公开透明。任何人都能在公有链上查询交易、发送交易、参与记账。加入公有链不需要任何人授权,可以自由加入或者离
时隔很久没有学习区块链了,今天重新搭建一下区块链网络,有了更多新的体会。我是跟着b站up主DevX_一步一步往下搭建的。这是大神的视频,简洁易懂而且很符合我目前的技术栈(java应用端+java链码),而且代码开源,非常适合新手学习!!DevX亡命天涯的个人空间-DevX亡命天涯个人主页-哔哩哔哩视频经过测试已成功。为了今后学习便利,记录一遍搭建过程。一、区块链搭建网络拓扑结构:本次环境搭建要求:3个Orderer节点以满足raft共识;2个组织:org1、org2;两个组织内都有两个peer节点。但是我懒得开多台虚拟机,索性利用一台虚拟机整多个端口来搞了,划分清楚端口就好。资源规划如下:节点
我正在尝试找到生成以下输出的最佳方法jobtook30secondsjobtook1minuteand20secondsjobtook30minutesand1secondjobtook3hoursand2minutes我开始这段代码deftime_range_detailstime=(self.created_at..self.updated_at).countsync_time=casetimewhen0..60then"#{time}secs"else"#{time/60}minunte(s)and#{time-min*60}seconds"endend有没有更有效的方法呢?看起
这是我想要显示的内容:May13,2012这是显示的内容:2012-05-13我搜索了一些答案,结果找到了“FormattingDatesandFloatsinRuby”,其中提到了一个可能的解决方案:然而,这根本不会改变输出。没有调试错误,也没有引发异常。我可以做到,而且效果很好:这是我的迁移文件(查看我使用的数据类型):classCreateNewsItems 最佳答案 Date.to_s与Time.to_s不同。您的postdate是一个Date,因此您可能需要查看strftime相反:postdate.strftime("%
【思路分析】首先,我们先重新排列一下题目所给的例子(3,2,1):0+0+0=0;(3,1,2):0+0+1=1;(2,1,3):0+0+2=2;(2,3,1):0+1+0=1;(1,3,2):0+1+1=2;(1,2,3):0+1+2=3;我们将每种排列的每个元素价值单独拿出来看看(矩阵1)000001002010011012不难发现,由每种排列的每个元素价值构成的矩阵每一列的元素重复出现,进而我们把它简化一下(矩阵2),并且计算出每一列的价值和(矩阵3)000112013这样一来规律更加清晰明了:矩阵2为n*n,n为输入值;矩阵2每一列在矩阵1对应列中重复的次数规律为其余列元素个数的积例