Skip to main content

比特币 (Bitcoin) 系统是如何运行的?

都写的太复杂了。

本人从2011年开始关注比特币,给山寨币贡献过代码,yacoin-p2pool的作者,比特币协议基本上全都研究过一遍,写过交易网站,长期跟踪过silkroad,几乎见证了大半个比特币的历史。

正如《战争之王》开头尤里所说“I'm just gonna tell you what happened.”本篇会用大量的干货来描述到底在发生什么。

比特币原理
下面开始用简练的话来介绍比特币原理:

1.首先你要知道公钥和私钥的概念(已经懂的不用看这部分了)
公 钥私钥是现代密码学分支非对称性加密里面的名词,通常都是用公钥加密信息,用私钥解密信息,为什么要这样? 因为你看电视剧的时候,发电报那种都是对称性加密,这种加密方式缺点是显而易见的,如果被人知道了密钥和加密方法,于是按照加密方法反着来就能解密。 一直到非对称性加密这种情况才有所改观,公钥就是可以对全世界公开的密钥,比如你和google通讯,用google给的1024位的公钥加密,送到 google那里只有他有对应的私钥,只有他能解密,于是就保证了通讯安全

2.比特币主要用了ECDSA,也就是椭圆曲线算法,这个算法有两个特性,注意这两点对下面至关重要
a.只要知道私钥,可以算出相应的公钥;
b.你用私钥签名过的东西,可以用公钥算一下是不是你签的;

3.知识准备完了,下面开始讲比特币的交易,比特币其实没有钱包,只有交易账单,整个比特币就是一大堆交易账单

比如:
账单1 从A转到B 转了XXX比特币
账单2 从B转到C和D 转了XXX比特币
账单3 从C转到E 转了XXX比特币
。。。。
任何人只要下载了客户端都能接收到从比特币成立那一天起的所有账单,所以,只要把所有账单都下载全了自然知道每个账户上应该剩多少钱(这里仔细思考下)

4.比特币的账户,就是刚才讲的一段公钥

5.下面我开始贴一个比特币的账单,这里是核心部分了!!! 每个账单都是一段数据,你签完了以后会发送到全网,把数据结构逆向成易懂的中文解释如下:

FROM(谁发送的,包括两部分)
Previous tx: 你要花的这笔钱的那个账单的id, 也就是说,你花的任何一笔钱都应该有人转给你过,需要出示那个账单的id
scriptSig: 你对这笔交易的签名,就是把单子用你的私钥做hash,只有你能做这个hash

TO(谁接受,包括两部分)
Value: 要发多少
scriptPubKey: 对方的公钥,比特币账户就是一段公钥

6. 等你签完单子以后,开始往全网发送,怎么发呢? 比特币通讯没那么复杂,你可以类比成IRC频道,但和普通的“IRC”不同的是,任何一个客户端都是一台“IRC”服务器,当你启动客户端的时候,会接收 到周围的有公网IP的客户端地址,就是“服务器”列表,这个列表也不断的刷新,都是其他的比特币用户,于是你在这个“IRC”喊一句话的时候,周围的人会 听到,进而扩散的全世界。

7.把签单发送到全世界以后,所有收到这个单子的客户端会效验你这个单子对不对,比如会效验你的签名,是不是你发的,会效验你是否有那么多钱(根据历史交易可以推算出你有多少钱可以花)
如果这个交易有6个人算过没问题了,基本上就算转账成功了,有一个人算的有问题会全网发警报,拒绝此次交易,当然实际情况下你的交易会被全网算几千次,反复确认。

8.实际上现在对方已经接受了比特币,但是要想花的话,他得有那个地址(公钥)对应的私钥。于是他就能填下一个单子的 FROM头部,Previous tx就是刚才这笔交易的序号,scriptSig填用他私钥签名过的hash

如此往复。。。

挖矿
然后再解释挖矿部分,我在极力的简化整个过程,以方便大家理解,所以上面特地去掉了挖矿、双花问题(伪造货币、同一笔钱花两次)这些

其实上面那个解释读完了就会有个疑问,既然都是交易记录,那最初的钱是哪里来的?交易得有原始的那部分钱,那笔钱就是挖矿进来的

挖到矿以后也会得到一个交易记录的东西,但是FROM那边很特殊,整个体系也认可这个FROM

另外实际上,账单是要附着到块(block)上的 ,账单发到全网以后,需要全网去计算正不正确
刚才不是说全网一块算么,比特币规定,第一个算出来的有奖励,就是挖矿所得,现在这个奖励数额是25比特币,那么。。。。。

