先收藏,再阅读。
一般翻译做"散列",也有直接音译为"哈希"的。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。
53、交易(Transaction)
一次操作,导致账本状态的一次改变,如添加一条记录。
54、链(Chain)
由一个个区块按照发生顺序串联而成,是整个状态变化的日志记录。
55、私人货币
中国最大的私人货币就是腾讯Q币,Q币在腾讯的生态圈里面可以使用,你可以用人民币去买Q币,但是你不能用Q币去换人民币,这本身就是一个私人货币,是某个商圈币。
56、数字货币
私人货币和数字货币的区别就在于,私人货币是一个中心化的机构做背书,数字货币没有中心化的机构来做信用背书,靠数学算法。
57、创世区块
创世区块指区块链上的第一个区块,用来初始化相应的加密货币。
58、账户
帐户是在总账中的记录,由它的地址来索引,总账包含有关该帐户的状态的完整的数据。在一个货币系统里,这包含了货币余额,或许未完成的的交易订单;在其它情况下更复杂的关系可以被存储到账户内。
59、比特币地址
地址用于接收比特币,功能类似银行的存款账号,但不需要实名登记。若只公开地址不必担心里面的比特币被盗走,也没有任何身份信息,也可以离线产生。比特币的地址是由用户的公开密钥经过SHA-散列运算后,再通过RIPEMD-散列运算而得,其长度固定为个比特(bits),通常会利用Base-58将之编码成一串由英文字母和数字所组成的字符串,以方便显示或散布,其特征是皆以“1”或者“3”开头,区分大小写,但不包括“IlO0”等字符,“1”开头的地址长26~34位,“3”开头的地址长34位,例如
"1DwunA9otZZQyhkVvkLJ8DV1tuSwMF7r3v",地址也可编码成快速反应矩阵码(QR-Code)的形式让移动设备能够便捷地读取复制。比特币客户端可以离线生成比特币地址。一个人可以生成并拥有许多比特币地址,并用在不同的交易上,而且除非自己揭露,否则外人无法看出其中的关系。
60、钱包地址
如果我们把ETH钱包简单比作成银行卡账户的话,那么ETH钱包地址就可以看成是银行卡账号。不同的是,ETH地址是可以不存储在网络上的,更是可以独立于你的钱包而存在的。
61、钱包
以不同的协议又分为比特币钱包、以太坊钱包、EOS钱包等。
62、算力
为了挖到矿,参与处理区块的用户端往往需要付出大量的时间和计算力。算力一般以每秒进行多少次hash计算为单位,记为h/s。矿工能获得记账的权力,就能获得比特币新发行出的奖励,这其实取决于其的算力。获得奖励的概率等于他所掌握的算力占全网算力的百分比。哈希碰撞是哈希算法的一种称呼,哈希算法是一种密码学数学算法。每秒能做多少次哈希碰撞,就是其"算力"的代表,目前主流的矿机为10T左右的计算量级,即一台矿机就能每秒做至少10的13次方哈希碰撞,我们可以说,这一台10T的矿机就有10T的算力。一个矿工所掌握的矿机占比特币全网的总算力的百分比是多少,就代表TA在这10分钟记账竞争中能够获胜的概率就是多少。
63、挖矿
挖矿是反复总计交易,构建区块,并尝试不同的随机数,直到找到一个随机数可以符合工作证明的条件的过程。如果一个矿工走运并产生一个有效的区块的话,会被授予的一定数量的币(区块中的交易全部费用)作为奖励。而且所有的矿工开始尝试创建新的区块,这个新区块包含作为父块的最新的区块的散列。
64、分叉
指向同一个父块的2个区块被同时生成的情况,某些部分的矿工看到其中一个区块,其他的矿工则看到另外一个区块。这导致2种区块链同时增长。通常来说,随着在一个链上的矿工得到幸运并且那条链增长的话,所有的矿工都会转到那条链上,数学上分几乎会在4个区块内完结自己。
65、EcoBall生态球
EcoBall生态球是一个全新的、开放兼容的多链并行区块链操作系统,它结合区块链账簿简单明了和DAG快速确认的优点,有效解决比特币和以太坊等系统的体积快速膨胀问题,并力图建立一个可真正商业化的区块链生态系统。
66、比特币/Bitcoin/BTC
一种点对点的去中心化加密货币Bitcoin(比特币)的概念是由中本聪(化名)于年1月3日提出,是一种点对点的、去中心化、全球通用、无排他性、不需第三方机构或个人,基于区块链作为支付技术的加密货币,比特币不依赖中央机构发行,而是通过工作量证明共识机制在区块链中完成,也就是俗称“挖矿”。比特币使用整个P2P网络节点的分布式数据库来确认、验证及记录货币的交易;比特币发行总量2万枚,预计于2年(编者注:年的说法有误)发行完毕,目前市面上流通量超过80%。
67、NFT
NFT是Non-FungibleToken的缩写,中文称为「非同质化代币」,通常是指开发者在以太坊平台上根据ERC标准/协议所发行的代币,它的特性为不可分割、不可替代、独一无二的,简单来说,采用ERC标准/协议而发行的代币就叫做NFT。
68、GameFI:GameFi=NFT+DeFi+游戏
GameFi即GameFinance,将去中心化金融以游戏方式呈现。Defi提供底端逻辑,游戏提供方式载体,NFT承担游戏内的装备、道具。
69、DeFi
DeFi是decentralizedfinance(分布式金融)一词的缩写,通常是指基于以太坊的数字资产和金融智能合约,协议以及分布式应用程序(DApps)。简单来说,它是建立在区块链上的金融软件。
SocialFi:socialFi的定义是社交化金融,顾名思义socialFi即是socialFi和Finance的结合体。当前socialFi板块的龙头币只有ENJ。所以socialFi不是币种
70、GasFee
矿工费(GasFee)就是用于转账激励矿工的费用,即支付给矿工的手续费,当你在以太坊区块链上进行转账时,矿工要把你的交易打包并放上区块链,才能使交易完成,在这过程中会消耗区块链的运算资源,所以要支付费用。
71、ICO
ICO(是InitialCoinOffering缩写),首次币发行,源自股票市场的首次公开发行(IPO)概念,是区块链项目首次发行代币,募集比特币、以太坊等通用数字货币的行为。
中心化交易所:中心化交易所中,用户将数字资产存进交易所,由交易所集中保管和控制。当用户进行交易时,会向交易所提交交易指令,由交易所进行交易撮合,并将成交后结果告知用户。除了充提币以外,整个交易过程全部是在交易所的服务器中完成,与区块链没有交互。
72、去中心化交易所
去中心化交易所中,资金在用户钱包地址或者交易智能合约中,由用户完全控制。用户发起交易时,交易所执行智能合约来完成交易,资产划转在链上完成。交易记录链上可查,公开透明。
73、去中心化钱包
相对于私钥掌握在第三方服务商手中的中心化钱包(交易所),去中心化钱包的私钥则由用户自己保存,资产存储在区块链上,用户是真正的数字货币的持有者,钱包只是帮助用户管理链上资产和读取区块链数据的一个工具,所以也就无法控制、窃取、转移你的资产。
因此去中心化的钱包很难被黑客集中攻击,用户也不必担心钱包服务商的自我窃取或者跑路,因为只要创建钱包的时候自己把私钥保管好,您的资产依然在链上,换个钱包一样可以显示出来的。
注意:去中心化钱包一旦丢失、被盗,在没有备份私钥或助记词的情况下是无法找回的,因此一定要安全、正确的备份您的私钥。
74、以太坊/Ethereum/以太币/Ether/ETH
下一代智能合约和去中心化应用平台Ethereum(以太坊)是一种开源的、图灵完备的、智能合约公有区块链,基于区块链账本用于合约的处理和执行,使得任何人都能够创建合约和去中心化应用,并在其中自有定义所有权规则、交易方式和状态转换函数。Ethereum由VitalikButerin(绰号“V神”)所创立并于年7月进行ICO。以太坊内置名为Ether(以太币)的加密货币。
75、(瑞波)/Ripple/瑞波币/XRP
点对点的去中心化资产传输网络Ripple是一个去中心化的资产传输网络,用于解决金融机构以及用户间的资产转换和信任问题。XRP(瑞波币)是Ripple网络流通的基础货币,任何人均可以创建Ripple账户并通过Ripple支付网络转账任意一种货币,包括美元、欧元、人民币、日元或者比特币,交易确认在几秒以内完成且交易费用几乎为零。瑞波币的最大发行量为0亿枚并随着交易的增多而逐渐减少,瑞波币的运营公司为RippleLabs,其前身为OpenCoin。
76、比特现金/BitcoinCash/BCH
比特币的大区块分叉币BitcoinCash(比特现金)是比特币硬分叉产生的分叉币,比特现金修改比特币的代码,通过将区块大小调整到8M以解决扩容问题并且移除Segwit(隔离见证)。比特现金于年8月1日UTC时间12:37从比特币区块高度开始分叉。
77、莱特币/Litecoin/LTC
最早的第一代加密货币竞争币之一Litecoin(莱特币)是最早的竞争币之一,于年从比特币衍生出来并在技术上具有相同的实现原理,其创新点有两个:其一,使用Scrypt作为工作量证明算法,使得莱特币在普通计算机上更易于挖掘;其二,莱特币网路大约每2.5分钟处理一个区块,使得莱特币网络具有更快的交易确认速度。年6月莱特币闪电网络上线。
78、卡尔达诺/Cardano/艾达币/ADA
第一个由研究为主导的完全开源的区块链技术平台Cardano(卡尔达诺)是全球首创可以证明公平性、安全性,完全透明且不能作弊的、完全开源的分散型游戏平台,特点是完全没有被运营商支配的民主平台。卡尔达诺的目标是构建一个分层次的、集成加密货币(如比特币、莱特币)和智能合约(如以太坊、EOS)的区块链生态系统。卡尔达诺运用独立的SDK系统,个人技术者可以参与游戏开发,并产生游戏竞争以提高游戏的质数,以解决当前*场、线上*场的大部分缺陷。ADA(艾达币)是年初公开的Cardano项目的加密货币,可用于发送和接收数字资金;作为卡尔达诺的中心货币,如需要参与Cardano的游戏必须持有艾达币并通过对战赢取艾达币。Cardano项目发起于年,名称来自于16世纪的意大利数学家GerolamoCardano,Cardano是医生、占星术士、哲学家同时也是个*徒,他运用占星术预言自己的死期并据说于同一日自杀。Ada则是以19世纪英国贵族Adalevea命名,她被称为人类史上的第一位程序员。
79、恒星币/StellarLumens/XLM
数字货币与法定货币之间传输的去中心化网
关StellarLumens(恒星币)是由电驴创始人以及前Ripple创始人JedMcCaleb因管理层分歧而发起的加密货币项目,是基于Ripple代码修改创建的恒星支付网络中的基础加密货币,用于搭建一个数字货币与法定货币之间传输的去中心化网关,使得数字资产可以在银行、支付机构和个人之间快速、稳定、极低成本地转移。恒星币供应量为0亿枚,其中95%将用于免费发放。
80、(小蚁股)/NEO
非盈利的社区化的区块链项目NEO(小蚁股(曾用名))是一个非盈利的社区化的区块链项目,是利用区块链技术和数字身份进行资产数字化,利用智能合约对数字资产进行自动化管理,实现“智能经济”的一种分布式网络。NEO于年正式立项,年6月在Github上实时开源。NEO总发行量1亿枚并在创世区块中一次性创设,并实行双代币机制,另一代币为GAS(小蚁币(曾用名))。
81、区块链技术(BlockChain)
是指通过去中心化的方式集体维护一个可靠数据库的技术方案。该技术方案主要让区块(Block)通过密码学方法相关联起来,每个数据块包含了一定时间内的系统全部数据信息,并且生成数字签名以验证信息的有效性并链接到下一个数据块形成一条主链(Chain)。
82、哈希散列(Hash)
是密码学里的经典技术,把任意长度的输入通过哈西算法,变换成固定长度的由字母和数字组成的输出。
83、数字签名(DigitalSignature)
数字签名算法是一种用户可以用私钥为文档产生一段叫做签名的短字符串数据的处理,以至于任何拥有相应公钥,签名和文档的人可以验证(1)该文件是由特定的私钥的拥有者“签名”的,(2)该文档在签名后没有被改变过。请注意,这不同于传统的签名,在传统签名上你可以在签名后涂抹多余的文字,而且这样做无法被分辨;在数字签名后任何对文档的改变会使签名无效。
84、公钥加密
一种特殊的加密,具有在同一时间生成两个密钥的处理(通常称为私钥和公钥),使得利用一个钥匙对文档进行加密后,可以用另外一个钥匙进行解密。一般地,正如其名字所建议的,个人发布他们的公钥,并给自己保留私钥。
85、确认
当一项交易被区块收录时,我们可以说它有一次确认。矿工们在此区块之后每再产生一个区块,此项交易的确认数就再加一。当确认数达到六及以上时,通常认为这笔交易比较安全并难以逆转。
86、搬砖
一种生动而幽默的说法,学名套利。所谓搬砖,就是指当不同的比特币交易平台存在着价差时,“搬砖工”发现这一情况,在价低的平台买入比特币,再到价高的平台卖出比特币,从而赚取低风险差价的一种投机行为。
87、交易费
如果某笔交易的输出值小于输入值,那么差额就是交易费,该交易费将被增加到该区块的激励中。只要既定数量的电子货币已经进入流通,那么比特币激励机制就可以逐渐转换为完全依靠交易费,那么本货币系统就能够免于通货膨胀。
88、半衰期
这个针对比特币产生的一个概念,即为矿工每验证一个区块即可得到的奖励。从最开始的50BTC,每四年减半,目前是12.5BTC,已经历过2次半衰(50BTC–25BTC–12.5BTC)。
89、PKI体系
在非对称加密中,公钥则可以通过证书机制来进行保护,PKI(PublicKeyInfrastructure)是建立在公私钥基础上实现安全可靠传递消息和身份确认的一个通用框架,PKI框架包含CA\RA、证书数据库三个重要组件,CA(CertificationAuthority):负责证书的颁发和作废,接收来自RA的请求,是最核心的部分,RA(RegistrationAuthority):对用户身份进行验证,校验数据合法性,负责登记,审核过了就发给CA,证书数据库:存放证书,一般采用LDAP目录服务,标准格式采用X.系列。
90、UTXO
UnspentTransactionOutputs是未花费的交易输出,它是比特币交易生成及验证的一个核心概念。交易构成了一组链式结构,所有合法的比特币交易都可以追溯到前向一个或多个交易的输出,这些链条的源头都是挖矿奖励,末尾则是当前未花费的交易输出。所有的未花费的输出即整个比特币网络的UTXO。比特币规定每一笔新的交易的输入必须是某笔交易未花费的输出,每一笔输入同时也需要上一笔输出所对应的私钥进行签名,并且每个比特币的节点都会存储当前整个区块链上的UTXO,整个网络上的节点通过UTXO及签名算法来验证新交易的合法性。这样,节点不需要追溯历史就可以验证新交易的合法性。
91、找零地址(ChangeAddress)
在使用比特币或者类似的加密货币的时候,我们经常会听到找零地址的概念。找零地址是指:发送金额大于接受金额产生的零钱所去到的地址。和我们一般理解的概念不一样,比特币及比特币的类似货币基于UTXO模型来交易。
简单来说,假设一个地址有10个比特币,那么这10个比特币应该是某个或者某些交易导致的,我们假设以前某个人一次性向这个地址里转入了10个比特币,这个交易称为a,现在我想通过这个地址向另外一个地址发送5个比特币,称之为b交易,那么我需要消耗掉a里所有的比特币,也就是10个。但是我还有5个比特币,这剩下的5个比特币我需要再指定一个地址转入(不考虑手续费),这个地址就是找零地址。(这个地址也可以是原地址,这样原地址还是会有5个比特币)
92、交易拼车
当你从交易所或者一些托管钱包提币出来的时候,经常会发现这笔交易中的发出方或者接收方很多,这是由于这笔交易是一个拼车交易。
在上面说的UTXO模型中,你其实应该已经发现了,b交易其实有两个输出方,一个是我需要转到的地址,一个是找零地址。其实每笔交易的输入也可以是多个,输出也可以是多个,交易所或者钱包把同一时间的提现需求在一笔交易中通过不同输出的方式完成,可以有效降低矿工费。
93、图灵机(英语:Turingmachine)
又称确定型图灵机,是英国数学家艾伦·图灵于年提出的一种抽象计算模型,其更抽象的意义为一种数学逻辑机,可以看作等价于任何有限逻辑数学过程的终极强大逻辑机器。
所谓的图灵机就是指一个抽象的机器,它有一条无限长的纸带,纸带分成了一个一个的小方格,每个方格有不同的颜色。有一个机器头在纸带上移来移去。机器头有一组内部状态,还有一些固定的程序。在每个时刻,机器头都要从当前纸带上读入一个方格信息,然后结合自己的内部状态查找程序表,根据程序输出信息到纸带方格上,并转换自己的内部状态,然后进行移动。
94、区块链盲(Blockchain-blindness)
UTXO看不到区块链的数据,例如随机数和上一个区块的哈希。这一缺陷剥夺了脚本语言所拥有的基于随机性的潜在价值,严重地限制了博彩等其它领域应用。
95、图灵测试
年到年,图灵在国家物理实验室负责自动计算引擎(ACE)的研究工作。年,他成为曼彻斯特大学计算机实验室的副主任,负责最早的真正的计算机---曼彻斯特一号的软件工作。在这段时间,他继续作一些比较抽象的研究,如“计算机械和智能”。图灵在对人工智能的研究中,提出了一个叫做图灵测试(Turingtest)的实验,尝试定出一个决定机器是否有感觉的标准。
年,图灵写了一个国际象棋程序。可是,当时没有一台计算机有足够的运算能力去执行这个程序,他就模仿计算机,每走一步要用半小时。他与一位同事下了一盘,结果程序输了。
后来美国新墨西哥州洛斯阿拉莫斯国家实验室的研究组根据图灵的理论,在ENIAC上设计出世界上第一个电脑程序的国际象棋-洛斯阿拉莫斯国际象棋。
96、缺少图灵完备性
这就是说,尽管比特币脚本语言可以支持多种计算,但是它不能支持所有的计算。最主要的缺失是循环语句。不支持循环语句的目的是避免交易确认时出现无限循环。理论上,对于脚本程序员来说,这是可以克服的障碍,因为任何循环都可以用多次重复if语句的方式来模拟,但是这样做会导致脚本空间利用上的低效率,例如,实施一个替代的椭圆曲线签名算法可能将需要次重复的乘法,而每次都需要单独编码。
97、价值盲(Value-blindness)
UTXO脚本不能为账户的取款额度提供精细的的控制。例如,预言机合约(oraclecontract)的一个强大应用是对冲合约,A和B各自向对冲合约中发送价值0美元的比特币,30天以后,脚本向A发送价值0美元的比特币,向B发送剩余的比特币。虽然实现对冲合约需要一个预言机(oracle)决定一比特币值多少美元,但是与现在完全中心化的解决方案相比,这一机制已经在减少信任和基础设施方面有了巨大的进步。然而,因为UTXO是不可分割的,为实现此合约,唯一的方法是非常低效地采用许多有不同面值的UTXO(例如对应于最大为30的每个k,有一个2^k的UTXO)并使预言机挑出正确的UTXO发送给A和B。
98、缺少状态
UTXO只能是已花费或者未花费状态,这就没有给需要任何其它内部状态的多阶段合约或者脚本留出生存空间。这使得实现多阶段期权合约、去中心化的交换要约或者两阶段加密承诺协议(对确保计算奖励非常必要)非常困难。这也意味着UTXO只能用于建立简单的、一次性的合约,而不是例如去中心化组织这样的有着更加复杂的状态的合约,使得元协议难以实现。二元状态与价值盲结合在一起意味着另一个重要的应用-取款限额-是不可能实现的。
99、同态加密
同态加密(HomomorphicEncryption)是一种特殊的加密方法,允许对密文进行处理得到仍然是加密的结果,即对密文直接进行处理,跟对明文进行处理再加密,得到的结果相同。从代数的角度讲,即同态性。
如果定义一个运算符$$\triangle{}$$,对加密算法E和解密算法D,满足:
$$E(X\triangle{}Y)=E(X)\triangle{}E(Y)
$$则意味着对于该运算满足同态性。
同态性在代数上包括:加法同态、乘法同态、减法同态和除法同态。同时满足加法同态和乘法同态,则意味着是代数同态,即全同态。同时满足四种同态性,则被称为算数同态。
同态加密的问题最早是由RonRivest、LeonardAdleman和MichaelL.Dertouzos在年提出,但第一个“全同态”的算法到年才被克雷格·金特里(CraigGentry)证明。
仅满足加法同态的算法包括Paillier和Benaloh算法;仅满足乘法同态的算法包括RSA和ElGamal算法。
同态加密在云时代的意义十分重大。目前,从安全角度讲,用户还不敢将敏感信息直接放到第三方云上进行处理。如果有了比较实用的同态加密技术,则大家就可以放心的使用各种云服务了。
遗憾的是,目前已知的同态加密技术需要消耗大量的计算时间,还远达不到实用的水平。
、P2SH脚本
输出脚本由支付者创建,他们(钱花出去之后)不怎么关心他们消费的比特聪的长期安全或者对别人是否有用。
收款人则关心输出脚本指定的条件。如果收款人愿意,他们可以请求支付者使用某种特定脚本。遗憾的是,定制的脚本没有短小的比特币地址方便,也不像P2PKH的公钥哈希方案(P2PKHpubkeyhashes)那样容易保护。
为了解决这些问题,“支付到脚本哈希”(P2SH)交易在年被创建,它让支付者创建一个输出脚本,里边包含另一个脚本的哈希,另一个脚本称为“认领脚本”。
、“幽灵“协议("GreedyHeaviestObservedSubtree"(GHOST)protocol)
是由YonatanSompolinsky和AvivZohar在年12月引入的创新。幽灵协议提出的动机是当前快速确认的块链因为区块的高作废率而受到低安全性困扰;因为区块需要花一定时间(设为t)扩散至全网,如果矿工A挖出了一个区块然后矿工B碰巧在A的区块扩散至B之前挖出了另外一个区块,矿工B的区块就会作废并且没有对网络安全作出贡献。此外,这里还有中心化问题:如果A是一个拥有全网30%算力的矿池而B拥有10%的算力,A将面临70%的时间都在产生作废区块的风险而B在90%的时间里都在产生作废区块。因此,如果作废率高,A将简单地因为更高的算力份额而更有效率,综合这两个因素,区块产生速度快的块链很可能导致一个矿池拥有实际上能够控制挖矿过程的算力份额。
、默克尔树
默克尔树是一种二叉树,由一组叶节点、一组中间节点和一个根节点构成。最下面的大量的叶节点包含基础数据,每个中间节点是它的两个子节点的哈希,根节点也是由它的两个子节点的哈希,代表了默克尔树的顶部。默克尔树的目的是允许区块的数据可以零散地传送:节点可以从一个源下载区块头,从另外的源下载与其有关的树的其它部分,而依然能够确认所有的数据都是正确的。之所以如此是因为哈希向上的扩散:如果一个恶意用户尝试在树的下部加入一个伪造的交易,所引起的改动将导致树的上层节点的改动,以及更上层节点的改动,最终导致根节点的改动以及区块哈希的改动,这样协议就会将其记录为一个完全不同的区块(几乎可以肯定是带着不正确的工作量证明的)。
、共识机制
区块链从本质上而言是一种分布式账本技术。传统的账本,通常会以数据库的形式,集中存储在银行或公司的服务器节点上。而在区块链的网络中,每个节点都会保有一份完整的账本,且所有节点的账本内容完全一致。每个节点都可以根据自己本地的账本去查找交易,也可以往账本中添加交易。
这样就带来了一个问题,如果所有节点同时一起写入账本数据,那么肯定数据会不一致。因此需要一种机制来保证区块链中的每一区块只能由一个节点来负责写入,并且让所有其他节点一致认同这次写入。如何选出写入账本数据的节点,这就是共识机制。
、PBFT
实用拜占庭容错协议(PBFT,PracticalByzantineFaultTolerance)是MiguelCastro(卡斯特罗)和BarbaraLiskov(利斯科夫)在年提出来的,解决了原始拜占庭容错算法(即上文中的口头协议)效率不高的问题,将算法复杂度由指数级降低到多项式级,使得拜占庭容错算法在实际系统应用中变得可行。
PBFT算法的结论是n=3f+1n是系统中的总节点数,f是允许出现故障的节点数。换句话说,如果这个系统允许出现f个故障,那么这个系统必须包括n个节点,才能解决故障。这和上文口头协议的结论一样,或者这么说,PBFT是优化了口头协议机制的效率,但是结论并未改变。
、Ethereum
由于ASIC矿机被大量运用在比特币的挖矿过程中,所以如果出现其他基于hash运算达到共识的区块链,则很容易受到原本服务于比特币的ASIC矿机攻击。因此Ethereum在设计其PoW共识算法的时候,就意识到应该让算法在普通的个人电脑上运行更有优势,从而避免被ASIC进行攻击。
、DelegatedMethods
以上的PoW和PoS的挖矿过程,是全网所有节点共同参与的,每一时刻都有成千上万个节点同时去争取产出下一个block,因此会时有发生区块链分叉(fork)的问题。即同一时刻,两个节点同时产出了nextblock,但由于网络时延的问题,block产出的时候两个节点并不知道有其他节点已经产出了另一个block,因此这两个block都被发布到了网络中。[5]中对分叉的问题有详细的描述,可以进行参考。
正是由于分叉的存在,block的产出时间间隔不能太短。各区块链通过动态调整的挖矿难度,将block时间间隔稳定在自己期望的水平。例如最初比特币的间隔是10分钟,后续的以太坊是15秒左右。如果时间间隔进一步调短(即降低挖矿难度),分叉问题就会大量显现,不利于共识的达成和系统的稳定。
、冷存储
该术语指的是离线保存比特币。当比特币的私钥被创建,同时将该私钥存储在安全的离线环境时,就实现了冷存储。冷存储对于任何比特币持有者来说是重要的。在线计算机在黑客面前是脆弱的,不应该被用于存储大量的比特币。
、染色币
比特币2.0开源协议允许开发者在比特币区块链之上,利用它的超越货币的功能创建数字资产。
、共识
当网络中的许多节点,通常是大部分节点,都拥有相同的本地验证的最长区块时,称为共识。不要与共识规则混淆。
、难度
整个网络会通过调整“难度”这个变量来控制生成工作量证明所需要的计算力。
、难度重定
全网中每新增个区块,全网难度将重新计算,该新难度值将依据前个区块的哈希算力而定。
、难度目标
使整个网络的计算力大致每10分钟产生一个区块所需要的难度数值即为难度目标。
、双重支付
双重支付是成功支付了1次以上的情况。比特币通过对添加到区块中的每笔交易进行验证来防止双重支付,确保交易的输入没有被支付过。
、ECDSA
椭圆曲线数字签名算法(ECDSA)是比特币使用的加密算法,以确保资金只能被其正确拥有者支付。
、超额随机数
随着难度增加,矿工通常在循环便利4亿次随机数值后仍未找到区块。因为coinbase脚本可以存储2到字节的数据,矿工开始使用这个存储空间作为超额nonce空间,允许他们利用一个更大范围的区块头哈希值来寻找有效的区块。
、创世块
创世区块指区块链上的第一个区块,用来初始化相应的加密货币。
、硬件钱包
硬件钱包是一种特殊的比特币钱包,硬件钱包可以将用户的私钥存储在安全的硬件设备中。
、哈希锁
哈希锁是限制一个输出花费的限制对象,其作用一直持续到指定数据片段公开透露。哈希锁有一个有用的属性,那就是一旦任意一个哈希锁被公开打开,其他任何安全使用相同密钥的哈希锁也可以被打开。这使得可能创建多个被同意哈希锁限制的输出,这些支出将在同一时间被花费。
、HD协议
层级确定性(HD)密钥创建和传输协议(BIP32),该协议允许按层级方式从父密钥创建子密钥。
、HD钱包
使用创建层次确定的钥匙和BIP32传输协议的钱包。
、HD钱包种子
HD钱包种子或根种子是一个用于为HD钱包生成主私钥和主链码所需种子的潜在简短数值。
、哈希时间锁定合约
哈希时间锁定合约(HTLC)是一类支付方式,其使用哈希锁和时间锁来锁定交易。解锁需要接收方提供通过加密支付证明承认在截止日期之前收到了支付,或者接收方丧失了认领支付的能力,此时支付金额将返回给支付方。
、KYC
充分了解你的账户(KYC,Knowyourcustomer)是一个商业过程,用于认证和验证顾客的身份信息。也指银行对这些活动的监管。
、LevelDB
LevelDB是一个开源的硬盘键值对数据库。LevelDB是一个用于持久性绑定多个平台的轻量级、单用途的库。
、锁定时间
锁定时间(技术上来说是nLockTime)是交易的一部分,其表明该交易被添加至区块链中的最早时间或区块。
、交易池
比特币内存池是区块中所有交易数据的集合,这些交易已经被比特币节点验证,但为被确认。
、随机数
随机数是比特币区块中一个32位(4字节)的字段,在设定了该值后,才能计算区块的哈希值,其哈希值是以多个0开头的。区块中的其他字段值是不变的,因为他们有确定的含义。
、离线交易
离线交易是区块链外的价值转移。当在链交易(通常简单来说就是一个交易)修改区块链并依赖区块来决定它的有效性时,离线交易则依赖其他方法来来记录和验证该交易。
、操作码
操作码来源于比特币脚本语言,通过操作码可以在公钥脚本或签名脚本中实现压入数据或执行函数的操作。
、开放资产协议
开放资产协议是一个建立在比特币区块链纸上简单有效的协议。它允许用户创建资产的发行和传输。开放资产协议是颜色币概念的一个进化。
、OP_RETURN
一个用在OP_RETURN交易中的一种输出操作码。不要与OP_RETURN交易混淆。
、OP_RETURN交易
OP_RETURN在比特币核心0.9.0中默认的一种被传播和挖出的交易类型,在随后的版本中添加任意数据至可证明的未花费公钥脚本中,全节点中无需将该脚本存储至他们的UTXO数据库中。不要与OP_RETURN操作码混淆。
、孤块
孤块由于父区块未被本地节点处理的区块,所以他们还不能被完全验证。
、孤立交易
孤立交易是指那些因为缺少一个或多个输入交易而无法进入交易池的交易。
、交易输出
交易输出(TxOut)是交易中的输出,交易输出中包含两个字段:1.输出值字段:用于传输0或更多聪;2.公钥脚本:用于确定这些聪需在满足什么条件的情况下才可花费。
、P2PKH
支付到比特币地址的交易包含支付公钥哈希脚本(P2PKH)。由P2PKH脚本锁定的交易输出可以通过给出由相应私钥创建的公钥和数字签名来解锁(消费)。
、P2SH
P2SH是一种强大的、新型的、且能大大简化复杂交易脚本的交易类型而引入。通过使用P2SH,详细描述花费输出条件的复杂脚本(赎回脚本)将不会出现在锁定脚本中。相反,只有赎回脚本哈希包含在锁定脚本中。
、P2SH地址
P2SH地址是基于Base58编码的一个含有20个字节哈希的脚本。P2SH地址采用“5”前缀。这导致基于Base58编码的地址以“3”开头。P2SH地址隐藏了所有的复杂性,因此,运用其进行支付的人将不会看到脚本。
、P2WPKH
P2WPKH签名包含了与P2PKH花费相同的信息。但是签名信息放置于见证字段,而不是签名脚本字段中。公钥脚本也被修改了。
、P2WSH
P2WSH与P2SH的不同之处在于加密证据存放位置从脚本签名字段转变至见证字段,公钥脚本字段也被改变。
、纸钱包
在大多数特定含义下,纸钱包是一个包含所有必要数据的文件,这些数据用于生成比特币私钥,形成密钥钱包。然而,人们通常使用该术语来表达以物理文件形式离线存储比特币的方式。第二个定义也包括纸密钥和可赎回编码。
、支付通道
微支付通道和支付通道是设计用于允许用户生成多个比特币交易,且无需提交所有交易至比特币区块链中。在一个典型的支付通道中,只有两个交易被添加至区块链中,但参与双方可以生成无限制或接近无限制数量的支付。
、奖励
每一个新区块中都有一定量新创造的比特币用来奖励算出工作量证明的矿工。现阶段每一区块有12.5比特币的奖励。
、RIPEMD-
RIPEMD-是一个位的加密哈希函数。RIPEMD-是RIPEMD的加强版,其哈希计算后的结果是位哈希值。通过RIPEMD-加密期望能实现在未来的10年或更长时间都是安全的。
、脚本
比特币使用脚本系统来处理交易。脚本有着类Forth语言、简单、基于堆栈以及从左向右处理的特点。脚本故意限定为非图灵完备的,没有循环计算功能。
、PubKey(公钥脚本)
脚本公钥或者公钥脚本是包含在交易输出中的脚本。该脚本设置了比特币花费需满足的条件。满足条件的数据可以由签名脚本提供。
、Sig(签名脚本)
签名脚本是有支付端生成的数据,该数据几乎总是被用作满足公钥脚本的变量。
、SHA
安全哈希是有NIST(国家标准技术研究所)发布的加密哈希函数族。
软分叉:软分叉是区块链中的一个短暂分叉,通常是由于矿工在不知道新共识规则的情况下,未对其使用节点进行升级而产生的。不要与分叉、硬分叉、软分叉或者Git分叉混淆。
、SPV(简化支付验证)
简化支付验证是在无需下载所有区块的情况对特定交易进行验证的方法。该方法被用在一些比特币轻量级客户端中。
、旧块
旧块是那些被成功挖出,但是没有包含在当前主链上的区块,很有可能是同一高度的其他区块优先扩展了区块链长度导致的。
时间锁:时间锁是一种阻碍类型,用于严格控制一些比特币只能在将来某个特定时间和区块才能被支出。时间锁在很多比特币合约中起到了显著的作用,包括支付通道和哈希时间锁合约。
、环签名
环签名由Rivest,shamir和Tauman三位密码学家在年首次提出。环签名属于一种简化的群签名。
签名者首先选定一个临时的签名者集合,集合中包括签名者自身。然后签名者利用自己的私钥和签名集合中其他人的公钥就可以独立的产生签名,而无需他人的帮助。签名者集合中的其他成员可能并不知道自己被包含在其中。
、数字证书
数字证书用来证明某个公钥是谁的。
对于数字签名应用来说,很重要的一点就是公钥的分发。一旦公钥被人替换,则整个安全体系将被破坏掉。
怎么确保一个公钥确实是某个人的原始公钥?这就需要数字证书机制。顾名思义,数字证书就是像一个证书一样,证明信息和合法性。由证书认证机构(CertificationAuthority,CA)来签发。
数字证书内容可能包括版本、序列号、签名算法类型、签发者信息、有效期、被签发人、签发的公开密钥、CA数字签名、其它信息等等。其中,最重要的包括签发的公开密钥、CA数字签名两个信息。
因此,只要通过这个证书就能证明某个公钥是合法的,因为带有CA的数字签名。更进一步地,怎么证明CA的签名合法不合法呢?类似的,CA的数字签名合法不合法也是通过CA的证书来证明的。
主流操作系统和浏览器里面会提前预置一些CA的证书(承认这些是合法的证书),然后所有基于他们认证的签名都会自然被认为合法。
*未经许可,禁止转载
作者简介:郭志浩律师,北京市盈科(深圳)律师事务所合伙人兼盈科深圳法律科技委副主任。现任深圳区块链协会法律专委会执行主任、“国家区块链应用操作员”职称考试命题人教材编撰人、中国法学会成员、多所大学兼职/客座教授、省法治教育研究会理事等。其经典案例已编入中国法律出版社《辩策》《盈论》等著作。多次受邀《中国产经新闻》《民主与法治》《中国经营报》《对话律师》等国家级期刊的采访。