另类硬币
自从比特币取得初步成功后,许多替代货币项目相继推出。比特币于 2009 年发布,2011 年推出第一个替代币项目(名为 Namecoin)。在 2013 年和 2014 年,替代币 ( 替代币)市场呈指数级增长,许多不同类型的替代币项目开始启动。
其中一些获得了成功,而许多由于兴趣不大而不受欢迎,因此没有成功。有几起诈骗案浮出水面,但很快就销声匿迹了。基于开发比特币的主要目的,比特币的替代方法可以大致分为两类。如果首要目标是建立一个去中心化的区块链平台,它们被称为替代链;如果替代项目的唯一目的是引入一种新的虚拟货币,它就被称为替代货币。
替代区块链将在第十四章中详细讨论,替代区块链。
本章主要致力于替代硬币,其主要目的是引入一种新的虚拟货币(硬币),尽管也将介绍一些基于比特币构建的替代协议,以提供各种服务。这些概念包括 Namecoin,其主要目的是提供分散的命名和身份服务,而不是货币。
目前,截至 2018 年底,市场上有数百种替代硬币,它们持有一些货币价值,如 Namecoin、Zcash、Primecoin 等。我们将在本章的后面部分研究其中的一些。Zcash 是 2016 年推出的比较成功的 altcoin。另一方面,Primecoin 并没有得到太多的欢迎,但它仍然在使用。这些替代项目中有许多是比特币源代码的直接分支,尽管其中一些是从头开始编写的。一些替代硬币着手解决比特币的局限性,如隐私。其他一些提供不同类型的开采、轮挡时间的变化和分配方案。
根据定义,在硬分叉的情况下会生成 altcoin。如果比特币有一个硬分叉,那么另一个更老的链实际上被认为是另一种硬币。然而,对于哪条链成为替代硬币,并没有既定的规则。以太坊就发生了这种情况,除了以太坊 ( ETH )货币之外,一种新的货币以太坊经典 ( 等)出现了。以太坊经典是老链条,以太是分叉后的新链条。出于某些原因,这样一个有争议的硬分叉是不可取的。首先,它违背了权力下放的真正精神,因为以太坊基金会,一个核心实体,决定进行硬分叉,即使不是每个人都同意这个提议;其次,由于对硬分叉的分歧,它也分裂了用户社区。虽然从理论上讲,硬分叉会产生替代硬币,但它所能提供的东西是有限的,因为即使变化导致硬分叉,硬币的基本参数通常也不会发生剧烈变化。它们通常保持不变。出于这个原因,最好是要么从头开始写一个新的硬币,要么派生出比特币(或另一个硬币的源代码)来创建一个具有所需参数和特征的新货币。
替代硬币必须能够吸引新的用户,交易和矿工,否则货币将没有价值。由于网络效应和社区的可接受性,货币获得了它的价值,尤其是在虚拟货币空间。如果一个硬币不能吸引足够多的用户,那么它很快就会被遗忘。可以通过提供初始数量的硬币来吸引用户,并且可以通过使用各种方法来实现。然而,有一个风险,如果新硬币表现不佳,他们的初始投资可能会损失。提供替代硬币初始数量的方法讨论如下:
- 创建一个新的区块链:替代硬币可以创建一个新的区块链,并将硬币分配给最初的矿工,但这种方法现在不受欢迎,因为有许多骗局或抽水和倾倒计划,最初的矿工通过发行新货币获利,然后消失。
- PoB(T1):将初始资金分配给新替代货币的另一种方法是 PoB,也称为单向挂钩或价格上限。在这种方法中,用户永久销毁一定数量的比特币,销毁数量与要认领的替代比特币数量成比例。例如,如果 10 个比特币被销毁,那么替代比特币的价值不会大于一些被销毁的比特币。这意味着比特币正在通过燃烧的方式转化为替代币。
- 所有权证明:不是永久销毁比特币,一种替代方法是证明用户拥有一定数量的比特币。这种所有权证明可用于通过将替代硬币块绑定到比特币块来认领替代硬币。例如,这可以通过合并挖掘来实现,在合并挖掘中,比特币矿工可以有效地挖掘替代比特币块,同时挖掘比特币,而无需任何额外的工作。合并挖掘将在本章后面解释。
- 挂钩侧链:侧链,顾名思义,是独立于比特币网络的区块链,但比特币可以转移到其中。Altcoins 也可以转回比特币网络。这个概念被称为双向盯住。
投资和交易这些替代硬币也是一项大业务,尽管没有比特币那么大,但足以吸引新的投资者和交易者,并为市场提供流动性。altcoin 的总市值如下所示:
该图由https://coinmarketcap.com/生成。
该图显示,在撰写本文时,Altcoin 的总市值超过 2000 亿美元
前 10 名硬币的当前市值(截至 2018 年 3 月)如下:
| 名称 | 市值 | 价格美元 | | 比特币 | $151,388,873,045 | $8,951.83 | | 艾瑟芬 | $68,472,253,587 | $697.94 | | 涟漪 | $31,340,920,806 | $0.801723 | | 比特币现金 | $17,182,167,856 | $1,010.08 | | 床角 | $9,952,905,688 | $179.11 | | 新的 | $5,638,100,000 | $86.74 | | 卡登诺 | $5,450,310,987 | $0.210217 | | 主要的 | $5,438,720,268 | $0.294010 | | 黎明的女神 | $4,347,501,290 | $6.04 | | -钱 | $4,211,690,257 | $266.40 |
数据取自https://coinmarketcap.com/。
替代硬币带来了各种因素和新概念。许多概念甚至在比特币之前就被发明了,但随着比特币的出现,不仅引入了新的概念,如拜占庭将军问题的解决方案,而且以前的想法,如 hashcash 和 Proof of Work ( PoW )也被巧妙地使用并受到关注。
此后,随着替代硬币项目的引入,各种新技术和概念被开发和引入。要了解替代加密货币的当前状况,首先必须了解一些理论概念。
理论基础
在本节中,将向读者介绍各种理论概念,这些概念是在过去几年中随着不同替代硬币的引入而发展起来的。
工作证明的替代方案
加密货币背景下的 PoW 方案首先用于比特币,并作为一种机制来确保矿工已经完成了找到区块所需的工作量。这一进程反过来为区块链带来了权力下放、安全和稳定。这是比特币提供去中心化分布式共识的主要载体。PoW 方案被要求具有一个非常需要的属性,称为进度自由性,这意味着消耗计算资源的回报应该是随机的,并且与矿工所做的贡献成比例。在这种情况下,即使那些计算能力相对较弱的矿工也有机会赢得区块奖励。
Arvind Narayanan 和其他人在《比特币和加密货币技术》一书中提出了“进步自由”一词。挖掘计算难题的其他要求包括可调整的难度和快速验证。可调整的难度确保在区块链上挖掘的难度目标被调整以响应增加的散列能力和用户数量。
快速验证是一种属性,这意味着挖掘计算难题应该容易且快速地被验证。PoW 计划的另一个方面,尤其是比特币(双 SHA-256)中使用的那个方面,是自 ASIC 的引入以来,权力正转向有能力运营大规模 ASIC 农场的矿工或矿池。这种权力转移挑战了比特币去中心化的核心理念。
已经提出了一些替代方案,例如抗 ASIC 难题,并且以这样的方式设计,即构建 ASIC 来解决这个难题是不可行的,并且不会导致比商用硬件有大的性能增益。用于此目的的一种常见技术是应用一类计算困难的问题,称为记忆困难计算难题。这种方法背后的核心思想是,由于解谜需要大量的存储器,所以在基于 ASIC 的系统上实现是不可行的。
这项技术最初用于 Litecoin 和 Tenebrix,其中 Scrypt 哈希函数被用作抗 ASIC 的 PoW 方案。尽管这种方案最初被宣传为抗 ASIC,但最近加密的 ASIC 已经出现,推翻了 Litecoin 最初的说法。这是因为 Scrypt 是一种内存密集型机制,最初人们认为由于技术和成本限制,构建具有大内存的 ASICs 很困难。现在情况不再是这样了,因为存储器越来越便宜,而且有了生产纳米级电路的能力,就有可能制造出能够运行 Scrypt 算法的 ASICs。
ASIC 电阻的另一种方法是需要计算多个散列函数来提供功率。这也被称为链式散列方案。这种想法背后的基本原理是在一个 ASIC 上设计多个散列函数是不太可行的。最常见的例子是 Dash 中实现的 X11 内存硬函数。X11 包括 11 个 SHA-3 竞争者,其中一个算法将计算出的散列输出到下一个算法,直到所有 11 个算法在序列中被使用。这些算法包括布雷克,宝马,格罗斯特尔,JH,凯克克,斯凯因,路飞,立方体哈希,沙维特,SIMD 和回声。
这种方法最初确实对 ASIC 开发提供了一些阻力,但是现在 ASIC 挖掘器已经可以在市场上买到,并且支持 X11 和类似方案的挖掘。最近的一个例子是 ASIC Baikal Miner,它支持 X11、X13、X14 和 X15 挖掘。其他例子包括采矿机,如 iBeLink DM384M X11 采矿机和 PinIdea X11 ASIC 采矿机。
或许另一个方法是设计自我变异的谜题,智能地或随机地改变电源方案或其要求作为时间的函数。这种策略几乎不可能在 ASIC 中实现,因为它需要为每个功能设计多个 ASIC,并且随机改变方案几乎不可能在 ASIC 中处理。目前,还不清楚如何在实践中实现这一点。
PoW 确实有各种缺点,其中最大的缺点是能耗。据估计,比特币矿工目前消耗的总电量超过孟加拉国,为 54.69 太瓦哈希 ( 太瓦哈希)。这是巨大的,所有的力量在某种程度上都被浪费了;事实上,除了采矿之外,没有任何有用的目的。环保主义者对这种情况表示了真正的担忧。除了电力消耗,碳足迹也非常高,目前估计每笔交易约 387 公斤二氧化碳2。
下图显示了与其他国家相比,比特币的能源消耗规模。预计这一数字还会增长,预计到 2018 年底,能源消耗将达到每年约 125 TWh。
各国的能源消耗
上图摘自追踪这一主题的网站。在https://digiconomist.net/bitcoin-energy-consumption有售。
有人提出,可以用这样一种方式来设计 PoW 拼图,它们有两个用途。首先,它们的主要目的是在共识机制中,其次是执行一些有用的科学计算。这样,这些方案不仅可以用于采矿,还可以帮助解决其他潜在的科学问题。这种有用工作的证明最近已经由 Primecoin 付诸实践,其要求是找到被称为 Cunningham 链和双孪生链的特殊素数链。由于素数分布的研究在物理学等科学学科中具有特殊的意义,通过挖掘素数币,挖掘者不仅可以获得块奖励,而且有助于发现特殊的素数。
存储证明
也称为可检索性证明,这是需要存储大量数据的有用工作的另一种证明。由微软研究院引入的这一方案提供了档案数据的分布式存储的有益效果。挖掘者需要存储一个伪的、随机选择的大数据子集来执行挖掘。
股权证明
这种证明也被称为虚拟挖掘。这是另一种类型的采矿难题,已被提议作为传统电力方案的替代方案。它于 2012 年 8 月在 Peercoin 首次提出。在这个方案中,要求用户证明拥有一定数量的货币(硬币),从而证明他们与硬币有利害关系。最简单的股权形式是,对那些显然拥有大量数字货币的用户来说,挖掘相对容易。这个方案的好处是双重的:首先,与购买高端 ASIC 设备相比,获取大量数字货币相对困难,其次,这导致节省计算资源。已经提出了各种形式的利害关系,并在下面的小节中简要讨论。
各种桩类型
不同类型的赌注将在下面的小节中介绍。
铸币证明
硬币的年龄是指自硬币最后一次被使用或持有以来的时间。这是一种不同于通常形式的 PoS 的方法,在通常形式的 PoS 中,对于在替代硬币中拥有最高股份的用户来说,挖掘更容易。在基于硬币年龄的方法中,每次开采一个区块,硬币(硬币)的年龄就被重置。矿工因持有硬币并在一段时间内不花硬币而获得奖励。这种机制已经以一种创造性的方式在 Peercoin 和 PoW 中实现。
挖掘谜题的难度(PoW)与硬币成反比,这意味着如果矿工使用硬币-赌注交易来消耗一些硬币,那么 PoW 需求就会减轻。
存款证明
这一方案背后的核心思想是让矿工新开采的区块在一段时间内无法使用。更准确地说,在采矿过程中,硬币会被锁定一定数量的区块。该计划允许矿工以冻结一定数量的硬币一段时间为代价进行采矿。这是一种 PoS。
燃烧证明
事实上,作为计算能力的替代支出,PoB 会销毁一定数量的比特币,以获得等价的替代比特币。这通常在启动新硬币项目时使用,作为提供公平初始分配的一种方式。这可以被认为是一种替代的开采方案,其中新硬币的价值来自于先前一定数量的硬币已经被销毁的事实。
活动证明(PoA)
这个方案是 PoW 和 PoS 混合。在这个方案中,最初使用 PoW 生成块,但是每个块随机分配三个利益相关者,要求他们对其进行数字签名。后续块的有效性取决于先前随机选择的块的成功签名。
然而,有一个可能的问题称为无利害关系问题,在这种情况下,创建区块链的分叉是微不足道的。这是可能,因为在 PoW 中需要适当的计算资源来挖掘,而在 PoS 中没有这样的要求;因此,攻击者可以尝试使用同一枚硬币在多个链上挖矿。
非外包谜题
这一难题背后的主要动机是再次抵制开发矿池。如前所述,挖掘池根据所有参与者消耗的计算能力按比例向他们提供奖励。然而,在这个模型中,矿池经营者是一个中央权力机构,所有的报酬都归他所有,他可以执行特定的规则。此外,在这个模型中,所有矿工只信任彼此,因为他们朝着一个共同的目标一起努力,希望游泳池经理得到奖励。不可外包谜题是一个让矿工为自己索取奖励的方案;因此,由于匿名矿工之间固有的不信任,形成池变得不太可能。
也有各种其他 PoW 的替代方案,其中一些已经在第 1 章、区块链 101 中描述,一些将在本书稍后的第 13 章、 Hyperledger 和第 16 章、可扩展性和其他挑战中解释。由于这是一个正在进行的研究领域,随着区块链技术的发展,新的替代品将不断出现。
难度调整和重定向算法
随着比特币和替代币的出现,另一个概念是重新定位算法的困难。在比特币中,简单地通过以下等式计算难度目标;然而,其他硬币要么开发了自己的算法,要么实现了比特币难度算法的修改版本:
T =上一次实际时间/ 2016 * 10 分钟*
比特币难度监管背后的想法是,2016 年区块的一代应该需要大约两周时间(区块间时间应该在 10 分钟左右)。如果挖掘 2016 个区块的时间超过两周,那么难度降低,如果挖掘 2016 个区块的时间不到两周,那么难度增加。当由于高块生成率而引入 ASIC 时,难度呈指数级增加,这是不抗 ASIC 的 PoW 算法的一个缺点。这就导致了采矿权集中。
这也带来了另一个问题;如果一枚新硬币现在开始使用与比特币相同的基于 SHA-256 的 PoW,那么恶意用户就很容易简单地使用 ASIC 矿机并控制整个网络。如果对新的 altcoin 的兴趣降低,有人决定通过消耗足够高的计算资源来接管网络,这种攻击将更加实际。如果具有类似计算能力的其他矿工也加入 altcoin 网络,这可能不是一个可能的攻击,因为那样矿工将相互竞争。
此外,多种货币构成了更大的威胁,因为一群矿商可以自动转向有利可图的货币。这种现象被称为跳池,会对区块链产生不利影响,从而影响替代硬币的增长。跳池对网络有负面影响,因为跳池者只有在难度较低时才加入网络,他们可以快速获得奖励;当难度增加(或重新调整)时,他们跳开,然后当难度调整回来时又回来。
例如,如果一个 multipool 在快速挖掘一个新硬币时消耗了它的资源,那么难度会增加得非常快;当多池离开货币网络时;它变得几乎无法使用,因为事实上,现在的难度已经增加到这样一个水平,它不再对个体矿工有利可图,也不能再维持下去。解决这个问题的唯一方法是发起一个硬分叉,这通常是社区所不希望的。
有一些已经出现的算法可以解决这个问题,我们将在本章的后面讨论。所有这些算法都基于响应散列率变化重新调整各种参数的思想;这些参数包括前几个方块的数量、前几个方块的难度、调整的比率以及难度可以调高或调低的数量。
在接下来的章节中,读者将会了解到一些难度算法,这些算法将会在不同的替代硬币中被使用和推荐。
木本重力井
这种算法被用在各种替代币中来调节难度。该方法首先在 Megacoin 中引入,用于自适应地调整每个块的网络难度。算法的逻辑如下所示:
KGW = 1+(0.7084 * pow((double(PastBlocksMass)/double(144)),-1.228))
该算法循环运行,遍历一组预定的块( PastBlockMass )并计算新的重新调整值。该算法背后的核心思想是开发一种自适应难度调节机制,该机制可以根据哈希速率的快速峰值重新调整难度。木本重力井 ( KGW )保证两个区块之间的时间保持大致相同。在比特币中,每 2016 个区块调整一次难度,但在 KGW,每一个区块的难度都在调整。
这种算法容易受到时间扭曲攻击,这使得攻击者在临时创建新块时享受较少的难度。这种攻击允许一个难度变低的时间窗口,攻击者可以以很快的速度快速生成很多硬币。
更多信息可以在链接https://cryptofrench . WordPress . com/2014/02/09/multi pools-vs-gravity-well/找到。
黑暗重力波
黑暗重力波 ( DGW )是一种新算法,旨在解决 KGW 算法中的某些缺陷,如时间扭曲攻击。这个概念最早是在 Dash 中引入的,之前被称为 Darkcoin。它利用多重指数移动平均线和简单移动平均线来实现更平滑的调整机制。该公式如下所示:
2222222/(((difficulty+2600)/9)^2)
这个公式在 Dash coin、比特币 SegWit2X 和其他各种 altcoins 中实现,作为重新调整难度的机制。
DGW 版本 3.0 是 DGW 算法的最新实现,与 KGW 相比,它提高了重定目标的难度。
更多信息可以在https://dash pay . atlassian . net/wiki/spaces/DOC/pages/1146926/Dark+Gravity+Wave找到。
数字盾牌
这是最近在 Zcash 中使用的另一个困难的重定目标算法,稍加变化并经过充分的实验。该算法通过遍历固定数量的先前块来计算它们生成所用的时间,然后通过平均目标时间来划分实际时间跨度,将难度重新调整为先前块的难度。在该方案中,重定目标的计算要快得多,并且从散列率的突然增加或减少中恢复也很快。此算法可防止多池,多池会导致哈希速率快速增加。
根据实施情况,每块或每分钟重新调整网络难度。关键的创新是比 KGW 更快的调整时间。
Zcash 使用 DigiShield v3.0,该版本使用以下公式进行难度调整:
(新难度)=(上一难度)x SQRT [ (150 秒)/(上次求解时间)
在https://github . com/z cash/z cash/issues/147 # issue comment-245140908上有关于它的详细讨论。
大富翁
多区间难度调整系统 ( MIDAS )是一种算法,由于其使用的参数数量,该算法比之前讨论的算法相对更复杂。这种方法对哈希速率的突然变化的响应要快得多。这种算法还可以抵御时间扭曲攻击。
关于这一点的原始帖子现在可以通过网络存档在https://web . archive . org/web/20161005171345/http://dillingers . com/blog/2015/04/21/alt coin-difficult-adjustment-with-MIDAS/获得。
感兴趣的读者可以在前面的位置阅读更多相关内容。
这就结束了我们对各种难度调整算法的介绍。
许多替代的加密货币和协议已经出现,试图解决比特币的各种限制。
比特币的局限性
比特币的各种限制也引发了一些对替代币的兴趣,替代币是专门为解决比特币的限制而开发的。最突出且被广泛讨论的限制是比特币缺乏匿名性。我们现在将讨论比特币的一些局限性。
隐私和匿名
由于区块链是所有交易的公共分类账,并且是公开可用的,因此对其进行分析就变得微不足道了。结合流量分析,交易可以链接回它们的源 IP 地址,从而可能揭示交易的发起者。从隐私的角度来看,这是一个大问题。
尽管在比特币中,为每笔交易生成一个新地址是一种推荐和常见的做法,从而允许某种程度的不可链接性,但这还不够,已经开发了各种技术并成功用于跟踪整个网络中的交易流,并将它们链接回其发起者。这些技术通过使用交易图、地址图和实体图来分析区块链,这些图有助于将用户链接回交易,因此引起了隐私问题。前面分析中提到的技术可以通过使用公开可用的交易信息并将其与实际用户联系起来而进一步丰富。有一些开源的块解析器可以用来从区块链数据库中提取交易信息、余额和脚本。
https://github.com/mikispag/rusty-blockparser 的解析器是用 Rust 语言编写的,提供高级区块链分析能力。
已经提出了各种提案来解决比特币的隐私问题。这些建议分为三类:混合协议、第三方混合网络和固有匿名性。
每个类别的简要讨论如下。
混合协议
这些方案用于为比特币交易提供匿名性。在这个模型中,使用了混合服务提供者(中介或共享钱包)。用户将硬币发送到这个共享钱包作为押金,然后,共享钱包可以将一些其他硬币(由一些其他用户存放的相同价值的硬币)发送到目的地。用户也可以通过这个中介接收其他人发送的硬币。这样,输出和输入之间的联系不再存在,事务图分析将不能揭示发送者和接收者之间的实际关系。
三个用户将他们的事务加入到一个更大的 CoinJoin 事务中的 CoinJoin 事务
CoinJoin 是混合协议的一个例子,其中两个事务连接在一起形成一个事务,同时保持输入和输出不变。CoinJoin 背后的核心思想是构建一个由所有参与者签名的共享事务。这种技术提高了交易中所有参与者的隐私。
第三方混合协议
各种第三方混合服务是可用的,但是如果该服务是集中式的,那么它会带来追踪发送者和接收者之间的映射的威胁,因为混合服务知道所有的输入和输出。除此之外,完全集中的矿工甚至会带来服务管理员窃取硬币的风险。
基于 CoinJoin(混合)事务的思想,有各种不同复杂程度的服务,如 CoinShuffle、Coinmux 和 Darksend in Dash (coin)。CoinShuffle 是传统混合服务的分散替代方案,因为它不需要可信的第三方。
然而,基于 CoinJoin 的方案有一些弱点,最突出的是由最初承诺签署交易但现在不提供他们的签名的用户发起拒绝服务攻击的可能性,从而延迟或完全停止联合交易。
互联网匿名
这一类别包括本质上支持隐私的硬币,并内置于货币的设计中。最流行的是 Zcash,它使用零知识证明 ( ZKP )来实现匿名。本章稍后将详细讨论这一点。其他例子包括 Monero,它利用环签名来提供匿名服务。
下一节将介绍为扩展比特币协议已经做出或提议的各种改进。
比特币之上的扩展协议
在以下章节中讨论的几个协议已经被提出并在比特币上实现,以增强和扩展比特币协议,并用于各种其他目的,而不仅仅是作为虚拟货币。
彩色硬币
彩色硬币是一套用于在比特币区块链上表现数字资产的方法。给比特币着色通俗地说就是用一些代表数字资产(智能财产)的元数据来更新它。硬币仍然像比特币一样工作和操作,但额外携带了一些代表一些资产的元数据。这可以是与资产相关的一些信息、与交易相关的一些计算或任何任意数据。这种机制允许发行和跟踪特定的比特币。元数据可以使用 bitcoins OP_RETURN
操作码记录,或者可选地记录在多签名地址中。如果需要解决任何隐私问题,也可以对这些元数据进行加密。一些实现还支持在公开可用的种子网络上存储元数据,这意味着可以存储几乎无限量的元数据。通常这些是 JSON 对象,代表彩色硬币的各种属性。此外,还支持智能合约。这种实现的一个例子是 Colu,它可以在,http://colu.co/找到。
彩色硬币可以用来代表多种资产,包括但不限于商品、证书、股票、债券和投票。还应该注意的是,要使用彩色硬币,解释彩色硬币的钱包是必要的,正常的比特币钱包将不起作用。普通的比特币钱包无法工作,因为它们无法区分有色币和非有色币。
https://www.coinprism.com/的一项服务可以让你在网上设置彩色硬币钱包。通过使用这项服务,任何数字资产都可以通过彩色硬币来创建和发行。
彩色硬币的想法非常有吸引力,因为它不需要对现有的比特币协议进行任何修改,并且可以利用现有的安全比特币网络。除了数字资产的传统表示形式之外,还可以创建智能资产,根据为其定义的参数和条件进行操作。这些参数包括时间验证、可转让性限制和费用。
一个重要的使用案例是在区块链发行金融工具。这将确保低交易费用、有效且数学上安全的所有权证明、无需中介的快速可转让性,以及对投资者的即时股息支付。
丰富的 API 可用于 http://coloredcoins.org/的彩色硬币。
对手方
这是另一项服务,可用于创建自定义令牌,充当加密货币,并可用于各种目的,如在比特币区块链的基础上发行数字资产。这是一个相当强大的平台,其核心运行在比特币区块链上,但已经开发了其客户端和其他组件,以支持发行数字资产。该架构由交易对手服务器、柜台模块、柜台钱包和armory_utxsvr
组成。交易对手的工作原理与彩色硬币相同,即通过将数据嵌入常规比特币交易中,但提供了一个更具生产力的库和一套强大的工具来支持数字资产的处理。这种嵌入也被称为嵌入式共识,因为对手方交易嵌入在比特币交易中。嵌入数据的方法是通过使用比特币中的OP_RETURN
操作码。
交易对手生产和使用的货币被称为 XCP,并被智能合约用作运行合约的费用。在撰写本文时,其价格为 2.78 美元。xcp 是使用前面讨论的 PoB 方法创建的。
交易对手允许使用 solidity 语言在以太坊上开发智能合约,并允许与比特币区块链进行交互。为了实现这一点,BTC 中继被用作提供以太坊和比特币之间的互操作性的手段。这是一个聪明的概念,以太坊合约可以通过 BTC 中继与比特币区块链和交易对话。中继器(运行 BTC 中继的节点)获取比特币块头,并将它们中继到以太坊网络上验证 PoW 的智能合约。该过程验证在比特币网络上发生了交易。
这在http://btcrelay.org/有售。
从技术上讲,这是一个以太坊合约,能够存储和验证比特币块头,就像比特币简单支付验证轻量级客户端通过使用布隆过滤器所做的那样。SPV 客户在前面的章节中已经详细讨论过了。这个想法可以用下面的图表来形象化:
BTC 接力概念
交易对手可在http://counterparty.io/找到。
替代硬币的发展
从编码的角度来看,Altcoin 项目可以通过简单地分叉比特币或另一种硬币的源代码来快速启动,但这可能还不够。当一个新的硬币项目开始时,需要考虑几件事,以确保成功推出和硬币的寿命。通常,代码库是用 C++编写的,就像比特币一样,但几乎任何语言都可以用来开发比特币项目,例如 Golang 或 Rust。
为现有硬币编写代码或派生代码是微不足道的部分,具有挑战性的问题是如何发行一种新货币,以便投资者和用户能够被它吸引。一般来说,以下步骤是为了开始一个新的硬币项目。
从技术角度来看,在分叉另一个硬币(例如比特币)的代码的情况下,可以改变各种参数来有效地创建新的硬币。为了创造新的硬币,需要调整或引入这些参数。这些参数可以包括但不限于以下内容。
共识算法
有一种共识算法可供选择,例如比特币中使用的 PoW 或 Peercoin 中使用的 PoS。也有其他算法可用,如容量证明 ( PoC )和少数其他算法,但 PoW 和 PoS 是最常见的选择。
哈希算法
这是 SHA-256 算法、Scrypt 算法、X11 算法、X13 算法、X15 算法或任何其他足以用作共识算法的散列算法。
难度调整算法
该类别中有各种选项可用于提供困难的重定目标机制。最突出的例子是 KGW、DGW、Nite 的重力波和 DigiShield。此外,所有这些算法都可以根据需要进行调整,以产生不同的结果;因此,许多变体是可能的。
块间时间
这是每个块生成之间经过的时间。对于比特币,每 10 分钟生成一次区块,对于莱特币,每 2.5 分钟生成一次。可以使用任何值,但是合适的值通常在几分钟之间;如果生成时间太快,可能会破坏区块链的稳定,如果太慢,可能不会吸引很多用户。
阻止奖励
块奖励是给解决采矿难题的矿工的,并且允许有包含奖励的 coinbase 交易。这曾经是比特币最初的 50 个硬币,现在许多替代硬币将这个参数设置为非常高的数字;例如,在 Dogecoin 中,当前为 10,000。
奖励减半率
这是另一个重要因素;在比特币中,它每 4 年减半,现在设定为 12.5 比特币。这是一个可变的数字,可以根据需要设置为任何时间段或根本不设置。
块大小和事务大小
这是另一个重要的因素,它决定了网络上的事务速率可以有多高或多低。比特币的块大小被限制在 1 MB,但在替代币中,它可以根据要求而变化。
利率
此属性仅适用于 PoS 系统,在这种系统中,硬币的所有者可以按照网络定义的利率赚取利息,作为回报,一些硬币作为赌注保存在网络上以保护网络。这一利率使通货膨胀得到控制。如果利率太低,就会导致恶性通货膨胀。
货币制度
此参数定义了硬币必须保持未用完多长时间,才能有资格被认为值得下注。
硬币总供应量
这个数字设定了硬币的总限额。例如,比特币的上限是 2100 万,而 Dogecoin 是无限的。这个限制是由前面讨论的块奖励和减半时间表确定的。
创建自己的虚拟货币有两种选择:派生现有的已建立的加密货币源代码或从头编写一个新的。后一种选择不太受欢迎,但第一种选择更容易,并允许在过去几年中创建许多虚拟货币。从根本上来说,该想法是首先对加密货币源代码进行分叉,然后在源代码的不同战略位置进行适当的更改,以有效地创建新货币。NEM 硬币是一种新创造的硬币,其编码完全是从零开始写的。
在下一节中,将向读者介绍一些 altcoin 项目。本章不可能涵盖所有的替代货币,但下一节将讨论一些精选的硬币。选择基于寿命、市值和创新。每枚硬币从理论基础、交易、挖掘等不同角度进行讨论。
名称角
Namecoin 是比特币源代码的第一个分支。Namecoin 背后的关键思想不是制造替代币,而是提供改进的去中心化、审查阻力、隐私、安全性和更快的去中心化命名。分散式命名服务旨在应对互联网上使用的传统域名系统 ( DNS )协议中的固有限制,例如速度慢和集中控制。Namecoin 也是 Zooko 三角形的第一个解,在 C hapter 1 ,区块链 101 中有过简单的讨论。
Namecoin 主要用于提供注册键/值对的服务。Namecoin 的一个主要用例是,它可以提供一个分散的传输层安全 ( TLS )证书验证机制,由基于区块链的分布式和分散共识驱动。
它基于与比特币相同的技术,但有自己的区块链和钱包软件。
Namecoin 内核的源代码可以在 https://github.com/namecoin/namecoin-core 获得。
总之,Namecoin 提供以下三种服务:
- 名称(密钥)的安全存储和传输
- 通过附加多达 520 字节的数据,将一些值附加到名称上
- 数字货币(名币)的生产
Namecoin 还首次引入了合并开采,允许一家矿商同时在多条链上开采。这个想法很简单,但非常有效:矿工创建一个命名硬币块,并产生该块的散列。然后,散列被添加到一个比特币区块,矿工以等于或大于名称币区块难度的难度解决该区块,以证明已经为解决名称币区块贡献了足够的工作。
coinbase 事务用于包括来自 Namecoin(或任何其他 altcoin,如果与该 coin 合并了挖掘)的事务的散列。挖掘任务是解决 coinbase scriptSig
包含指向 Namecoin(或任何其他 altcoin)块的哈希指针的比特币块。如下图所示:
合并挖掘可视化
如果一名矿工设法解决了比特币区块链难度级别的哈希问题,比特币区块就会建立起来,并成为比特币网络的一部分。在这种情况下,比特币区块链会忽略 Namecoin 哈希。另一方面,如果一个矿工解决了一个名币区块链难度等级的方块,一个新的方块会在名币区块链中创建。这一方案的核心好处是,矿工花费的所有计算能力都有助于保护名称币和比特币。
交易名称角点
根据 2018 年 3 月的https://coinmarketcap.com/,Namecoin 目前的市值为 29,143,884 美元。它可以在各种交易所买卖,例如:
- https://crypt onite . net/
- https://bisq.network
- https://www.evonax.com
- https://bter . com
获得姓名硬币
尽管名称币可以独立挖掘,但它们通常是作为比特币挖掘的一部分,通过利用前面解释的合并挖掘技术来挖掘的。这样 Namecoin 就可以作为比特币开采的副产品被开采出来。从下面的难度图可以明显看出,单独采矿不再有利可图;而是建议使用合并挖矿,使用挖矿池,甚至使用加密货币交易所购买 Namecoin。
姓名币难度如图所示:https://bitinfocharts.com/comparison/difficulty-nmc.html(自 2016 年 12 月起)
各种采矿池,如https://slushpool.com也提供合并采矿的选择。这使得矿工可以主要开采比特币,但结果也可以获得名币。
另一种可以用来快速获得一些 Namecoin 的方法是用 name coin 交换你现有的硬币,例如,如果你已经有一些比特币或另一种可以用来与 name coin 交换的加密货币。
一项名为https://shapeshift.io/的在线服务可以提供这项服务。这项服务允许使用简单的用户友好界面从一种加密货币转换到另一种加密货币。
例如,向 BTC 付款以获得 NMC,如下所示:
- 首先选择存款硬币,在这种情况下是比特币,并选择要接收的硬币,在这种情况下是 Namecoin。在顶部的编辑框中,输入您希望接收兑换的姓名币的姓名币地址。在第二个编辑框中,在底部输入比特币退款地址,如果交易因任何原因失败,比特币将被退回到该地址。
- 一旦选择了存款和兑换货币,汇率和矿工费用立即计算。汇率是由市场条件决定的,而矿工费是根据所选的目标货币和目标网络的矿工将收取的费用通过算法计算出来的。
比特币到命名币交易所
- 一旦点击开始交易,交易开始并指示用户将比特币发送到特定的比特币地址。当用户发送所需金额时,转换过程开始,如下图所示。整个过程需要几分钟:
硬币交付通知
前面的屏幕截图显示,在发送存款后,交换发生,并最终完成!将显示一条消息,指示交换已成功。
页面上会显示一些其他订单详细信息,例如存入的货币和兑换后收到的金额。在这种情况下,比特币被命名为比特币交易所。还值得注意的是,相关地址也显示在每个硬币图标下。很少有其他选项,如电子邮件收据,可以调用它来接收交易的电子邮件收据。
流程完成后,可以在 Namecoin 钱包中查看交易,如下所示:
公事包名称
可能需要一些时间(通常约 1 小时)来确认交易;在那之前,不可能使用姓名币来管理姓名。一旦钱包中有了姓名币,就可以使用管理姓名选项来生成姓名币记录。
生成姓名币记录
Namecoin 记录采用键和值对的形式。名称是形式为d/examplename
的小写字符串,而值是区分大小写的、UTF 8 编码的 JSON 对象,最大 520 字节。该名称应该符合 RFC 1035(https://tools.ietf.org/html/rfc1035)。
通用名称硬币名称可以是最长 255 字节的任意二进制字符串,带有 1024 位的相关识别信息。Namecoin 链上的记录仅在大约 200 天或 36,000 个街区内有效,之后需要更新。Namecoin 还推出了.bit
顶级域名,可以使用 Namecoin 注册,也可以使用支持 Namecoin 的专用解析器浏览。下面截图所示的 Namecoin 钱包软件可以用来注册.bit
域名。
输入名称,按下提交按钮后,它将询问配置信息,如 DNS、IP 或身份:
Namecoin 钱包:域名配置
如以下截图所示,masteringblockchain
将在币名区块链上注册为masteringblockchain.bit
:
姓名硬币钱包:显示注册姓名
床角
莱特币是 2011 年发布的比特币源代码的一个分支。它使用 Scrypt 作为 PoW,最初是在 Tenebrix 硬币中引入的。与比特币相比,莱特币允许更快的交易,因为它的块生成时间更快,为 2.5 分钟。此外,由于更快的方块生成时间,难度调整大约每 3.5 天实现一次。硬币总供应量为 8400 万。
Scrypt 是一个顺序存储硬函数,是基于 SHA-256 的 PoW 算法的第一个替代方案。它最初是作为一个基于密码的密钥派生函数 ( PBKDF 提出的。关键的想法是,如果该功能需要大量的内存来运行,那么定制硬件(如 ASICs)将需要更多的 VLSI 面积,这将是不可行的。Scrypt 算法需要在内存中保存大量伪随机位,并以伪随机方式从中导出一个密钥。
该算法基于一种叫做时间-记忆权衡 ( TMTO )的现象。如果放宽内存要求,那么就会导致计算成本增加。换句话说,如果给程序更多的内存,TMTO 会缩短程序的运行时间。这种折衷使得攻击者无法获得更多的内存,因为在定制的硬件上实现它是昂贵且困难的,或者如果攻击者选择不增加内存,那么它会由于高处理要求而导致算法运行缓慢。这意味着很难为这种算法构建 ASICs。
Scrypt 使用以下参数生成派生密钥( Kd ):
- 密码短语:这是一个要散列的字符串
- Salt :这是一个随机字符串,它被提供给 Scrypt 函数(通常是所有的 hash 函数),以防止使用彩虹表的强力字典攻击
- N :这是一个内存/CPU 成本参数,必须是 2 的幂> 1
- P :这是并行化参数
- R :这是块大小参数
- dkLen :这是派生密钥的预期长度,以字节为单位
从形式上讲,这个函数可以写成如下形式:
Kd =埃及(p,s,n,p,r,dkLen)
在应用核心 Scrypt 函数之前,该算法将 P 和 S 作为输入,并应用 PBKDF2 和基于 SHA-256 的 HMAC。然后,输出被馈送到一个称为 ROMix 的算法,该算法在内部使用块混合算法,该算法使用 Salsa20/8 核心流密码来填充需要大存储器来操作的存储器,从而强制执行顺序存储器硬属性。
算法的这一步的输出最终再次被馈送到 PBKDF2 函数,以便产生导出密钥。这个过程如下图所示:
Scrypt 算法
Scrypt 用于 Litecoin 挖掘,具有特定参数,其中 N= 1024 、 R = 1 、 P=1 、 S =随机 80 字节产生 256 位输出。
看来,由于这些参数的选择,开发用于 Litecoin 采矿的 Scrypt 专用集成电路并不十分困难。在用于 Litecoin 挖掘的 ASIC 中,可以开发时序逻辑,其将数据和随机数作为输入,并且应用具有 HMAC-SHA256 的 PBKDF2 算法;然后,结果比特流被馈送到 SALSA20/8 函数,该函数产生散列,该散列再次被向下馈送到 PBKDF2 和 HMAC-256 函数,以产生 256 比特散列输出。与比特币 PoW 的情况一样,在 Scrypt 中,如果输出哈希小于目标哈希(已经在开始时作为输入传递,存储在内存中,并在每次迭代中检查),则函数终止;否则,递增随机数,并且再次重复该过程,直到找到低于难度目标的散列。
埃及 ASIC 设计简化 owchart
- 交易莱特币:和其他币一样,交易莱特币很容易在各种网上交易所进行。莱特币目前的市值为 10,448,974,615 美元。莱特币目前的价格(截至 2018 年 3 月)为 188.04 美元/LTC。
- 开采:莱特币开采可以单人进行,也可以分池进行。目前,用于 Scrypt 的 ASICs 是可用的,通常用于开采 Litecoin。
在 CPU 上挖掘莱特币不再像现在许多其他数字货币那样有利可图。有在线云开采提供商和 ASIC 矿工可用,可用于开采莱特币。Litecoin 采矿从 CPU 开始,通过 GPU 采矿装备发展,最终现在已经达到一个点,即现在需要使用专门的 ASIC 采矿器,如来自 Ehsminer 的 ASIC 加密采矿器 Wolf,希望能够制造一些硬币。一般来说,即使有 ASICs,联营开采也比单独开采更好,因为单独开采不如联营开采有利可图,这是因为联营开采采用的是比例奖励计划。这些挖掘器能够为 Scrypt 算法产生 2 Gh/s 的哈希速率。
- 软件源代码和钱包:莱特币的源代码可在 https://github.com/litecoin-project/litecoin获得。莱特币钱包可以从 https://litecoin.org/下载,可以像比特币核心客户端软件一样使用。
第一个
Primecoin 是市场上第一种引入有用 PoW 的数字货币,而不是比特币基于 SHA256 的 PoW。Primecoin 使用搜索质数作为一种能力。并非所有类型的素数都满足被选为 PoW 的要求。三种类型的素数(称为第一类坎宁安链、第二类坎宁安链和双孪生链)满足在加密货币中使用的 PoW 算法的要求。
难度通过 Primecoin 区块链的连续难度评估方案进行动态调整。基于素数功率的有效验证也非常重要,因为如果验证很慢,则功率是不合适的。因此,选择素数链作为 PoW,因为随着链长度的增加,寻找素数链变得困难,而验证仍然足够快以保证被用作有效的 PoW 算法。
同样重要是,一旦在一个块上验证了电源,它就不能在另一个块上重复使用。在 Primecoin 中,这是通过组合 PoW 证书并将其与子块中的父块的头散列来实现的。
PoW 证书是通过将主链链接到块头散列来生成的。它还要求块头的原点能被块头散列整除。如果是,则进行除法,并且在除法之后,商被用作 PoW 证书。PoW 算法的可调整难度的另一个特性是通过每块而不是每 2016 块引入难度调整来满足的,如比特币的情况。与比特币相比,这是一种更平滑的方法,并允许在哈希能力突然增加的情况下进行重新调整。此外,生成的硬币总数是由社区驱动的,Primecoin 可以生成的硬币数量没有明确的限制。
贸易第一
Primecoins 可以在主要的虚拟货币交易交易所进行交易。在撰写本文时(2018 年 3 月),Primecoin 的当前市值为 17,482,507 美元。它不是很大,但因为 Primecoin 是基于一个新颖的想法,并且背后有一个专门的社区,所以它继续占据一些市场份额。
一个图表,显示了一些与 Primecoin 相关的统计数据
数据来源:https://coinmarketcap.com/currencies/primecoin/
采矿指南
第一步,下载钱包。Primecoin 支持钱包内的原生挖掘,就像最初的比特币客户端一样,但也可以通过各种在线云服务提供商在云上进行挖掘。
下面是一个快速的 Windows 指南,Linux 客户端也可以在http://primecoin.io/downloads.php获得。
- 第一步是从http://primecoin.io/index.php下载 Primecoin 钱包。
- 一旦钱包安装完毕并与网络同步,就可以按照下一步开始挖掘。点击帮助菜单并选择调试窗口菜单项,可在 Primecoin wallet 中打开调试窗口。可以通过在用于启用 Primecoin 挖掘功能的调试窗口的控制台窗口中键入
help
来调用附加帮助:
Primecoin 采矿公司
- 一旦成功执行上述命令,采矿将在 solo 模式下开始。如果你有一台 CPU 较慢的入门级电脑,这可能不是很快和有利可图,但由于这是一种 CPU 开采的加密货币,矿工可以使用具有强大 CPU 的电脑。作为替代方案,可以使用托管强大服务器硬件的云服务:
Primecoin 钱包软件,与网络同步
在 https://github . com/primecoin/prime ecoin 上可以找到 first ecoin 源代码。
原币是一个新概念,它所引入的力量具有重大的科学意义。它仍在使用中,市值为 17,034,198 美元,但从 GitHub 的不活跃中可以明显看出,似乎没有进行积极的开发来进一步开发 Primecoin。
读者可以在http://primecoin.io/bin/primecoin-paper.pdf阅读 Sunny King(化名)的 Primecoin 白皮书,进一步探索 Primecoin。
兹凯许
Zcash 于 2016 年 10 月 28 日上线。这是第一种使用一种特定类型的 ZKPs 的货币,这种 ZKPs 被称为零知识简洁的非交互式知识争论(ZK-斯纳克)来为用户提供完全的隐私。这些证明简明扼要,易于验证;然而,设置初始公共参数是一个复杂的过程。后者包括两个密钥:证明密钥和验证密钥。该过程需要采样一些随机数来构造公共参数。问题是,这些随机数,也称为有毒废物,必须在参数生成后销毁,以防止伪造 Zcash。
为此,Zcash 团队提出了一个多方计算协议,从独立位置协作生成所需的公共参数,以确保不会产生有毒废物。因为这些公共参数需要由 Zcash 团队创建,这意味着仪式中的参与者是可信的。这就是为什么仪式是非常公开的,并且是利用多方计算机制进行的。
这种机制有一个特性,即仪式中的所有参与者都必须妥协以妥协最终的参数。仪式结束后,所有参与者都销毁了用于生成私钥的设备。这一动作消除了设备上参与者的私钥部分的任何痕迹。
ZK-斯纳克必须满足完备性、可靠性、简洁性和非交互性。完整性意味着证明者有一个明确的策略来满足验证者断言为真。另一方面,可靠意味着没有证明者可以说服验证者一个假的陈述是真的。简洁意味着在证明者和验证者之间传递的消息非常小。
最后,非交互属性意味着断言正确性的验证可以在没有任何交互或很少交互的情况下进行。同样,作为一个 ZKP,也需要满足零知识的性质(在第六章、公钥密码学中讨论过)。
Zcash 开发者已经引入了分散匿名支付方案 ( DAP 方案)的概念,该方案在 Zcash 网络中使用,以实现直接和私人支付。这些交易没有透露任何关于支付来源、目的地和金额的信息。Zcash 中有两种类型的地址可用,Z 地址和 T 地址。z 地址基于 ZKPs 并提供隐私保护,而 T 地址类似于比特币。Zcash 的各种属性的快照(在初始慢速启动后)如下所示:
现金属性汇总
Zcash 使用了一种高效的 PoW 方案,名为非对称 PoW (Equihash),它基于广义生日问题。它允许非常有效的验证。这是一个硬存储和抗 ASIC 的功能。Zcash 引入了一个新颖的想法(初始慢速挖掘),这意味着块奖励在一段时间内逐渐增加,直到达到第 20,000 个块。这允许网络的初始缩放和早期矿工的实验,以及 Zcash 开发者在需要时的调整。由于稀缺,缓慢的启动确实对价格产生了影响,因为 ZEC 在推出的第一天价格就达到了大约 25,000 美元。DigiShield 难度调整算法的稍微修改版本已经在 Zcash 中实现。该公式如下所示:
(下一难度)=(上一难度)x SQRT [ (150 秒)/(上一次求解时间)】
交易 Zcash
Zcash 可以在 CryptoGo(https://cryptogo.com)等主要数字货币卖家和交易所购买。另一个可以买卖 Zcash 的交易所是加密机器人 365(【https://cryptorobot365.com】T2)。当 Zcash 推出时,它的价格非常高。如下图所示,价格飙升至每 Zcash 约十个比特币。一些交易所的订单高达每 ZEC 2500 BTC。撰写本文时(2018 年 3 月),ZEC 的价格约为 311 美元:
现金市值和价格
采矿指南
挖掘 Zcash 有多种方法。目前,CPU 和 GPU 挖掘是可能的。各种商业云开采池也提供开采 Zcash 的合同。要使用 CPU 执行单独挖掘,可以在 Ubuntu Linux 上遵循以下步骤:
- 第一步是使用以下命令安装必备组件:
$ sudo apt-get install \
build-essential pkg-config libc6-dev m4 g++-multilib \
autoconf libtool ncurses-dev unzip git python \
zlib1g-dev wget bsdmainutils automake
如果已经安装了必备组件,将显示一条消息,指示组件已经是最新版本。如果尚未安装或比最新的软件包旧,则安装将继续,所需的软件包将被下载,安装将完成。
- 接下来,运行命令从 Git 克隆 Zcash,如下面的屏幕截图所示:
$ git clone https://github.com/zcash/zcash.git
请注意,如果您是第一次运行git
,那么您可能必须接受一些配置更改,这将自动为您完成,但是您可能必须以交互方式完成。
这个命令将在本地克隆 Zcash Git 存储库。输出如下面的屏幕截图所示:
克隆 Zcash Git 存储库
- 下一步是使用以下命令下载验证密钥:
$ ./zcutil/fetch-param.sh
该命令将产生类似如下所示的输出:
Zcash 设置获取 ZK-斯纳克参数
- 一旦这个命令运行,它将把大约 911 MBs 的密钥下载到
~/.zcash-params/
目录中。该目录包含用于证明和验证密钥的文件:
$ pwd
/home/drequinox/.zcash-params
$ ls -ltr
sprout-verifying.key
sprout-proving.key
- 成功完成上述命令后,可以使用以下命令构建源代码:
$ ./zcutil/build.sh -j$(nproc)
这将产生很长的输出;如果一切顺利,它将生成一个zcashd
二进制文件。注意,这个命令以nproc
作为参数,它基本上是一个查找系统中核心或处理器数量并显示该数量的命令。如果您没有这个命令,那么用您系统中的处理器数量替换nproc
。
- 构建完成后,下一步是配置 Zcash。这是通过在
~/.zcash/
目录中创建一个名为zcash.conf
的配置文件来实现的。
示例配置文件如下所示:
addnode=mainnet.z.cash
rpcuser=drequinox
rpcpassword=xxxxxxoJNo4o5c+F6E+J4P2C1D5izlzIKPZJhTzdW5A=
gen=1
genproclimit=8
equihashsolver=tromp
前述配置支持各种功能。第一行添加 mainnet 节点并启用 mainnet 连接。rpcuser
和rpcpassword
是 RPC 接口的用户名和密码。gen = 1
用于启用采矿。genproclimit
是可用于挖掘的处理器数量。最后一行实现了更快的挖掘求解器;如果您想使用标准 CPU 挖掘,这不是必需的。
- 现在可以使用以下命令启动 Zcash:
$ ./zcashd --daemon
一旦启动,这将允许通过zcash-cli
命令行界面与 RPC 界面交互。这和比特币命令行界面差不多。一旦 Zcash 守护进程启动并运行,就可以运行各种命令来查询 Zcash 的不同属性。可以使用 CLI 或通过区块链浏览器在本地查看事务。
Zcash 的区块链探索者可以在:https://explorer.zcha.in/买到。
地址形成
可以使用以下命令生成新的 Z 地址:
$ ./zcash-cli z_getnewaddress zcPDBKuuwHJ4gqT5Q59zAMXDHhFoihyTC1aLE5Kz4GwgUXfCBWG6SDr45SFLUsZhpcdvHt7nFmC 3iQcn37rKBcVRa93DYrA
运行带有getinfo
参数的zcash-cli
命令会产生如下截图所示的输出。显示blocks
、difficulty
、balance
等有价值的信息;
显示 getinfo 输出的屏幕截图
可以使用以下命令生成新的 T 地址:
$ ./zcash-cli getnewaddress
t1XRCGMAw36yPVCcxDUrxv2csAAuGdS8Nny
GPU 挖掘
除了 CPU 挖掘,还有一个 GPU 挖掘选项。目前还没有官方的 GPU miner 然而,开源开发者已经产生了各种概念和工作矿工的证明。Zcash 公司举办了一场公开比赛,鼓励开发人员构建和提交 CPU 和 GPU 矿工。截至发稿时,还没有获奖作品公布。
读者可以通过访问网站https://zcashminers.org/获得更多信息。
还有另一种挖掘:使用各种在线云挖掘提供商提供的云挖掘合同。云挖掘服务提供商代表客户执行挖掘。除了云采矿合同,矿工还可以使用自己的设备,通过使用 stratum 或其他协议的采矿池进行采矿。一个重要的例子是由 NiceHash 提供的 Zcash pool,网址:https://www.nicehash.com。利用这个池子,矿工们可以出售他们的哈希值。
在 Zcash 挖掘池上构建和使用 CPU 挖掘器的示例如下所示。
下载和编译 nheqminer
以下步骤可用于在 Ubuntu Linux 发行版上下载和编译nheqminer
:
$ sudo apt-get install cmake build-essential libboost-all-dev git clone https://github.com/nicehash/nheqminer.git
$ cd nheqminer/nheqminer
$ mkdir build
$ cd build
$ cmake .. make
成功完成所有步骤后,可以使用以下命令运行nhequminer
:
$ ./nhequminer -l eu -u <btc address> -t <number of threads>
nhequminer
releases are available for Windows and Linux at the following link:
https://github.com/nicehash/nheqminer/releases
nheqminer
接受几个参数,比如位置(-l
)、用户名(-u
)和用于挖掘的线程数量(-t
)。
用于 Zcash 的 Linux miner nheqminer
的运行示例如下所示。在这张截图中,支付款项是支付给一个出售 hash power 的比特币地址:
利用 BTC 的地址收取销售 hash power 的费用
这里显示的截屏显示了一个在 Windows 上运行nheqminer
的示例,向一个 Zcash T 地址支付费用以出售 hash power:
使用 Zcash T 地址收取销售哈希函数的费用
Zcash 以一种创新的方式使用 zkp,它们为未来需要固有隐私的应用铺平了道路,如银行、医药或法律。
本节完成了对 Zcash 的介绍;读者可以通过 https://z.cash 在线探索关于 Zcash 的更多信息。
首次硬币发行(ico)
ico 堪比首次公开募股 ( IPO )。就像一家公司发起 IPO 来筹集资金一样,ico 也是为一个初创项目筹集资金。关键的区别在于,首次公开募股是受监管的,属于证券市场(公司股票)的范畴,而 ico 不受监管,不属于任何严格的已建立的市场结构范畴。
然而,鉴于过去几个月推出的一些 ICO 骗局以及对投资者保护的日益担忧,很少有人建议将 ICO 视为证券。最近证券交易委员会 ( SEC )建议所有硬币、ico、数字资产都归入证券的定义。这意味着同样的法律将适用于 ico、比特币和其他适用于证券的数字货币。此外,还建议引入正式的了解您的客户 ( KYC )和反洗钱 ( AML )来解决与洗钱有关的问题。专家建议将豪威测试作为任何 ICO 被认为是安全的一些标准。
另一个区别是,ICO 的设计通常要求投资者使用加密货币进行投资,并使用加密货币支付支出,最常见的是 ICO 推出的新令牌(新加密货币)。这也可以是法定货币,但最常用的是加密货币。例如,在以太坊众筹活动中引入了一种新的令牌,以太。众筹的名称代币销售也很受欢迎,这两个术语可以互换使用。ICO 也叫人群销售。
当一个新的基于区块链的应用程序或组织启动时,一个新的令牌可以与它一起启动,作为访问和使用该应用程序的令牌,并且还可以获得由 ICO 引入的相同令牌支付的奖励。这种令牌向公众发行,以换取一些已经建立的加密货币(例如,比特币或以太坊)或法定货币。其优势在于,当所发布的应用或产品的使用增加时,新令牌的价值也随之增加。这样,最初投资的投资者获得了很好的激励。
2017 年,ico 已经成为新创企业融资的主要工具。第一个成功的 ICO 是以太坊,它在 2014 年筹集了 1800 万美元。最近一个成功的例子是 Tezos,它在几周内赚了 2 . 32 亿美元。另一个例子是 Filecoin,它筹集了超过 2.5 亿美元的资金。
创建新代币的流程已经在区块链以太坊实现了标准化,因此推出 ICO 和发行新代币来交换以太币、比特币或其他加密货币变得相对容易。该标准称为 ECR20,将在下一节中介绍。值得注意的是,使用 ECR20 不是一项要求,可以在新的区块链上发明一种全新的加密货币来启动 ICO,但 ERC20 最近已用于各种 ICO,并提供了一种相对更容易的方法来为 ICO 构建令牌。
最近,ico 也通过以太坊以外的平台提供,如 NEM ( https://nem.io )和恒星(https://www.stellar.org)。
ERC20 tokens
ERC20 令牌是一个接口,它定义了规定令牌要求的各种功能。然而,它并不提供实现细节,而是由实现者来决定。ERC 基本上是以太坊征求意见的缩写,相当于比特币的 BIPs,用于建议以太坊区块链的改进。
这是在 EIP 20 下定义的,你可以在这里了解更多https://github . com/ether eum/EIPs/blob/master/EIPS/EIP-20-token-standard . MD。
以太坊正在成为 ico 的首选平台,因为它能够创建新的令牌,随着 ERC20 标准的推出,它变得更加易于访问。
ECR20 令牌标准定义了描述新令牌的各种特性、规则和属性的各种功能。这些功能包括硬币的总供应量、持有者的总余额、转移功能、批准和津贴功能。
还有其他标准,如 ERC223、ERC777 和称为 ERC827 的 ERC20 扩展也在开发中。 可以参考以下链接了解更多:
- https://github . com/ethereum/eips/issues/827
- https://github . com/ethereum/eips/issues/223
- https://github . com/ethereum/eips/issues/777
摘要
在本章中,我们向您介绍了加密货币的整体情况。我们详细讨论了多个 altcoins,尤其是 Zcash 和 Namecoin。加密货币是一个非常活跃的研究领域,尤其是在可扩展性、隐私和安全方面。还进行了一些研究来发明新的困难重定向算法,以挫败加密货币集中化的威胁。
需要在隐私领域,尤其是区块链的可扩展性方面进行进一步的研究。
现在你应该能体会到 altcoins 的概念以及背后的各种动机了。我们还讨论了一些实际的方面,例如采矿和开始一个新的货币项目,希望这会给你一个强大的基础,使你能够进一步探索这些领域。替代硬币是一个迷人的研究领域,它们为去中心化的未来开辟了许多可能性。