# 以太坊的基本:交易 **Published by:** [leaf](https://paragraph.com/@leaf-6/) **Published on:** 2022-11-19 **URL:** https://paragraph.com/@leaf-6/EsFRyMQM11Pe37AulDMI ## Content 发送了 ETH?有为 AMM 提供流动性?部署了新的合约?你所做的任何事都会在世界计算机上留下链上记录。想知道你的交易中有些什么吗?以太坊计算中逐个原子单位的指南 以太坊是一台世界计算机:一个存在于上千台计算机网络之间的全球共享基础设施。 用户可以通过钱包(比如 MetaMask)与以太坊进行交互,钱包可以创建和发送交易到网络中。一旦接收了交易,它就会被写入区块中。 额外的益处:对数据进行哈希计算(应用哈希函数) 哈希函数:这是一段用于将任意数据量转换为一个压缩、统一数值的代码。它的输入数据可以是任意长度,但输出数据的长度则是一样的。 (好处)哈希函数不能反向运行。一笔以太坊交易由三个部分组成: 元数据(metadata),包括发送/接受的 ETH 金额、gas 详细信息以及签名数据 缓存(cache),交易预计会使用的账户和私钥的列表。 数据,交易的 payload(智能合约代码或者 API 调用元数据 —— 交易相关信息以下的图片展示了所有元数据字段。我们会在接下来探讨其中不显著的部分chainid —— 由 EIP-155 提出,用来保护链不受 ETC 的重放攻击。 type —— 这里有两种类型:一个新的合约(0x0)还有其他所有合约(0x2)。EIP-2718 提出了一个封装功能(0x2),让更多不影响以太坊核心规范的类型得以使用。 nonce —— 从特定地址发送过来的交易数量。一旦交易打包到区块上,钱包的 nonce 值就增加了。避免受到重放攻击。 to —— 接受交易的地址(钱包或智能合约) value —— 将要转账的 ETH 数额。请注意 —— 这里只计算 ETH,不计算其他代币。 gas —— 这笔交易所使用的 gas 单位 maxFeePerGas —— 创建交易的用户愿意支付的最高费用(每 gas 要支付 WEI。译者注:WEI 是 ETH 的最小单位,1 个 ETH 相当于 10 的18次方 WEI。)它包括了基础费用和优先费。 maxPriorityFeePerGas —— 创建交易的用户在基础费用(base fee)之外愿意支付的最高优先费(每 gas 要支付的 WEI)。这笔费用会直接支付给矿工/验证者,作为激励打包的小费。 gasPrice —— 这笔交易需支付的每 gas 单位的成本。 (r, s, v) —— 构成创建该交易的用户签名的三个值。它们可以用于验证用户是否在此交易上 EVM 执行之前许可了这笔交易。 更多信息,可以自行查阅:Elliptic Curve Digital Signature Algorithm (ECDSA) 缓存 这个部分包括了访问列表(accessList),它是交易将用到的地址和私钥的列表。这笔交易还可以使用该列表以外的资源,但成本会比较高。访问列表是由 EIP-2929 提案提出的,让客户端可以获取/缓存交易期间的数据。现在,通过访问列表获取地址和私钥数据的折扣是 9 折。但这个折扣会随着未来以太坊支持更多轻客户端而变得更多。 数据 —— 交易中传输的 payload 数据 数据可以用三种方式进行: ETH 转账 —— 空白 智能合约 API 调用 —— 函数和参数的名字 新的智能合约 —— 智能合约的代码输入字段的数据以二进制形式记录,但它可以转译成人类可读的形式。输入字段存在于链上,但它不是 EVM 状态的一部分。它只是在交易期间为合约提供数据,无法被以太坊追踪到,也不能在共识层上使用。 EVM 只能使用在此交易中提供的数据;它无法查看过去的交易。 这一特质对于想要将历史数据写入以太坊区块链(比如,用于稍后的手动检索)但不考虑直接访问 EVM 的应用程序来说十分有用。 Rollup 是最早充分利用这个想法的一种应用程序。 有时间我们会谈谈 Rollup。现在,Rollup 依靠着这样一种现实:将数据写入输入字段比直接写入以太坊 EVM 状态中要相对便宜。 你现在可以看啦!这就是一笔以太坊交易的样子数字货币基本原理(一)防止货币伪造 对于杜绝伪造货币,比特币的解决方案是保留所有货币的所有流通信息(即全网总账本),可对每一个货币的来源进行追溯,一直到创造出该货币的那个时刻;每进行一次交易,就多记录一次流通信息,并在点对点网络上进行广播,使得所有节点(即参与流通渠道维护的所有计算机)都保存有全部货币的全部流通信息。这样任意一个节点在交易之前就可以轻松发现伪造的货币,从而杜绝伪造货币的流通。 (二)防止重复支付 为了防止同一个货币被同一个人重复花费,中本聪采用了工作量证明法。如前所述,每个交易都要向网络进行广播,重复花费多次就意味着多次广播关于同一个比特币的交易。其他网络节点将把其接收到的其中某一次交易放到一个区块A内(一个区块包含了多个近期的交易单)进行验证,验证方法是进行一次耗时的计算,如果计算成功,则向全网进行广播。如果另一个节点在区块A的基础上完成了下一个区块B的验证,它就会把B的区块挂在A区块之后,依此类推,形成一个区块链。 对于同一比特币的多次交易会形成多个区块链,最终的结果就是:哪个链条最长,哪个交易就被确认为有效,其他交易则被废弃。这样就确保了一个比特币只能被一个人支付一次。 三)无须第三方监管 通过工作量证明法,比特币还基本杜绝了非法篡改历史交易记录的可能性,因为历史记录一旦被篡改,就意味着某个比特币的交易记录出现了一个新分支,篡改者需要自行对新分支进行验证;与此同时,其他所有网络节点仍在老分支上进行验证,持续构造验证链,除非篡改者拥有超越其他所有网络节点之和的计算能力,否则它的分支增长速度永远无法追上老分支,结果是他的篡改行为必将被宣告无效。 在所有节点上保存全部交易记录,通过耗时的计算对交易进行验证,二者结合起来,就构成了一个安全、可靠的去中心化的支付系统。其本质是把集中监管的工作量交付给一个人人参与的庞大网络,网络中的所有节点都承担监管职责。如欲伪造货币或欺骗其他用户,就是与整个网络作对,因而无法得逞。 (四)比特币的发行 比特币的发行源于货币流通渠道自身。由于每个比特币的每笔交易都需要进行验证,为了鼓励节点全身心投入验证以维护系统的正常运作,中本聪提出了相应的激励机制:“对每个区块的第一笔交易进行特殊化处理,该交易产生一枚由该区块创造者(也就是第一个对交易进行成功验证的人)拥有的新的电子货币。这样就增加了促使节点支持该网络的激励,并在没有中央集权机构发行货币的情况下,提供了一种将电子货币分配到流通领域的方法”,“如果某笔交易的输出值小于输入值,那么差额就是交易费,该交易费将被增加到该区块的激励中”。也就是说,第一批比特币可被视为“创世纪”比特币,在被“创造”出来之后进行流通,后续比特币通过验证“创世纪”比特币参与的交易产生,再加入流通渠道,产生滚雪球效应,从而使得比特币越来越多。 但是比特币无法永远增加,由于算法本身的设计,每4年产生的比特币数值会减半,因而最终比特币的数量会趋近于2100万个。 因为对比特币系统进行维护的人可以通过复杂的计算获得比特币奖励,过程类似于矿工挖矿,因此维护者被称为“矿工”,其维护行为被称为“挖矿”。值得注意的是,“矿工”自带设备(一般为定制化的计算机,又称矿机)、自发参与维护,因而人数很多且时刻变化,不会形成固定的“第三方监管者”。而在特定的时间间隔内,只有一个矿工能够得到奖励,挖矿的争夺非常激烈,从而保证了系统的安全性和稳固性。 (五)挖矿 比特币的本质是一个互相验证的公开记账系统,而挖矿的本质则是在争夺记账权。从工作内容来看,“挖矿”是将过去一段时间内发生的、尚未经过网络公认的交易信息收集、检验、确认,最后打包加密成为一个无法被篡改的交易记录信息块,从而成为这个比特币网络上公认已经完成的交易记录,永久保存。 在比特币的世界里,大约每10分钟会向公开账本上记录一个数据块,这个数据块里包含了这10分钟内全网已被验证的交易。因为所有的挖矿计算机都在尝试打包这个数据块提交,于是最后以谁提交的为最终结果,是需要争夺的。最终成功生成那个“交易记录块”(即区块)的人,可以获得伴随这些交易而生成的交易费用,外加一笔额外的报酬。交易费用一般都是转出资金方自愿提供给挖矿者的,因此不是系统新增的货币;额外的报酬是新生成的比特币——这就是前面所说的“比特币的发行”。 比特币的有限性就由“额外的报酬”数量来控制。依据比特币系统的设计,大约每10分钟可以生产一个“交易记录块”,最初每生产一个“交易记录块”可以获得50比特币的额外报酬,这意味着比特币网络每天增加7200个比特币,但是该报酬每4年就会减半,因此最终整个系统中最多只能有2100万个比特币。 (六)区块链 矿工们为争夺记账权所运行的计算,实际上是根据哈希值反向求解随机数。大家比赛的是在10分钟内看谁找到一个随机数,这个随机数与上一个数据块的哈希以及10分钟内验证过的新交易记录合起来可以得到满足某个条件的最小哈希值。这个值越小对应的比特币网络的难度系数越高。由于哈希值的结果相当随机,无法预知结果大小,所以只能采取穷举法比拼算力。如果某个矿工10分钟内没抢到记账权,就只能等待下一轮的竞争。 之所以在求解随机数时要加上一个区块的哈希,是因为这样所有的数据块就被组成了一条可以从前到后不断验证的数据链条。修改中间任何一个数据块的任何交易记录,都会导致从此之后的所有数据块的哈希无法验证成功,而如果企图修改记录后重新找一个合理值算出符合条件的哈希重新打包,那就意味着之后所有的数据块都需要重新计算哈希,即使都找到了还必须比整个比特币网络计算得更快,才能让网络接受你的结果,这意味着攻击者要拥有超过整个比特币网络其他部分的计算力,换句话说,要使用超过整个网络50%以上的计算力才能保证攻击有效。 这个数据链条就称为区块链,又称全网总账本,它永久保存在每个用户的计算机上。只有拥有50%以上全网算力才可能篡改这个全网总账本,比特币系统就是通过区块链+“挖矿”的机制实现了货币无法被伪造、交易无法被篡改和双重支付无法得逞的目标。 (七)计算难度与确认次数 矿工找到一个有效的哈希值后,就会迅速把生成的数据块转发出去,别的矿工收到并认可这个数据块后,就会以它为基础进行下一轮的计算。如果期间收到具有更小哈希值的块,则首先以数据链长度为优先,其次以哈希值更小为优先,抛弃之前的结果,在新的基础上继续进行下一轮计算 (八)客户端钱包软件 在比特币体系里,用户的账户(地址)由本地客户端自动生成,是类似1Gz9XmfTK4aH89MVXky1QxtyMcG44NqDRv的一串字符。用户告诉别人这一地址后,对方就可以向该地址转账了。 比特币地址其实是一套非对称密钥对中的公钥,这对密钥通过椭圆曲线算法生成,其独特之处在于:使用公钥加密一段信息后,使用公钥解不开,必须使用私钥才可以解开;同样,使用私钥加密一段信息后,使用私钥解不开,必须使用公钥才可以解开。更加独特的是,根据私钥可以很容易地算出公钥,但是根据公钥几乎无法算出私钥。 因此,用户可以把自己的地址(公钥)告诉别人,与其进行加密通信。例如,用户A把自己的公钥告诉B,然后以自己的私钥加密信息,用户B用A的公钥解开这份加密信息,并可确认该信息由A发出(因为只有用A的公钥才可以解开);用户B用A的公钥加密信息,用户A用自己的私钥解开这份加密信息,并可确认该信息是发给自己的(因为只有用自己的私钥才能解开)。但是用户绝不能把私钥告诉别人,因为私钥唯一确定了地址(公钥)的所有权,而且无法通过公钥计算出来。一旦告诉了别人自己的私钥,就等于把该地址里所存的比特币拱手让给了对方,对方可根据私钥计算出公钥(地址),然后从区块链(全网总账本)中查找该地址关联的比特币信息,并动用这些比特币。 用户账户的地址和私钥都保存在比特币钱包文件里,一般情况下私钥是看不见的,由比特币客户端软件自动进行加密、解密运算。因此,钱包文件必须妥善保管,一旦丢失,钱包里所有地址保存的所有比特币就不安全了,有可能被别人盗走。由于整套比特币体系的去中心化和匿名性特性,比特币一旦被盗,没有任何人有权力或能力找回。 (九)比特币转账 因为比特币不存在现金交易的概念,一切的交易都依靠账户间的数字转移,所以比特币的支付概念类似于银行转账。假设A有100个比特币,他要转账给B。那么A写一条信息“从A的地址转账100比特币到B的地址”,然后用自己钱包里的私钥加密并传播到整个比特币网络上,网络上的人都用A的地址(公钥)解密验证这条信息确实是由A发出,而通过历史交易数据计算出A的地址确实拥有100个比特币,于是整个网络公认此次转账操作,抢得记账权的矿工把当前时间区间内的所有交易记录(当然包括A给B的转账)打包挂在区块链上,A钱包中存款减少100比特币,B钱包中存款增加100比特币,并显示该笔转账被确认了一次。大约一个小时后,6次确认完成,B获得了这100个比特币的支配权,这次转账彻底完成。 非对称加密技术使这个转账过程得以顺利实现,矿工的挖矿则保证了交易的合法性、有效性和不可撤回性。 (十)匿名与与公开 由于没有传统银行开户和身份认证的过程,比特币系统是纯匿名的,即无法把用户账户的地址与用户本人相关联,拥有某个地址私钥的人就拥有对该地址的唯一所有权。虽然我们可以根据本地完整的交易记录查询每个账号的流水信息,但却几乎没有办法知道这个账号的主人是谁。只要愿意,每个人都可以拥有几乎无限个地址。同样也没有任何人有能力操作他人账号上的比特币。这是人类历史上第一次从技术上保障了“货币”不可追踪、不可冻结、不可未经许可而占有。 反之,账户所有人可以轻易证明自己拥有某个地址上的财富。只需要使用私钥加密一条信息发布出来,大家就可以确认他对该账户的拥有权,而不必把私钥公开,这同样适用于证明某笔匿名支付确实由某人发出。 当然,虽然比特币系统是匿名的,但若一个组织愿意公开自己的比特币账号,那么整个网络可以随时追踪到该账号的所有流水信息。每一笔转账的到账时间、数额和支出都可以清晰地看到,相当于直接查询银行内部原始账单。对于NGO(非政府组织)或公益组织来说,可以大幅降低账目维护成本,做到100%的透明度。2013年的芦山地震,壹基金就曾接受比特币捐赠,其比特币账目在网络上清晰可查。 (十一)不可撤销与不可找回 如果一笔交易被确认了足够多次,该交易即不可撤销、不可逆转。这意味着,如果一个人错误地把比特币打到另外一个人的合法地址中,除非对方愿意把比特币再打回来,否则这个人的比特币将永远无法追回。因为比特币世界不存在仲裁者,无法强制用户进行操作,因此错误的交易能否被挽回,只取决于对方的自觉性。 基于同样的原因,如果用户的钱包文件(私钥)损坏,就意味着钱包包含的所有地址上的所有比特币都彻底丢失了,彻底躺在了交易记录的历史中,任何人都可以看到它,但却得不到。因为这里可没有拿身份证找回这一码事。而如果想通过破解私钥的办法拿回丢失的比特币,只能等到量子计算机出现了。依据当前的加密理论,只有量子计算机才有可能在较短时间内破解椭圆曲线加密算法。 基于密码学的安全通信 P2P网络的连通性几乎无懈可击,但是信任问题无法只通过P2P网络解决。例如,A发出一条信息给B,B通过P2P网络最终接收到此信息。这条信息可以是直接从A电脑传递过来,也可能是通过多台电脑转手传递过来。于是B会有两个问题:第一,这条信息到底是不是由A发送的?第二,这条信息是否可能被人窥探乃至篡改过? 这就回到了我们上节提到的公钥、私钥和非对称加密技术。A要发送一条信息给B,确保这个信息只有B才能解密。那么A就用B的公钥(公钥是公开的,整个P2P网络都知道B的公钥)加密原始信息,这条信息在整个P2P网络上传播,虽然所有人都有B的公钥,但是用公钥无法解密这条信息,只有B的私钥才能解开。最后B收到这条信息,用自己的私钥解密,读到A发来的消息。 那么A怎么证明自己是这条信息的发出者呢?在网络上,每个人都可以把自己伪装成任何人,B收到信息时,可能传递信息给B的那台电脑会声称它就是A,B当然不能轻信,那么有什么办法可以使B确认这条消息是由A发出的呢? 很简单,A只要把消息分两步加密就可以了:第一步,用A自己的私钥对原始信息做第一层加密;第二步,在上一步获得的数据基础上再用B的公钥做第二层加密。B收到这个加密的信息后,以相反的次序做两次解密操作:第一步,用B自己的私钥解密收到的信息,得到被A的私钥加密过的信息;第二步,在第一步获得的数据基础上用A的公钥再解密一次即得到未加密信息。 第一层加密的目的是证明这个信息是由A加密并发出的,因为只有A的私钥才能完成这样的加密,这一步也叫做数字签名,它排除了消息是别人伪造或者别人冒充A的可能性。第二层加密的目的是确保信息只有B能够解密、看到未加密信息,因为只有B有解密私钥,即使别人看到了加密后的信息,也无法解密,更无法篡改。 公开透明 比特币的本质是一个互相验证的公开记账系统。这个系统所做的事情,就是记录所有账户发生的所有交易。每个账号的每笔数额变化都会记录在全网总账本(区块链)中。而且每个人手上都有一份完整的账本,每个人都可以独立统计出比特币有史以来每个账号的所有账目,也能算出任意账号当前余额是多少。 这里最关键的一点在于每人手上都有完整的账本,因此系统里没有任何人有唯一决定权。任何想隐藏或修改交易数据的行为都会被整个网络否决掉,除非有人有能力修改50%以上用户的账本,这就是比特币系统里所谓的51%攻击。 比特币客户端在使用时会进行大量的数据同步,它同步的就是全网总账本,这些数据保障了整个体系的去中心化和每个客户端的一切知情权。正是因为所有数据公开透明,而整个比特币软件也是开源的,任何人都可以去查看它的源代码,人们才会信任这套去中心化的系统,而不担心里面是否隐藏着什么阴谋。 算力民主 矿工们对篡改全网总账本及双重支付问题的监督,实际上依靠的是计算力投票机制。以双重支付为例,由于同一笔比特币被支付两次,必然形成不一致的区块数据,导致区块链分叉,承认哪次支付、拒绝哪次支付,由矿工投票决定。 投票规则如下:假如双重支付形成两个不一致的区块A和B,此时此时矿工甲抢到了A的记账权,把A挂接在当前的区块链末尾,矿工乙抢到了B的记账权,同样把B挂接在当前的区块链末尾,此时的区块链分叉为A链和B链。在下一个记账周期里,矿工们会决定把新生成的区块挂在A链还是B链上。依此类推,随着时间的推移,A链和B链会不断延长,直到某个链的长度显著超过了另外一个,然后链被舍弃掉,长链中包含的交易被确认。 同样,篡改网络总账本也意味着区块链的分叉,一个链是被篡改的假账本,另一个链是绝大部分人持有的真账本。由于大部分矿工看不到篡改过的假账本,因而他们只会在正确的链上挂接新数据块,也就是正确的区块链会被绝大部分的矿工维护,而被篡改的区块链只有篡改者自己维护,竞争的结果自然是篡改者的假账本被抛弃。 比特币系统任何规则的更改几乎总会引起区块链的分叉,矿工们通过向不同的链挂接新数据块的方式表达自己对新、旧规则的态度。显然,私自更改的规则将无法获得绝大多数矿工的支持,因为规则内嵌于挖矿软件之中,矿工们不更新软件(即拒绝私自更改规则的软件),就不可能在新规则的区块链之后挂接新数据块数字货币家族成员自从比特币出现之后,数字货币家族风起云涌,几乎每个月都有新的数字货币诞生。据不完全统计,目前至少已经有100多种数字货币,其中绝大多数通过修改比特币的代码得来,可能尚未引起人们的关注便已消失。另外一部分借鉴了比特币的思想,并对其算法和机制有所改进。我们将比特币之外的数字货币统称为竞争币,本节将简单介绍几种常见的数字货币。 (一)比特币(Bitcoin) 比特币是最早、最著名的数字货币,它开启了数字货币时代,目前受到的关注最多,价格也最高。本书的主要内容以比特币为例展开,此处从略。 (二)莱特币(Litecoin) 莱特币诞生于2011年10月7日,是比特币最紧密的追随者。用其自己的话来说,如果比特币是货币世界的黄金,我们就是白银。与比特币相比,莱特币的特点如下: 发行速度更快。莱特币的发行速度是平均2.5分钟一个块,是比特币的4倍,15分钟就可以完成6次确认,方便商户交易。 工作量证明方面采用scrypt算法而不是SHA256算法。 采用scrypt算法是莱特币与其他纯模仿比特币的数字货币之间最大的不同之处,scrypt算法的特点是在运算过程中不能单靠CPU的算力,而需要大量的内存支持。目前,市面上的专业比特币矿机在莱特币挖矿方面不如显卡有优势,也因此,目前的莱特币矿工大部分仍依靠显卡挖矿。 莱特币的发明者认为,这种设定可以让莱特币的挖矿权分散在大量散户矿工手上,而不是像比特币一样,逐渐集中、垄断在大型矿机的拥有者手中。但需要指出的是,这种设置是一把双刃剑,在避免挖矿成为少数人参与的资本密集型产业的同时,显卡挖矿导致总算力偏低的问题,也令莱特币相较于比特币,更易遭受51%攻击。 目前,莱特币的全网总算力约为100GHash/s,共计发行了近2389万枚,平均每枚价格为32美元左右,市值约7.7亿美元。 (三)Ripple币(XRP) Ripple是一个开放支付网络,XRP是该网络中的基础货币。严格意义上讲,XRP不能算是“正宗”的数字货币,因为它不由算法发行,而由Ripple的运行公司OpenCoin集中发行。XRP的总量是1000亿枚,OpenCoin会将这些XRP赠送给投资人和普通用户,通过赠送的速率来控制XRP的价格。 由于XRP没有采用比特币的挖矿机制进行发行,因而受到了许多比特币爱好者的抨击。但事实上XRP的作用与比特币完全不同,它主要用作不同货币之间换算的基础货币。目前XRP共有近5万个账号,每月交易量大约为9亿枚 四)Mastercoin(MSC)与BitShares(BTS) MSC协议首次发布于2012年1月6日,其首席研发者J. R. Willett称之为比特币2.0。Willett的观点是,比特币协议可以“像一种协议层一样利用起来,在不需要更改比特币基础协议的前提下,在其区块链之上可以建立具有其自身规则的新货币的协议层。”此项目在2013年7月31日正式启动。首先进行了为期一个月的众筹活动,期间任何人都可以用比特币换取MSC,1个比特币换购100个MSC,而且在众筹期结束前,每周还可获得额外的10%奖励,以鼓励投资者尽快发送比特币。最后共筹得5120个比特币,这些资金用于研发以MSC为中心的项目。目前正悬赏300个比特币用于开发去中心化的交易客户端。 BitShares是由Invictus Innovations创建的项目,从大的概念上来看和Ripple非常相似,都是为了解决交易和流动问题而提出的。BitShares出现较晚,借鉴了Ripple许多优秀的思想,同时还发展了比特币的去中心化思想。BitShares将内置交易功能,每个用户都是一个交易所,实现了交易所的去中心化。BitShares系统内置的货币单位同样称为BitShares(BTS),通过挖矿发行,总发行量约2000万个。在BitShares中,不仅可以交易比特币、莱特币,包括美元、人民币、黄金等一切有价值的证券和实物也都可以进行交易。 后文还将详细介绍MSC和BTS,此处不再赘述。 (五)Peercoin(PPC) PPC发布于2012年8月,它以权益证明(POS)取代比特币的工作量证明(POW)来维护网络安全。PPC方案的提出人Sunny King认为,POW是中本聪在技术上的主要突破,但POW的本质意味着BTC需要消耗能源来维护运行,维护这样一个网络的运转需要消耗大量的成本。随着比特币网络采矿产出下降,最终其可能提高交易费用来维持整个网络的安全性。 PPC采用了POS+POW的混合设计,系统中的区块包括两种类型:POS区块和POW区块。POS区块是一种特殊的交易,称为币权(coinstake,与比特币中的coinbase[币基]相对应)。在币权交易中,区块持有人可以消耗他的币龄获得利息,同时获得一个POS记账(造币)权。这样除了类似比特币的POW造币外,POS也可以用来造币,后者基于币权交易中消耗的币龄,每消耗1年币龄可以造1分钱的币,这样只会带来轻微的通货膨胀。POW主要在最初的造币阶段起作用,其重要性逐渐降低。 通过POS进行造币和网络维护,PPC不需要消耗大量能量,而且能维持系统安全,因此它自称为“节能且具成本优势的P2P电子密码货币”。这一理念也得到了支持者的认可,截至目前,PPC共发行约2087万枚,每枚价格约为4美元,总市值约9000万美元。 (六)Namecoin(NMC) NMC首次发布于2011年4月,是一个基于比特币技术的分布式域名系统。该项目由bitdns提出,主要针对当前DNS(域名解析系统)的缺陷。NMC拥有顶级域名.bit,用户可使用NMC购买.bit下的二级域名。 NMC当前的发行量约为746万枚,每枚价格约6美元,总市值约4500万美元。 (七)其他 其他部分数字货币的发行量、价格及总市值如表1-1所示。 *部分已消失数字货币 Coiledcoin,死于51%攻击。 Fairbrix,推广不力。 Liquidcoin,挖矿难度固定,导致新链产生速度太快,最终失去控制。 MMMcoin,死于欺诈。 Qubic,死因不详。 SolidCoin,数字货币界的一朵奇葩,试图把自己作为一个由“能量”支撑的货币,死于手续费太高,被称为骗局。 Tenebrix,发布前提前挖矿,失去矿工信任。 Rucoin,非开源。 交易相关的2个名词:市场深度第一,市场深度,这是由在同一价位上所有未成交的买单或者卖单构成的。是指在交易平台上能够承受多大大额交易时币价不出现大幅波动的能力。市场深度越深表明市场越稳定、越成熟。举个例子,比如说你要在火币网上卖出手中的1000枚比特币,按照当前的实时价格成交。假设每一枚比特币的价格是1万元。在火币网上,1万元这一档的买单有500个,在9999元这一档的买单有300个币,在9998元这一档的买单有200个币。那么,这个时候你按照实时价格去卖出,当你卖完这1000个比特币之后,比特币的实时价格就会下跌2元。也就是说,你的收益是500*1+300*9999+200*9998,一共是999300元。再比如说,你在另外一个交易平台上同样去卖出1000个比特币,假设说这个平台深度不是很好,比如说在1万元上的买单有200个,在9999元的买单有200个,一直到9900元的买单,才能够满足了你的1000个币的交易的需求。那么,如果你将这1000个币实时价格全部卖完时,价格会下跌100元。这就是市场深度的差别。 市场流动性第二,市场流动性,这是指在市场迅速买卖比特币而不受阻的能力。流动性越好,表现在你在买卖比特币时等待成交的时间越短,交易平台的交易越活跃。比如说,你在火币网上买入10枚比特币,花了5秒钟时间。而你在另一平台去买比特币,花了5分钟。而这5分钟,你可能要承受这5分钟之内价格波动的风险。这就是市场流动性的差别。 我们在判断交易平台的时候,专业的用户会看市场深度和市场流动性谁家好,普通的用户会看交易量谁家大。而交易量这个数据,我们知道可能是不太准确的。几个API用户就能把交易量拉上一大截,API用户是什么呢,我们后面会具体解释。市场深度和市场流动性,才是考验交易平台优质的重要标准。此外,因为很多国家的比特币交易平台是没有传统金融牌照的,我们在判断的时候,看平台的经营时间还有品牌口碑,这也是交易平台一个非常重要的参考。 我们刚刚提到的API用户到底是什么意思呢?其实,这个就类似于传统金融市场里的自动化交易,有时候也称量化交易。交易员根据自己的策略h,设置好交易策略和参数,启动程序,就可以进行自动化交易。因为是程序自动运行,所以它的智能程度和频次要比人的手工操作高一些。有的量化交易策略是套利策略,当策略检测到价差达到多少元的时候,就会在价高的平台卖出,在价低的平台买 入。有的量化交易策略是趋势策略,就会更加复杂一些,它会根据趋势的指标来发出卖出和买入的信号。量化交易是一个成熟的交易市场的构成部分。 我们再来看一下全球的比特币交易的发展。全球最早的知名交易平台叫做MTGox,由“电驴之父” 杰德·麦克卡勒伯于2010年7月成立的,后来卖给了一位移居日本的法国人马克·卡普雷斯。马克·卡普雷斯对MTGox进行了改造,将其打造成为全球最大的比特币交易平台,它一度占据了全球比特币70%的交易量,中国的交易者将其戏称为“门头沟”。但是这家平台因为2014年2月,受到黑客攻击,被盗取了85万枚比特币。自此平台关闭,申请破产。这个成为中国的比特币交易平台崛起的大好契机。 从2014年上半年到2017年1月,中国成为全球最大的比特币交易市场。一是因为中国的交易平台在服务创新、产品创新上做了很多的努力,二是中国的交易平台实施免交易手续费的交易策略。 到2017年1月,中国的央行等监管部门开始进驻到主流交易平台,抑制比特币交易投机,中国的交易平台去掉了杠杆业务、收取交易手续费,并进行反洗钱系统的升级。在此期间,日本在2017年1月开始重新成为全球最大的交易市场了。根据火币区块链研究中心在3月份的统计,全球各国货币计价的比特币交易成交量排名里面,日元是第一名的,他们的交易量占全球43%左右(一周成交917478个);排名第二的是美元,排名第三是中国人民币。到了2017年9月的时候,韩元也已经超越人民币成为第三大法定货币与比特币的交易市场。 国外的交易平台,我们先介绍一批经营时间比较长的交易平台。除了刚才提到的MTGox“门头沟”之外,斯洛文尼亚的Bitstamp也是比较早的一家平台,它在2014年底的时候出现过一次安全事故,但是稳定度过了。在香港运营的美元交易平台Bitfinex也是一家非常老牌的并且比较大的交易平台,但是也在2016年8月被黑客盗走了将近12万枚比特币,后来Bitfinex采用了类似债转股的方式,度过了这段危机。美国交易所Circle和Coinbase通过合规化成长为更有竞争力的交易所。其他交易所通过差异化定位去获取用户,如LocalBitcoins,他们把自己的业务聚焦在场外交易上。对于各个交易平台来说,如何去保障平台的比特币资金安全,是一个严肃的话题,也是一个生死话题,不可马虎对待。火币网运行多年,是国内第一家采用全职安全团队的平台,也是第一家采用自主研发的多重签名钱包的平台,在安全方面积累了非常多的经验。 那么,场内交易和场外交易又是什么意思呢?这是两个相对的概念。在交易平台上进行撮合,买卖价格公开,平台实时显示当前报价。这就是场内交易。比如说,你想买3个比特币,你看到当前的报价是3333美元。你觉得有点高,想在3332美元的时候买入,于是你挂了一个3332美元的买单。过不久后,有人以这个价格进行卖出,你和他就成交了,这个时候你就获得了3枚比特币到账户。因为是平台帮你撮合,这个跟股票类似,所以你就不知道跟你成交的对手是谁,也不需要知道是谁卖给了你这3个比特币,有可能是一个人,也有可能是很多人。刚才我介绍的这些交易平台,包括火币网、BitStamp、BitFinex、Coinbase等等,在这些平台上进行的交易,都属于场内交易。 涉及法定货币的场内交易还有一个显著的特点,就是要符合当地的金融法律法 规,会对用户进行严格的认证和反洗钱处理,实行平台保证资金来源合法的义务。 在场内进行比特币交易,很像我们在买股票。不过稍微有点不一样。在中国A股的股票的交易时间是周一到周五早上9点半到下午3点, 我们国家的股票有涨跌停10%的限制,还有"T+1"交收制度,当日买进的股票,要到下一个交易日才能卖出。而比特币的场内交易,是全球7*24小时交易,没有开收盘时间,也没有涨跌幅的限制,所有的交易为“T+0”,你可以在场内随时的买入,买入之后就可以提出平台。 那么,场外交易又是什么意思呢?除了交易平台之外,还有一些其他地方可以进行交易,这些市场因为集中的和统一交易制度和撮合机制,因而把它们统称为场外交易市场,又叫OTC交易市场。还是刚才的那个例子,假设你想买3个比特币,你需要自己去寻找中间人,或者你去找到矿工,跟他协商一下到底你能多少钱卖给我3个比特币呢?如果你想以3332元去买这3个比特币,但是矿工告诉你你出的价太便宜了,那么你就买不到了。于是你就需要接着再去找下一家,或者再跟他讨价还价,直到找到满意价格为止,这个就是场外交易或者OTC交易。 随着区块链资产种类的增加,传统的法定货币对数字资产的交易已经不能满足全球人类投资的需求。根据火币区块链研究中心的监测显示,现在全球比特币的交易,一半以上都是来自于币币交易,法定货币与比特币的交易占据越来越小的份额。比较知名的币币交易的交易平台有Poloniex、Bittrex,也就是大家常说的P网、B网。火币网国际站也支持币币交易,它是由火币海外团队运营的。 币对币交易相对法定货币对比特币交易来说比较专业,这里可以给大家普及几个名词解释。交易对首先我给你讲一下什么是交易对:交易对,是指用一种资产去定价另一种资产,比如说用美元去定价比特币,就形成了一个比特币与美元的交易对,用比特币去定价莱特币,就形成了一个莱特币和比特币的交易对。随着全球数字资产的品种越来越多,以及很多国家直接把数字货币当作计价货币在使用,所以使用币对币的交易就会越来越多。 币币交易再讲下币对币交易是怎么回事?用一种数字资产去直接换取另一种数字资产,中间不涉及任何法定货币的中转或者结算,也就是我们所说的币对币交易。在交易中,可以用比特币换取莱特币,也可以用莱特币再换回比特币;用以太币换取比特币,也可以用莱特币再换以太坊。币对币交易的交易标的是之前我提到的“交易对”,币对币交易的价格就是交易对的基础货币的计价价格。 以下是我们常见的一些币币交易对: 比如说莱特币对比特币的交易对(LTC/BTC):就是用比特币(BTC)去定价莱特币(LTC),每交易一次的话,表示用多少个比特币能去购买莱特币,或者是用多少莱特币换回多少个比特币。 同样,也有以太坊对比特币的交易对(ETH/BTC):就是用比特币(BTC)去定价以太坊(ETH),该交易对的价格表示,一个以太坊价值多少个比特币。 好了,今天我们讲了比特币产业的中游——交易。我们了解了交易平台如何去判断它的优劣,要注重看市场深度和市场流动性。我们还讲解了全球比较知名的交易平台、场内和场外交易分别是怎么回事,我们再来重温一下这两种交易到底是什么: 场内交易是指在交易平台进行的撮合交易,交易平台帮你去撮合,价格公开,实时显示当前报价,你不需要知道对方是谁; 场外交易是指没有统一的交易市场和交易场所的一种交易方式,你需要自己去寻找你的对手方,跟TA讨价还价,最后达成一致。 另外,我们还提到了币币交易,现在市场上的币币交易占到整个比特币交易的一半,如果你可以用比特币可以去交易以太坊。也可以用以太坊去换莱特币,等等等等,会有非常多非常多的交易对。 一个比特币钱包,它能够生成无数个钱包地址。每个地址里都可以往里存入比特币,也可以发出比特币。每个地址对应一把私钥,每个私钥对应一个比特币地址。用私钥去花费比特币的方式,就是对这个私钥拥有的未花费的比特币进行签名,签名的这个过程也就是加密的过程。 私钥是随机生成的,那么私钥还安全吗?我通过穷尽所有的排列组合,能不能够找到与某个比特币私钥地址所对应的字符串呢?再者,世界上会不会出现两个一模一样的私钥呢?如果出现了两个一样的私钥,那么这两个人就可以互相动用彼此比特币地址里的资产了。别担心,我慢慢跟你说。 从密码学上来说,私钥是安全的。因为私钥本质上是由32个字节组成的数组,1个字节等于8位二进制,也就是一个二进制只有0或者1两种可能性,所以私钥的总数是2^256次方可能性,这个数量已经超越了全宇宙中原子的总数了。我们生活中的密码很容易被黑客尝试出来,因为容易被破解的密码通常比较短,黑客穷尽这几位数就可以了。但是如果黑客想要遍历所有的私钥,耗尽整个太阳的能量也是不可能做到的。我们说的比特币私钥从密码学上说是安全的,并不是说不可能出现重复的私钥,而是说不可能通过遍历所有的私钥方式,或者其它的方式找到对应的比特币地址背后的私钥,所以私钥从密码学上看是安全的。 如果你拥有了某个比特币地址的私钥,那么就意味着你拥有了动用这个地址上所有比特币的所有权。只有你才有权利去决定地址上的比特币是否要花出,要转给谁。如果私钥丢了,这个地址上的币就再也花不了。这个就是我们在区块链浏览器上,看到很多比特币地址里的币,很久都没有动过,有可能就是它的主人把TA的私钥丢失了。 什么是比特币钱包 那么什么是比特币钱包呢? 我刚才提到的私钥、地址这些东西,它需要一个统一的团建来管理,这个管理的工具就叫做钱包。我在前面的课程里讲过,比特币钱包就相当于你的实物钱包,地址就相当于你钱包里的一张张银行卡,私钥就是你的银行卡密码。 比特币钱包有很多种类,大致可以分为在线钱包和离线钱包两大类。所谓在线钱包,就是联着网生成私钥或者连着网运行的钱包,通常我们也叫它热钱包。离线钱包,就是不联网的钱包,我们也叫它冷钱包。冷钱包因为不联网,所以大大降 低了黑客能够盗取的概率,相对来说比较安全,但是冷钱包的操作比较复杂,适合有技术背景的人去使用。 其实钱包还有另外一种分类的维度,接下来我给你介绍一下: 全节点钱包 第一类是全节点钱包。全节点钱包也是早期的钱包形态,它意思是它会从网上下载比特币网络所有的节点,从它的第一个区块至今所有的数据,然后这个钱包自己来维护全网的数据,自己来验证竞争挖矿的结果,是完全的去中心化的钱包。典型的例子是Bitcoin Core,官方核心钱包。你也别担心它太大,现在大概是150G左右,下载几天就可以把所有的数据同步完毕,毕竟一个普通的一个笔记本电脑还是能装的下的。但是你需要经常把它开着,然后去同步节点上的数据,否则每次使用的时候你要先同步数据才能使用。 轻钱包 第二类钱包,我们叫做轻钱包。这类钱包只维护跟你有关的交易相关数据,不同步其他数据,也属于去中心化的钱包的一种。国内的比太钱包就是这种轻钱包。 中心化钱包 第三类就是中心化钱包。它完全依赖于运行这个钱包的公司还有服务器,你读取的数据可能都来自于这家公司提供给你的,而不是比特币网络数据提供给你的数据。选择这一类钱包的时候一定要注意它的历史口碑,因为它是中心化钱包。 可能还听说过另外一个名词,叫做硬件钱包。硬件钱包是什么?在前一段时间,2017年9月份,受国内市场情绪影响,库神硬件钱包被卖脱销了,在圈内带火了“硬件钱包”这个概念。硬件钱包是指钱包软件运行在专门设计的硬件的技术之上。硬件钱包因为有制造成本,所以不像在线钱包一样免费 ,你需要花钱购买这个硬件设备。这个硬件设备,它的形态是多样的,有的像U盘,有的像手机。当然,持有这种硬件钱包的人,TA会有一种亲手掌握着比特币的安全感,这也是一些人所追求的。 随着技术的发展,现在一个钱包也可以支持多个币种了。如果你有两种以上数字资产,可以选择支持多币种的钱包,这样管理起来也会更方便。现在主流的钱包一般会支持比特币、以太坊,莱特币、比特现金,还有以太经典等等。 你可能会问,我是小白,下载一个完全去中心化的钱包,我不会使用,我又担心木马中毒。但是我又不信任由一个中心化公司运行的网页钱包,怕他们被黑客攻击或者监守自盗,那么该怎么办呢?随着技术的发展,一种叫 “多重签名”的技术在钱包领域得到非常广泛的运用。什么叫“多重签名”呢?我们知道一把私钥对应一个比特币地址,你有了这把私钥才能对比特币上地址上的比特币进行处理。运用私钥进行加密的过程就是签名。那么多重签名的意思,就是需要好几把私钥签名,才能够动用一个地址上的比特币。也就是说,一笔交易,需要有两把到三把,或者更多的私钥签名,才能够完全被移走。这样大大提高了资产的安全性,同时也适用于企业级的比特币转移,同时又不影响它速度。 那么说到现在,我们怎么存储和管理我们自己的比特币资产呢?这里我可以给你一些建议。这几点建议也是我的朋友文浩,经常给他的用户们讲的。 第一,从比特币官方网站或其他数字资产的钱包网站选择钱包。比特币官网最初由中本聪维护的,随后以一种公益性的志愿者维护的方式一直发展到今天。所以它推荐或介绍的内容有自己的价值判断,不受商业利益的驱使。 第二,尽量从官方的渠道下载。尽量从官方网站、从谷歌、苹果的官方应用商店下载钱包。不要从非正式的渠道下载钱包,更不要接受别人从QQ、微信上传过来的钱包安装包。因为涉及到自己的资产安全,所以你要格外慎重,切不可轻信他人。因为给你传递过来的这些安装包,可能有木马。 第三、你要做好自己私钥的备份。对私钥的保护要做的非常的完备。对私钥需要做好备份,做好加密。如果你有技术条件,可以尽量做到离线不联网,这样大大提高私钥的安全性。如果你有较大额的比特币存储,我建议你尽量把自己的私钥备份好,并且离线保存。 第四,及时关注技术发展动态。比如说,最近比特币或其他数字资产有分叉,你所使用的钱包能不能帮你处理好这些问题、要不要进行相应的处理。这些都是你要积极关注的。 我们按老规矩来总结一下今天的内容,这节课我们讲了比特币的储存。从密码学上来讲私钥是十分安全的。我们还讲了三种比较适合大众的钱包,全节点钱包、轻钱包,还有中心化钱包。最后,我还给出了4种储存和管理我们比特币资产的建议,分别是:从比特币官网或其他数字资产官网去下载钱包、从官方渠道下载、私钥及时做好备份,以及,及时关注技术的发展动态,查漏补缺。 ## Publication Information - [leaf](https://paragraph.com/@leaf-6/): Publication homepage - [All Posts](https://paragraph.com/@leaf-6/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@leaf-6): Subscribe to updates