背景知识:什么是比特币?(一个老码农眼中的比特币)[转]
IT之家网站今刊登了程序员苟振兴的文章,题:一个老码农眼中的比特币。苟振兴是一个写了15年程序的老码农,擅长嵌入式、多媒体开发,现居济南。比特币最近实在太热了,我们有从经济角度进行理解,那不妨再看看从技术角度又是如何理解的。
以下是原文:
这几天看到新闻,BTC居然卖到好几千人民币了,ORZ,这个世界好疯狂,真是程序员在改变世界啊。比特币现在的价格,正应了那句老话,欲让其毁灭,必先让其疯狂。
先看看比特币为什么没有想象中靠谱。
我这个不懂金融的程序员都知道,所有的货币都要有依托,美元之前被叫做美金,依托的是黄金,后来不需要和黄金挂钩了,依托的是山姆大叔的飞机导弹和航母。比特币有什么可依托的吗?坦白来说,啥都木有。没有依托最大的问题就是货币的价值和唯一性。
因为比特币不是唯一的,还有其他种种去中心花的虚拟货币,只不过比特币是发展最早,被炒作到大众传播的货币而已。在面对同类货币的竞争时,美元有黄金、大棒可以维护其地位,比特币有什么核心优势可以和其他虚拟货币竞争的吗?坦白来说,也没有。
如果比特币真想他们想的赢得了竞争还好,如果失败了,这部分投资只能是血本无归。所以现在比特币的持有者,只能自吹喇叭,自抬轿子:比特币是革命性的,其他的都是山寨。不过他们忽略了一点,比特币只是个实验品,是个革命性设想的最初实现,直白来说,只是个自娱自乐的工具。
去中心化的货币设想,确实是个疯狂而伟大的主意,可以说很超前,很乌托邦,这个就不用累牍了,从大众媒体上听到最多的就是这个。我相信未来一定会成功,但肯定不是在比特币这个实验品身上。
接下来说说为什么比特币只是个实验品。
首先比特币的技术实现方式并没有外界传说中的那样神奇。可能对于大众来说,对其工作原理看起来玄而又玄,不过对于程序员来说,那都不算是盘菜。除了对帐户做非对称加密外,核心解决客户端之间信任的手段就是hash、hash、再hash,hash上一亿次,看哪次hash出来骰子更可爱。这就是所谓解决工作量证明的hashcash。
就像前面说的,比特币现有的体系为了保证安全和可信,要求在做交易确认的时候,让所有的计算机不停的根据一堆相对固定数据外加一个随机数算hash值,那个hash值的前10位是0,并且这个随机数足够大,就认为谁的结果是可信的。为了达到这个结果,机器必须不停的更换随机数,因为hash的结果前10位为0的几率太小了,以此就保证了整个过程花费了足够多的时间,这个hash结果就是扔出的骰子。
从技术角度来将,这个设定可以解决问题,但实际应用却是很疯狂的,因为扔骰子的结果会伴随着奖励,谁扔的最好,谁就会获得系统提供的50比特币奖励,系统每天大概会提供3500枚比特币的奖励,按照现在的比特币汇率大约是数千万人民币。如果真的比特币被世界认可,会有数以万计的计算机为了奖励去扔这个无聊的骰子,包括Intel、AMD、台积电的厂商也会专门设计生产专用CPU去做并行计算的解决方案。
而目的呢?还是为了这无聊的hash算法,并且这种专门架构的机器什么都不能做,只能去扔骰子,因为这样才能提高性能。有人会去设计、生产这种专门扔骰子的机器吗?有的,现在已经有了,不过只是些不入流的小厂家在做。但如果全世界都去做,还有比这更搞笑的事情吗?
为什么不把这个运算能力放在更有价值的地方,先别着急断言SETI、Folding这些分布式运算的结果不容易验证,算法总能想到的,再不及去算算质数也比全世界都去扔骰子强太多了。去中心化的网络系统需要解决信任问题,现有比特币的做法是最简单也是最笨甚至是最不安全的方式,也只有一个实验品才会使用这样的方式来做。
比特币现有的安全设计,主要使用了sha-256、secp256k1,这些当前被认为安全的加密算法,理由也很充分银行、金融机构包括NSA也都再用。但是其中忽略了最主要的一点,在于中心化的系统中(现有的银行),用这些足够了,因为中心化可以随时修正、升级系统。
但在于这种非中心化的金融系统中,这些环节中任意一个被攻破,对于整个体系来说都是崩溃式的。就像山东大学的王晓云老师在碰撞攻破md5之前,大家都认为md5是安全有效的,但是攻破以后呢,就看出谁在裸奔了。设想一下,如果secp256k1被攻破,相当于你可以拿到了所有人的银行密码和卡号,并且这个银行还不能挂失,所有的货币连废纸都不如。不要说私钥无法破解,量子计算机破解私钥只是产业化的时间问题。
除了上面提到的东西,比特币还有很多不完善的地方。比如说私钥的保存,如果你是个比特币的持有者,一定要小心保护好你的硬盘,因为上面有你的帐户私钥,这个是唯一可以证明这笔钱属于你的印鉴。在PC升级要更换硬盘时请借鉴越狱第一集中男一号对自己硬盘的处理,一定要砸烂、烧掉、再扔湖里。因为别人一旦拿到这个私钥,这笔钱就不属于你了。
从技术上讲,只是把文件删除甚至格式化硬盘,都无法保护,物理消除是最根本的。另外不要把这个私钥保存或者法不在云呀、邮箱呀等等任何地方,网络管理员一个正则表达式就能把这些东西都找到,然后这笔钱就不是你的了。此外现在所有的比特币交易网站都是不安全的,他们只承担道德责任,从法律上讲他们可以任意的把你帐户的钱转移走,并可以让你无法追查。
此外使用比特币付款时,收款方想要安全的确认完成,大约需要一个小时,你还觉得这东西不是实验品吗?如果我去咖啡馆买杯咖啡,收款员需要用验钞机看一下,等1小时再告诉我结果,你猜我们谁会先疯掉。只是买笔咖啡还好,如果付款数额足够大,是可以有足够的成本,通过超强的运算能力和伪造的网络,欺骗收款方验证通过,完成一次虚假的交易的。
前面说了这么多比特币的问题,肯定有人会想,有问题比特币不能一点点修正吗?但这正是去中心化的货币最大的难题。协议、规则一旦确定很难做出更改,特别是网络节点越来越大时,没有一个独裁的中央节点,所能进行的改动只能是小修小补。核心是无法被改动的,一旦改动就会出现分裂。另外帐户私钥部分的基础设定,是压根无法更改的,只能祈祷私钥无法被攻破,量子计算机无法商业化。
Gates在30年前激动的说的那句话:“640KB内存对全世界都够了”,想想现在一台便宜的多核智能手机也就几百块钱,就能知道摩尔定律的威力。在IT这个行当,我们的每个想法和决定,在历史看来可能都是可笑的。看看IT圈子里的大牛们,有谁看好比特币,沃兹、大门、卡马克……真正明白人都是不屑一顾。现在号称有全世界10%比特币的是那2个和扎克伯格打官司的双胞胎,地道的投机者。
比特币很酷,但现在把这玩意当真的,都是不求甚解或者不懂装懂的伪极客;投入真金白银去玩比特币的,不是傻子,就是在等比自己更傻的人。比特币这出闹剧确实也是看点多多,程序员展现了自己对理想和自由的情怀,投机者表现了对金钱的渴望,一如既往表现出无知无畏的态度。做为看客,我们看个热闹就好了。
相关阅读链接
美联储前主席格林斯潘:比特币就是泡沫[转]
&比特币大起大落 美联储主席伯南克“谨慎祝福”[转]
&背景知识:什么是比特币?(一个老码农眼中的比特币)[转]
&国内90%的比特币交易者是黑客?[转]
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。&&8917 阅读
日下午,举办了一场高龄码农私密聚会,大牛云集,群星荟萃。活动主题是让老码农们social起来。事情的发生经过是这样的:
日夜里,一位码农试图寻找着什么,梁斌penny:我开通了一个10年码龄QQ群,欢迎到这的朋友,来讨论人生,讨论技术。群号:。 热闹了一夜,加了90+人,升级到高级群。好多人进来都说:可算找到队伍了,赶紧聚会吧,评选当代码神、码圣、码侠、码仙......
有人统计前几天群中最老码农20年,排第2的是18年,但是第二天100人普通群满,升级200人高级群,于是我被邀请,做为管理员进群。志愿团队建立,他们是:清华梁斌、腾讯PM陈小光、图灵谢工、宜搜RD王媛琼、百度刘琼、赵红娟和智依林等。
28号决定于周末举办线下聚会,从建群到决定聚会一共8天时间。接下来200人群明显不够,来自各领域的技术大牛邀请加入,记得有一天简晶、冯大辉、蒋涛、西祠响马、程开源、李道兵、刘未鹏、钱宏武、郭理靖等众多技术界领域牛人先后进了群里,顿时群里热闹非凡。
一批批各大互联网公司的技术骨干纷纷加入,把码龄写为25年的高博,说自己从从4岁开始参加信息奥赛,刘江说5岁开始学编码的,一时码龄有点乱...
很快我们决定将群升级到500人,审核更加严格,严防死守,以保证大牛们的安全,同时也希望群中的技术讨论话题更有质量。
3月3日的聚会由梁斌老师开场白,透露了建老码农俱乐部初衷:只因码农叔好寂寞!从现场看,一位女码农都没有,还好志愿者中王媛琼是一位满3年的女码农。梁斌临时决定,宣布一个让男码农们振奋的好消息:对女码农的限制放宽到3年!
@鲍岳桥 前辈讲话,邀请码农参与移动互联网,大家景仰的神情溢于言表。
中科院博士生导师@王斌_ICTIR 发言,说平生第一次参加这样的聚会,很兴奋。王老师透露自己也是联众沉迷用户呢。
CSDN总编@刘江CE 发言,说自己从84年写代码,自谦为早夭的码农。
创业者@梁公军 发言,工程师创业优点-系统性,严谨;缺点-闭门造车,远离用户。
几位发言结束,大家就已按捺不住,social卡开始传递起来。
我找了个机会,与鲍岳桥和简晶合了个影。他们是联众的创始人,UCDOS发明人,是IT界老前辈,中国软件业的民族英雄。
在会场一角,蒋涛、乔梁、姜太文、汪金保、程显峰、金明等交流甚欢。@金明i 写下这段内容,有幸与几位来自各领域的资深码农交流。几点感受:
1、多经历过数轮IT潮流,或在酝酿创业想法或已经创业;
2、多从事(或创业)数据分析(如微博、满意度等)或者垂直细分市场;
3、多有敏捷开发、精益创业、持续交付之诉求;
4、产学研的距离并非鸿沟,与中科院、清华数位专家的沟通发现科研界与应用界有比较大的重叠。应用界的经验,如敏捷精益,如何反哺研究界?社区应该会发挥比较大的作用。
5、细分的社区需求日益旺盛。作为较高端社区,老码农在其他城市如上海,也有较大的受众。
6、愿老码农更加蓬勃。
@刘江CE 在微博上说大家谈起第一代第二代程序员,怎么分呢?蒋涛和简晶合计了一下,觉得当年DOS汇编可以算是第一代。Windows客户端是第二代。互联网是第三代。@蒋涛CSDN 回复:移动互联网是第四代 @黄国荣Galen继续问:蒋总请预测一下第五代应该是什么?@蒋涛CSDN回复@黄国荣Galen:新一代的趋势是-并行编程(面向专业)可视化编程(面向大众)......大家同意吗?
活动最后还有抽奖环节,有位朋友抽中了一个大奖:奖品是图书一本和白菜一颗。
活动现场,基情四射,谁说码农们是宅男呢。
祝老码农们在各自岗位上,白白发财,恭喜发财。
备注:十年码农群采取邀请制,严格按工作码龄10年以上,由群内人推荐,并严格审核方可加入。
现就职于百度,负责文库和阅读运营。
ituring社区发起人之一,从事IT图书出版传播近20年。向往自由、快乐的生活。
mail:;.cn
新浪微博:@谢工在百度摘要: 在10来年工作中,遇到一些问题,可以说现在越来越感觉到情况的普遍性,就是,越没有能力的人,越要自尊,越有一颗“玻璃心”,让人碰不得,本人主要从事软件开发工作,而且大部分时间也是与软件开发人员打交道,每个人都说,软件就像是程序员的孩子,每个人都在极力维护着自己的孩子,但是为什么每次遇到问题的时候,在别
14:53 老码农豆豆 阅读(93) 评论(0)
摘要: 直接上代码 #!/bin/sh ## chkconfig: 345 99 10# description: Node.js /home/cekimy/index.js# . /etc/rc.d/init.d/functions USER=&root& DAEMON=&/usr/bin/node&RO
15:38 老码农豆豆 阅读(220) 评论(0)
摘要: 最近做了一个项目,想基于NodeJS来完成,但是由于对NodeJS不熟悉,所以在网上查资料进行***,以下做对关键信息做一下笔记本,具体如何***,就不做说明了,如果需要查看的,请自行Goolge或baidu一下。 ***NodeJS后,为了开发方便,***了Express框架,使用命令npm,在高版本中,
15:28 老码农豆豆 阅读(39) 评论(0)
摘要: 由于工作的需求,在使用中,需要搭建负载均衡,研究了Apache+Tomat负载均衡的方案,并且通过检索相关的文章,进行了比较发现,Apache负载负载均衡在使用的效率上,远远不如Nginx的效率高,因此决定使用Nginx来进行服务的搭建。最初YUM***了Nginx,但是不知道什么原因,Nginx的服
17:13 老码农豆豆 阅读(1739) 评论(1)
摘要: 简单分析一下,门店管理系统的基本架构,此架构主要是在项目中实现的,并不一定符合软件的架构的理论,但是至少在我自己的团队中,是很实用的。 门店管理系统主要分为以下几大部分: 1、业务支撑子系统 2、业务调试子系统 3、短信发送子系统 4、零售收银子系统 如图 : 以上图,只是简单把业务支撑子系统列出了
12:54 老码农豆豆 阅读(369) 评论(0)
摘要: 生成树的时候,数据库中一般设计的都为无级数,即为:父子节点的树,例如:基本的数据表设计为:nodecode 节点编码parentnodecode 父节点编码nodename 节点名称这样的形式,在生成树的时候,根据子找父,再找爷爷的关系,一直找到最顶级,来确定一个从属关系,如果由父级找子级再找孙子级...
15:15 老码农豆豆 阅读(1018) 评论(0)
摘要: 服务器搭建后经常在打开页面的时候,等待很长时间,有时候,都超过一分钟了,然后才能打开,但是打开后,速度又很快,休息一会再点击,又会很慢了,遇到了这种问题很头疼,由于不是专业做服务器配置的,所以刚开始没有找到好的解决办法,只能一点点去测试了首先尝试了,给Apache开启Gzip功能,减少数据的传输,优...
15:46 老码农豆豆 阅读(7620) 评论(0)
摘要: HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术。大流量的WEB站点常常使用GZIP压缩技术来让用户感受更快的速度。这一般是指WWW服务器中***的一个功能,当有人来访问这个服务器中的网站时,服务器中的这个功能就将网页内容压缩后传输到来访的电脑浏览器中显示出来.一般对纯文本内容...
15:22 老码农豆豆 阅读(9933) 评论(0)
摘要: 反向代理负载均衡 (Apache2+Tomcat7/8)使用代理服务器可以将请求转发给内部的Web服务器,让代理服务器将请求均匀地转发给多台内部Web服务器之一上,从而达到负载均衡的目的。这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部Web服务器,而这种代理方式是多个客...
16:55 老码农豆豆 阅读(24264) 评论(2)
摘要: 由于博主目前使用的是Windows的系统,没有使用Linux等其它的系统,因此此***配置和开发使用,均是在Windows下进行的,以后在使用其它的系统的时候,再将其它系统的配置的使用补充上来。1.下载,直接从http://www.mongodb.org/downloads下载需要的版本即可2.解压,下载好MongoDB数据后,将此解压至C:\MongoDB下面,直接将mongodb-win32-x86_64-2008plus-2.4.8目录中文件的解压至了MongoDB,这样的目录看起来还简洁不少。3.创建数据库文件的存放位置,比如c:/mongodb/dbData。启动mongodb服务之前
16:40 老码农豆豆 阅读(1055) 评论(1)
摘要: MongoDB数据库简介
15:08 老码农豆豆 阅读(104) 评论(0)
摘要: NoSQL,指的是非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。简介NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨。NoSQL的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入。2状况计算机体系结构在数据存储方面要求具备庞大的水
14:52 老码农豆豆 阅读(97) 评论(0)
摘要: Mongodb数据库的使用
14:50 老码农豆豆 阅读(44) 评论(0)
摘要: PREPARE stmt1 FROM 'SELECT sysdate()';EXECUTE stmt1
09:40 老码农豆豆 阅读(71) 评论(0)
摘要: button=[UIButtonbuttonWithType:UIButtonTypendedRect];//定义一个圆角按钮button.frame=CGRectMake(120, 320, 60, 30);//定义他的位置,大小[buttonsetTitle:@&ok1&forState:UIControlStateNormal];CGAffineTransform transform =CGAffineTransformRotate(3.14/6);//定义一个transform 旋转(3.14/6);[buttonsetTransform:transform];bu
13:17 老码农豆豆 阅读(498) 评论(0)