我只用一台pc算是不是太弱了,于是就有了矿机,挖矿这东西的作用就是核算比特币的交易是不是正确,矿机就是为了比别人算的快

洗钱
很 多谈论比特币的人如果不是真的资深,都无法解释洗钱的问题,而这个问题才是关系到比特币的本质。 比特币为什么能洗钱,这个也是比特币的特性决定的,在上面我解释过比特币的账单,那个只是1个进(FROM),一个出(TO),实际上比特币的协议允许无 数个进,无数个出,只要FROM的总额等于TO的总额就可以,为了大家更加形象的了解我特地从实际的比特币交易记录里面找了一笔多个FROM多个TO的交 易,截图如下,链接见这里blockchain.info/zh-cn/t



这些都了解了以后,我们来看这样一个交易:如果一个从事毒品交易的人A要想卖家B付款,可以搞一个这样的交易,左边无数个无辜的人,就一个毒品买家,右边无数个无辜的人,就一个卖家。

当FBI知道毒品卖家账户的时候,要想查源头,需要追溯无数个无辜的人,挨个去核实他是不是买家,实际情况下,楼上这种交易可以重复几百次,于是最后想回溯金钱来源变的很困难,因为可能涉及几万几十万人,这些人又有可能分部在全世界各个国家.............

那有人会疑问,你光在这儿空说,有真的提供洗钱服务的网站吗? 有! 并且很有名,就是blockchain.info这家网站提供的钱包服务的其中一项——shared address(顾名思义,共享地址,公共地址,让比特币在公共地址转一圈,黑的白的搅合一块)具体可以见他网站的说明: Send Shared - Blockchain.info 中文的报告见:Blockchain 推出Shared Coin 洗币服务

截止目前为止blockchain.info上累计转账金额有400多亿美金吧,至于这里面有多少是黑的有多少是白的,其实分不清了,从某种意义上说,投资比特币的人炒作比特币的人,就是上面说的“白“的,无辜的人,他们的钱和毒品、军火、恐怖分子的钱混合一块再出来,他们其实是其中的一份子。

关于洗钱更多的可以看这篇比特币(bitcoin)汇总整理。作者也是我,里面有FBI关于比特币洗钱的PDF,还举了一个典型的例子——毒品交易网站丝绸之路(前两天已经被FBI关闭),以及这网站是具体如何做到匿名的。

赌博
赌博是比特币的第二大支柱,主要是因为一个网站,SatoshiDICE 翻译成中文叫“中本聪色子”,这个网站跟彩票类似,但是与以前各种彩票都不一样的是,他利用比特币的blockchain研制了一种算法,使得去他网站下 注站方一定是无法作弊的,从算法上保证了公正性,一定不会出现双色球黑幕那种事情,所以深受赌徒们的欢迎,而他只收取交易提成。 6月份的数据显示,这个网站的交易金额占比特币所有交易的51%。赌博网站SatoshiDice:2013年6月占全部比特币交易量51%

小结
因 为有洗钱和赌博这两个“刚需”在里面支撑着,比特币一时半会很难死掉,或者说二级市场上是崩溃了再拉起来,因为里面有A股庄家,他们是利益集团,会让比特 币一直活跃,比特币又能做空,操控起来如鱼得水,证监会又管不到他们,所以同样的伎俩会他们可以一直玩下去。而真正使用比特币洗黑钱的人根本就是把钱兑换 到比特币黑箱里面洗完了马上再兑换出来,整个过程大概不超过几分钟吧。

中国人在其中的角色
  • 第一类 人,制作矿机,卖矿机的。基本上世界上所有的矿机不管是洋牌子,还是中国牌子,全部是中国制造,比如著名的蝴蝶矿机(BFL)他们就是在中国生产,南瓜张 博士更不必说,更有华强北做手机的人,有一阵山寨机没利润,手机行业差能过剩,所以很多做手机的把板子一改挖矿去了。
  • 第二类人,矿工。世界上最大的一个矿团在中国,中国区的矿机运算量占了全世界很大一部分,中国人挖矿有得天独厚的条件——公家电,还有的人用单位的集群挖矿。
  • 第三类人,做交易网站的。以Bitcoin China-中国比特币网站(比特币中国)老板杨林科为代表,迄今为止,btcchina的交易量已经跃居世界第一,中国区三大兑换商+一家期货交易商796 Xchange已经垄断了世界比特币交易,每天的总交易额大概得有10亿到15亿,A股工商银行一天才1-2亿人民币交易额
  • 第四类人,庄家。最近以中国为首的这波比特币上涨就是他们的作品,这些人来自于A股,他们在A股市场被称为涨停敢死队,如此一帮疯狂的人进入了一个不受监管的市场,后果可想而知,有消息称德隆系旧部介入比特币:中国土豪是最大炒家
  • 第五类人,黑客。其中的代表是souku.pw/这家网站,11月初此网站开始按条数出售个人信息,基本上输入你常用的id,马上能搜出身份证甚至支付宝账户信息,此网站就是采用比特币支付,不过网站开了两天以后站长可能吓破了胆,关门大吉。口说无凭,具体可以看:"社工库"这网站上面的数据怎么来的?v2ex.com/t/88317国内90%的比特币交易者是黑客? 里面大量干货、截图
  • 第六类人,比特币长线投资者,以李笑来和神鱼为代表,他们长期看多,也不怎么交易,入场很早,基本都发财了
  • 第七类人,比特币短线投机者,表现是每天在各大交易网站买入卖出,我在btc-e的交易频道和这些人交流过一段时间,不过还是无法理解为什么会有人选择风险如此大的市场。
未来

崩溃问题

比 特币因为和黑色相关的东西很多,而这些黑色的东西往往因为人性固有的黑暗无法彻底消灭,所以比特币会长期存在的。比如庄家会靠这个长期盈利,他们的伎俩无 非是拉高派发的同时高杠杆做空,比特币涨他们挣钱跌也挣钱,跌下来收集筹码再来一轮,一直这么持续下去,仅此而已(到A股操纵股价会被抓,到这里如鱼得水 呵呵), 长期的疯涨疯跌又会引来各路媒体的关注,于是又有更多的人入场。 比特币中国交易平台不知道比特币是被操控的吗? 国外最大的交易平台MTGOX不知道比特币是被操控的吗? 里面操盘的庄家会乖乖的退出不再干预吗? 一些收了钱的媒体会停止报道吗? 中国的疯狂投机者会在可以预见的将来变的理性吗? 这些问题只能呵呵,监管部门不作为才是奇怪的。

暴涨暴跌问题

比特币的波动问题,原因有几个:
  • 庄家。这个长期存在,大家都知道有庄,尤其是这波上涨与庄家更是密不可分;
  • 用户增加。比如从最近开始,一个是本来非常小非常小圈子里面的东西突然曝光给几十亿人,任何一个东西耗费了如此多的社会资源被曝光,本身就给比特币带来了大量资金,任何东西被全国讨论,都对其产生巨大影响,而暴涨过后自然又是暴跌;
  • 政府的政策影响,尤其是中国,因为中国的比特币交易量占世界比例很大,所以自然中国政府的政策对比特币有重大影响;

我 经历过的比特币从历史上从5美元到30美元,再跌到2美元左右,再到90美元,再跌下来,再后来曾经有段时间在横盘过好几个月,因为这几个月实在是新用户 没增加,新进场也都疲倦了,老用户一看横盘也懒得交易,庄家在里面做波段。再后来的暴涨是媒体大肆渲染、新人大量涌入、庄家操作的几方面的结果。

所以比特币不是没有稳定过,稳定状态下洗钱的人兑换进去再兑换出来时间应该很短,价格波动影响不是太大。比特币稳定的前提是:
  • 盘子足够大,大到没有任何庄家、任何交易所能够垄断住交易, 一个庄家做空,另一个大户可能持恰恰相反的意见,当盘子足够大的时候波动1%,其实影响就很大了(例如黄金、外汇、股票、期货),盘子大1%的波动和盘子小一天30%其实一个味儿;
  • 媒体不会像最近这样大惊小怪,比特币的用户趋于稳定,每天的交易额也维持在一个相对固定的规模上,而不是像现在这样扔在指数级增长。

要想重新达到一种稳态,目前来说短期内是不可能的:
  • 仅仅是在2011年比特币中国一天交易量也就是1w人民币,去年一天也就3000w,而今年一天到过四五亿,明年交易量到多少不清楚,明年盘子多大也难以预言;
  • 持有大量比特币的人仍然很多,可以说比特币里面严重财富不均,这些人都是潜在的可以让比特币暴涨暴跌的人。不过话又说回来了,他们一旦抛出了筹码,虽然一方面赚到了钱,另一方面也失去了控制权,他们要想继续炒作,也只能自己去市场上买筹码,那也有被套的风险;
  • 比特币冲击了国家秩序,必然会遭到打压,在他成熟之前恐怕最大的风险来源于各国政府,而政府采取的策略就很多了,可以禁止交易、可以用大量计算资源攻击、可以qiang掉比特币协议,可以让国家队进场操控,面对一个国家,比特币还是很弱的。

通缩问题

你 无法阻止更多从A股来的投机者入场,再加上比特币总量是有限的,长期通缩,所以放在”年“这个时间尺度上来看,比特币是会涨的,短期则是巨幅波动。 至于要不要投资? 这个看个人喜好了,有的人不喜欢风险,那就余额宝国债逆回购奏起,有的人实在闲的钱没地方投资了,可以买一两顿饭钱的玩玩,但是也得等到市场低迷的时候 (和股票一样,大街小巷都在谈的时候,都认为不会跌的时候,都想买的时候,往往是最后的疯狂)。

可能的藏匿财产问题

由于天朝众所周知的官员财产问题,比特币有可能成为藏匿财产的工具,目前但是目前还没有这个先例,我们拭目以待了。为什么我会有这个担忧? 因为有脑钱包这个东西,具体可以自己搜这个关键词,也可以看比特币教学之:你对脑钱包密码了解多少 简单的说脑钱包有如下特性:只要你记住一个特有的字符串(一句诗词+你的id,你最喜欢的一句话+电话号码,随便怎么写都行),或者知道一个特殊的文件 (比如windows安装盘最后一个文件),按照这个字符串或者特定的文件的hash值就能生成一个比特币钱包(一对公钥和私钥),这个钱包只有你知道只 有你能用。于是对那些携款逃跑的人来说,再也不用担心钱放了家里被抄, 埋了地里被人挖到,携带黄金偷渡被地头蛇敲诈,携带钻石不易兑换,一切只需要记住一句话,于是到世界任何一个角落都兑换出来花掉,你说可不可怕?

被极端势力运用的问题

最后比特币最大的疑问是是否会成为恐怖分子的资金来源,一旦此物被新疆的一些极端势力运用后果不堪设想,所以国家应该长期跟踪这个东西,尽早拟定监管方案,否则不仅会对金融秩序造成冲击,恐怕还会引起政治问题。

附录
很多人关心做空问题,为了大家更直观的了解比特币的金融衍生品发展到什么地步了,截几个图。
买多,10倍左右杠杆
卖空,也是10被左右杠杆
比特币买卖上证指数的股指期货
买卖IPO发行的比特币股票
融资融券

据称该交易所最近打算开展直接的现金汇兑(等于绕过了香港金管局),所以比特币的问题很复杂,更像是一种不受监管的、高度投机的、带有洗钱功能的金融衍生品

Comments

Popular posts from this blog

CKA Simulator Kubernetes 1.22

  https://killer.sh Pre Setup Once you've gained access to your terminal it might be wise to spend ~1 minute to setup your environment. You could set these: alias k = kubectl                         # will already be pre-configured export do = "--dry-run=client -o yaml"     # k get pod x $do export now = "--force --grace-period 0"   # k delete pod x $now Vim To make vim use 2 spaces for a tab edit ~/.vimrc to contain: set tabstop=2 set expandtab set shiftwidth=2 More setup suggestions are in the tips section .     Question 1 | Contexts Task weight: 1%   You have access to multiple clusters from your main terminal through kubectl contexts. Write all those context names into /opt/course/1/contexts . Next write a command to display the current context into /opt/course/1/context_default_kubectl.sh , the command should use kubectl . Finally write a second command doing the same thing into ...

OWASP Top 10 Threats and Mitigations Exam - Single Select

Last updated 4 Aug 11 Course Title: OWASP Top 10 Threats and Mitigation Exam Questions - Single Select 1) Which of the following consequences is most likely to occur due to an injection attack? Spoofing Cross-site request forgery Denial of service   Correct Insecure direct object references 2) Your application is created using a language that does not support a clear distinction between code and data. Which vulnerability is most likely to occur in your application? Injection   Correct Insecure direct object references Failure to restrict URL access Insufficient transport layer protection 3) Which of the following scenarios is most likely to cause an injection attack? Unvalidated input is embedded in an instruction stream.   Correct Unvalidated input can be distinguished from valid instructions. A Web application does not validate a client’s access to a resource. A Web action performs an operation on behalf of the user without checkin...