编者按:本文来自 星传媒STARMEDIA(ID:Star_Media1),作者:星小白,Odaily星球日报经授权发布。
区块链技术结构
数据层 Data Layer
主要描述区块链的物理形式,是区块链上从创世区块起始的链式结构,包含了区块链的区块数据、链式结构以及区块上的随机数、时间戳、公私钥数据等,是整个区块链技术中最底层的数据结构。
网络层 Network Layer
主要通过 P2P 技术实现分布式网络机制,包括 P2P 组网机制、数据传播机制和数据验证机制,因此区块链本质上是一个 P2P 的网络,具备自动组网的机制,节点之间通过维护一个共同的区块链结构来保持通信。
共识层 Consensus Layer
主要包含共识算法以及共识机制,能让高度分散的节点在去中心化的区块链网络中高效地针对区块数据的有效性达成共识,是区块链的核心技术之一,也是区块链社区的治理机制。目前,至少有数十种共识机制算法,包含工作量证明、权益证明、权益授权证明、燃烧证明、重要性证明等。
数据层、网络层、共识层是构建区块链技术的必要元素,缺少任何一层都不能称之为真正意义上的区块链技术。
激励层 Actuator Layer
主要包括经济激励的发行制度和分配制度,其功能是提供一定的激励措施,鼓励节点参与区块链中安全验证工作,并将经济因素纳入到区块链技术体系中,激励遵守规则参与记账的节点,并惩罚不遵守规则的节点。
合约层 Contract Layer
主要包括各种脚本、代码、算法机制及智能合约,是区块链可编程的基础。将代码嵌入区块链或是令牌中,实现可以自定义的智能合约,并在达到某个确定的约束条件下,无需经由第三方就能自动执行,是区块链去信任的基础。
应用层 Application Layer
应用层封装了各种应用场景和案例,类似于电脑操作系统上的应用程序、互联网浏览器上的门户网站、搜寻引擎、电子商城或手机端上的 APP,将区块链技术应用部署在如以太坊、EOS、QTUM 上并在现实生活场景中落地。未来的可编程金融和可编程社会也将会搭建在应用层上。
激励层、合约层和应用层不是每个区块链应用的必要因素,一些区块链应用并不完整包含此三层结构。
区块数据
区块 Block
区块是在区块链网络上承载交易数据的数据包,是一种被标记上时间戳和之前一个区块的哈希值的数据结构,区块经过网络的共识机制验证并确认区块中的交易。
父块 Parent Block
父块是指区块的前一个区块,区块链通过在区块头记录区块以及父块的哈希值来在时间上排序。
区块头 Block Header
记录当前区块的元信息,包含当前版本号、上一区块的哈希值、时间戳、随机数、Merkle Root 的哈希值等数据。此外,区块体的数据记录通过 Merkle Tree 的哈希过程生成唯一的 Merkle Root 记录于区块头。
区块体 Block Body
记录一定时间内所生成的详细数据,包括当前区块经过验证的、区块创建过程中生成的所有交易记录或是其他信息,可以理解为账本的一种表现形式。
哈希值、散列值 Hash
哈希值通常用一个短的随机字母和数字组成的字符串来代表,是一组任意长度的输入信息通过哈希算法得到的“数据指纹”。因为计算机在底层机器码是采用二进制的模式,因此,通过哈希算法得到的任意长度的二进制值映射为较短的固定长度的二进制值,即哈希值。此外,哈希值是一段数据唯一且极其紧凑的数值表示形式,如果通过哈希一段明文得到哈希值,哪怕只更改该段明文中的任意一个字母,随后得到的哈希值都将不同。
时间戳 Timestamp
时间戳从区块生成的那一刻起就存在于区块之中,是用于标识交易时间的字符序列,具备唯一性,时间戳用以记录并表明存在的、完整的、可验证的数据,是每一次交易记录的认证。
随机数、一次性的随机数 Nonce
Nonce 是指,“只使用一次的随机数”。在挖矿中,是一种用于挖掘加密货币的自动生成的、毫无意义的随机数,在解决数学难题的问题中被使用一次之后,如果不能解决该难题则该随机数就会被拒绝,而一个新的 Nonce 也会被测试出来并且直到问题解决,当问题解决时矿工就会得到加密货币作为奖励。在区块结构中,Nonce 是基于工作量证明所设计的随机数字,通过难度调整来增加或减少其计算时间;在信息安全中,Nonce 是一个在加密通信只能使用一次的数字;在认证协议中,Nonce 是一个随机或伪随机数,以避免重放攻击。
梅克尔树 Merkle Tree
梅克尔树(又叫哈希树)是一种二叉树,是一种高效和安全的组织数据的方法,被用来快速查询验证特定交易是否存在,由一个根节点、一组中间节点和一组叶节点组成。它使用哈希算法将大量的书面信息转换成一串独立的字母或数字。最底层的叶节点包含存储数据或其哈希值,每个中间节点是它的两个子节点内容的哈希值,根节点也是由它的两个子节点内容的哈希值组成。
区块容量 Block Size
区块链的每个区块,都是用来承载某个时间段内的数据的,每个区块通过时间的先后顺序,使用密码学技术将其串联起来,形成一个完整的分布式数据库,区块容量代表了一个区块能容纳多少数据的能力。比特币的区块链容量是2M。
未花费的交易输出
Unspent Transaction Output(UTXO)
未花费的交易输出是一个包含交易数据和执行代码的数据结构,可以理解为收到的但尚未花费的加密货币清单。比特币和其他加密货币在其区块链技术中使用 UTXO,以验证一个人是否拥有未使用的加密货币可用于支出。
链式结构
链 Chain
链是由区块按照发生的时间顺序,通过区块的哈希值串联而成,是区块交易记录及状态变化的日志记录。
链下 Offff-chain
区块链系统从功能角度讲,是一个价值交换网络,链下是指不存储于区块链上的数据。
无代币区块链 Token-Less Blockchain
即区块链并不通过代币进行价值交换,一般出现在不需要在节点之间转移价值并且仅在不同的已被信任方之间共享数据的情况下,如联盟链、私有链。
创世区块 Genesis Block
区块链中的第一个区块被称为“创世”区块。创世区块一般用于初始化,不带有交易信息。
区块高度 Block Height
一个区块的高度是指在区块链中它和创世区块之间的块数。
分叉 Fork
在区块链中,由矿工挖出区块并将其链接到主链上,一般来讲同一时间内只产生一个区块,如果发生同一时间内有两个区块同时被生成的情况,就会在全网中出现两个长度相同、区块里的交易信息相同但矿工签名不同或者交易排序不同的区块链,这样的情况叫做分叉。
软分叉 Soft Fork
指在区块链或去中心化网络中向前兼容的分叉。向前兼容意味着,分叉后,当新共识规则发布后,在去中心化架构中节点不一定要升级到新的共识规则,因为软分叉的新规则仍旧符合老的规则,所以未升级的节点仍旧能接受新的规则。
硬分叉 Hard Fork
指在区块链或去中心化网络中不向前兼容的分叉,硬分叉对加密货币使用的技术进行永久更改,这种变化使得所有的新数据块与原来的块不同,旧版本不会接受新版本创建的区块,要实现硬分叉所有用户都需要切换到新版本协议上。如果新的硬分叉失败,所有的用户将回到原始数据块。
幽灵协议 GHOST Protocol
通过幽灵协议,区块可以包含不只是他们父块的哈希值,也包含其父块的父块的其他子块(被称为叔块)的陈腐区块的哈希值,这确保了陈腐区块仍然有助于区块链的安全性,并能够获得一定比例的区块奖励,减少了大型矿工在区块链上的中心化倾向问题。
陈腐区块 Stale Block
是父块的父块的“其他”子块,或更一般的说是祖先的其他子块,但不是自己的祖先,如果 A 是 B 的一个叔块,那 B 是 A 的侄块。
孤块 Orphan Block
孤块是一个被遗弃的数据块。因为很多节点都在维护区块链并同时创建多个区块,但是一次只能有一个被继续继承,而其它被遗弃的数据块就是孤块。
密码学 Cryptography
密码学是数学和计算机科学的分支,同时其原理大量涉及信息论。密码学不只关注信息保密问题,还同时涉及信息完整性验证(消息验证码)、信息发布的不可抵赖性(数字签名)、以及在分布式计算中产生的来源于内部和外部的攻击的所有信息安全问题。
加密 Cipher
加密是一系列使信息不可读的过程,它能使信息加密也能使信息加密后能够再次可读,在加密货币中使用的密码也使用由字母和数字组成的密钥,该密钥必须用于解密密码。
加密算法 Encryption Algorithm
加密算法是一个函数,也可以视为是一把钥匙,通过使用一个加密钥匙,将原来的明文文件或数据转化成一串不可读的密文代码。加密流程是不可逆的,只有持有对应的解密钥匙才能将该加密信息解密成可阅读的明文。加密使得私密数据可以在低风险的情况下,通过公共网络进行传输,并保护数据不被第三方窃取、阅读。
非对称加密 Asymmetric Cryptography
非对称加密是一种保证区块链安全的基础技术。该技术含有两个密钥:公钥和私钥,首先,系统按照某种密钥生成算法,将输入经过计算得出私钥,然后,采用另一个算法根据私钥生成公钥,公钥的生成过程不可逆。由于在现有的计算能力条件下难以通过公钥来穷举出私钥(即计算上不可行),因此可以认为数据是安全的,从而能够保证区块链的数据安全。
同态加密 Homomorphic Encryption
同态加密是一种特殊的加密方法,允许对密文根据特定的代数运算方式进行处理后得到的仍然是加密的结果,将其解密所得到的结果与对明文进行同样的运算结果是一样的。即“对密文直接进行处理”与“对明文进行处理后并加密”其结果是一样的,这项技术可以在加密的数据中进行诸如检索、比较等操作而无需对数据先进行解密,从根本上解决将数据委托给第三方时的保密问题。
公钥加密 Public Key Cryptography
公钥加密是一种特殊的加密手段,具有在同一时间生成两个密钥的处理(私钥和公钥),每一个私钥都有一个相对应的公钥,从公钥不能推算出私钥,并且被用其中一个密钥加密了的数据,可以被另外一个相对应的密钥解密。这套系统使得节点可以先在网络中广播一个公钥给所有节点,然后所有节点就可以发送加密后的信息给该节点,而不需要预先交换密钥。
RSA 加密算法 RSA Algorithm
RSA 公开密钥密码体制是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。它通常是先生成一对 RSA 密钥,其中之一是保密密钥,由用户保存; 另一个为公开密钥,可对外公开,甚至可在网络服务器中注册。
椭圆加密算法 Elliptic Curve Cryptography(ECC)
椭圆加密算法是一种公钥加密体制,最初由 Koblitz 和 Miller 两人于 1985 年提出,其数学基础是利用椭圆曲线上的有理点构成 Abel 加法群上椭圆离散对数的计算困难性。
明文 Plaintext
在密码学中,明文是指传送方想要接收方获得的可读信息。明文经过加密所产生的信息被称为密文,而密文经过解密而还原得来的信息被称为明文。
密文 Ciphertext
在密码学中,密文是明文经过加密算法所产生的。因为密文是一种除非使用恰当的算法进行解密,否则人类或计算机是不可以直接阅读理解的加密形态,可以理解为被加密的信息。
环签名 Ring Signatures
因签名中参数 Ci(i=1,2,…,n)根据一定的规则首尾相接组成环状而得名。其实就是实际的签名者用其他可能签字者的公钥产生一个带有断口的环,然后用私钥将断口连成一个完整的环。任何验证人利用环成员的公钥都可以验证一个环签名是否由某个可能的签名人生成。
数字签名 Digital Signatures
数字签名(又称公钥数字签名、电子签名)是一种类似写在纸上的签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法,在网络上可以使用数字签名来进行身份确认。数字签名是一个独一无二的数值,若公钥能通过验证,那我们就能确定对应的公钥的正确性,数字签名兼具可确认性和不可否认性。
多重签名 Multi-Signatures
多重签名意味着在交易发生之前需要多个签名或批准。多重签名会增加加密货币的安全性,这样一个人就不能在未经他人同意的情况下把所有的数字货币都拿走。
数字证书 Digital Certifificate
数字证书是区块链中标识各个节点的身份信息的一串数字,用以证明公钥的归属以及内容信息的合法性,在区块链的非对称加密中,一旦通过中间人攻击将公钥替换后将会破坏区块链的安全体系,因此通过共识机制建立互相承认的数字证书机制,在不需要第三方的情况下识别数据的合法性。
哈希、散列 Hash
哈希又称作“散列”,是一种数学计算机程序,它接收任何一组任意长度的输入信息,通过哈希算法变换成固定长度的数据指纹输出形式,如字母和数字的组合,该输出就是“哈希值”。哈希使存储和查找信息速度更快,因为哈希值通常更短所以更容易被找到。同时哈希能够对信息进行加密,一个好的哈希函数在输入域中很少出现哈希冲突,哈希一个特定文档的结果总是一样的,但找到具有相同哈希值的两个文件在计算上是计算上不可行的。
安全哈希算法 SHA 256
SHA 256 是 SHA 系列算法之一,由美国国安局设计、美国国家标准与技术研究院发布的一套哈希算法,由于其摘要长度为 256bits,故称 SHA 256。SHA 256 是保护数字信息的最安全的方法之一。
密钥 Secret Key
密钥是用于加密或解密信息的一段参数,在非对称加密系统中,是通过利用公钥(账户)与私钥(密码)的配合而实现的。
公钥 Public Key
公钥与私钥是通过一种算法得到的一个密钥对,公钥是密钥对中公开的部分,私钥则是非公开的部分,公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。
私钥 Private Key
公钥与私钥是通过一种算法得到的一个密钥对,公钥是密钥对中公开的部分,私钥则是非公开的部分,私钥是指与一个地址(地址是与私钥相对应的公钥的哈希值)相关联的一把密钥,是只有你自己才知道的一串字符,可用来操作账户里的加密货币。
零知识证明 Zero-Knowledge Proof
证明者和验证者之间进行交互,证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。
计算上不可行 Computationally Feasible
密码算法依赖的原理是当前计算不可行的数学问题,而“计算不可行”是一个在时间及空间上相对而言的概念,计算上不可行即表示一个程序是可处理的但是需要一个长得不切实际的时间(如几十亿年)来处理的步骤。通常认为 2 的 80 次方个计算步骤是计算上不可行的下限。
暴力破解法 Brute Force Attack(BFA)
暴力破解法又名穷举法,是一种密码分析的方法,通过逐个推算猜测每一个可能解锁安全系统的密钥来获取信息的方法。
分布式存储
分布式存储 Distributed Data Store(DDS)
传统上的分布式存储本质上是一个中心化的系统,是将数据分散存储在多台独立的设备上,采用可扩展的系统结构、利用多台存储服务器分担存储负荷、利用位置服务器定位存储信息。而基于 P2P 网络的分布式存储是区块链的核心技术,是将数据存储于区块上并通过开放节点的存储空间建立的一种分布式数据库,解决传统分布式存储的问题。
P2P 存储 Peer-to-Peer Storage
P2P 存储是一种不存在中心化控制机制的存储技术。P2P 存储通过开放节点的存储空间,以提高网络的运作效率,解决传统分布式存储的服务器瓶颈、带宽而带来的访问不便等问题。
分布式 Distributed
分布式是通过区块链的 P2P 技术实现,分布式是描述一个计算机系统具有在多台计算机上同时运行和维护的完整副本,没有任何人或组织来控制这个系统。
账本 Ledger
账本是指包括区块链的数据结构、所有的交易信息和当前状态的数字记录。
分布式账本 Distributed ledger Technology(DLT)
分布式账本是指一种在网络成员之间共享、复制和同步的数据库,分布式账本在区块链中是一个通过共识机制建立的数字记录,区块链网络中的参与者可以获得一个唯一、真实账本的副本,因此难以对分布式账本进行篡改。更改记录的方式非常困难,技术非常安全。
节点 Node
节点是区块链分布式系统中的网络节点,是通过网络连接的服务器、计算机、电话等,针对不同性质的区块链,成为节点的方式也会有所不同。以比特币为例,参与交易或挖矿即构成一个节点。
全节点、完整节点 Full Node
全节点是是拥有完整区块链账本的节点,全节点需要占用内存同步所有的区块链数据,能够独立校验区块链上的所有交易并实时更新数据,主要负责区块链的交易的广播和验证。
共识机制
共识机制 Consensus
由于点对点网络下存在较高的网络延迟,各个节点所观察到的事务先后顺序不可能完全一致。因此区块链系统需要设计一种机制对在差不多时间内发生的事务的先后顺序进行共识,这种对一个时间窗口内的事务的先后顺序达成共识的算法被称为“共识机制”。
工作量证明 Proof of Work(PoW)
工作量证明简单理解就是一份证明,用来确认节点做过一定量的工作。监测工作的整个过程通常是极为低效的,而通过对工作的结果进行认证来证明完成了相应的工作量,则是一种非常高效的方式。比特币在区块的生成过程中使用了 PoW 机制,要得到合理的随机数求解数学难题需要经过大量尝试计算,通过查看记录和验证区块链信息的证明,就能知道是否完成了指定难度系数的工作量。
权益证明 Proof of Stake(PoS)
PoS 也称权益证明机制,类似于把资产存在银行里,银行会通过你持有数字资产的数量和时间给你分配相应的收益。采用 PoS 机制的加密货币资产,系统会根据节点的持币数量和时间的乘积(币天数)给节点分配相应的权益。
权益授权证明 Delegated Proof of Stake(DPoS)
DPoS 是一种类似董事会的授权共识机制,该机制让每一个持币人对整个系统的节点进行投票,决定哪些节点可以被信任并代理他们进行验证和记账,同时生成少量的对应奖励。DPoS 大幅提高区块链的处理能力,并降低区块链的维护成本,从而使交易速度接近于中心化的结算系统。
燃烧证明 Proof of Burn(PoB)
燃烧证明是一种投资于全新的加密货币的方法:为了获得一种新的货币,你必须“烧掉”(摧毁)另一种货币,比如比特币。从理论上讲,这将使每一种新的加密货币价值相当于被摧毁的币的价值,但实际上你不能真的摧毁加密货币,系统需要你把它送到一个会减少它的总供应量的地方。
开发者证明 Proof of Developer(PoD)
开发者证明是一个真实的、活的软件开发人员创建了一种加密货币的证据。它用于启动新的加密货币,以防止匿名开发人员在不提供可行的加密货币的情况下收集和窃取资金。
重要性证明 Proof of Important(PoI)
重要性证明是根据交易量、活跃度等维度而不仅仅是根据工作量和币的数量来决定区块链的记账权力。
基于交易的权益证明机制 Transaction as Proof of Stake(TaPOS)
TaPOS 为股东们提供了一个长效机制来直接批准他们的代表的行为,平均而言,51%的股东在 6 个月内会直接确认每个区块,取决于活跃流通的股份所占的比例,差不多10% 的股东可以在几天内确认区块链。这种方式直接确认保障了网络的长期安全,并使所有的攻击尝试变得极度清晰易见。
瑞波共识机制 Ripple Consensus
瑞波共识算法使一组节点能够基于特殊节点列表达成共识,初始特殊节点列表就像一个俱乐部,要接纳一个新成员,必须由 51% 的该俱乐部会员投票通过。共识遵循核心成员 51% 权力规则,外部人员则没有影响力。
分布式共识 Distributed Consensus
所有的节点必须定期更新彼此之间的不断复制的状况,通过专门的槽位来识别每一个更新。当所有节点更新了他们的分类账并放映的值相同时,就可达成共识,会将协商一致的声明具体化并发布至它们的分类账副本去。
验证池机制 POOL
验证池机制是基于传统的分布式一致性技术和数据验证机制的结合,它使得在成熟的分布式一致性算法(Pasox、Raft)基础上,不需要代币也能实现秒级共识验证。
51% 攻击 51% attack
51% 攻击,是指利用比特币以算力作为竞争条件的特点,凭借算力优势篡改或者撤销自己的付款交易。如果有人掌握了 50% 以上的算力,他能够比其他人更快地找到开采区块需要的那个随机数,因此他能够比其他人更快地创建区块。
双重支付、双重花费、双花 Double Spending
双重支付是一个故意的分叉,是指具有大量计算能力的节点发送一个交易请求并购买资产,在收到资产后又做出另外一个交易将相同量的币发给自己。攻击者通过创造一个分叉区块,将原始交易及伪造交易放在该区块上并基于该分叉上开始挖矿。如果攻击者有超过 50%的计算能力,双重花费最终可以在保证在任何区块深度上成功;如果低于50%则有部分可能性成功。
拜占庭将军问题 Byzantine Generals Problem(BGP)
拜占庭将军问题是指“在存在消息丢失的不可靠信道上试图通过消息传递的方式达到一致性是不可能的”。因此在系统中存在除了消息延迟或不可送达的故障以外的错误,包括消息被篡改、节点不按照协议进行处理等,将会潜在地会对系统造成针对性的破坏。
改进型实用拜占庭容错 Practical Byzantine Fault Tolerance(PBFT)
PBET 共识机制是少数服从多数,根据信息在分布式网络中节点间互相交换后各节点列出所有得到的信息,一个节点代表一票,选择大多数的结果作为解决办法。PBET 将容错量控制在全部节点数的 1/3,即如只要有超过 2/3 的正常节点,整个系统便可正常运作。
授权拜占庭容错算法 Delegated Byzantine Fault Tolerance(dBFT)
dBFT,是基于持有权益比例来选出专门的记账人(记账节点),然后记账人之间通过拜占庭容错算法(即少数服从多数的投票机制)来达成共识,决定动态参与节点。dBFT可以容忍任何类型的错误,且专门的多个记账人使得每一个区块都有最终性、不会分叉。
联邦拜占庭协议 Federated Byzantine Agreement(FBA)
联邦拜占庭协议的主要特性是去中心化和任意行为容错,通过分布式的方法,达到法定人数或者节点足够的群体能达成共识,每一个节点不需要依赖相同的参与者就能决定信任的对象来完成共识。
主链扩容
分片 Sharding
分片是区块容量的一种解决方案。通常情况下,每个节点和区块链网络都包含区块链的完整副本,分片是一种允许节点具有完整的区块链的部分副本的技术,以提高整体性能和稳定速度。以太坊在解决扩容方面采用了分片技术。
闪电网络 Lightning Network
闪电网络是一种允许加密货币的交易即时发生和成本降低的技术,它使一般在比特币网络中需要等待区块确认的交易瞬间完成。闪电网络基于一个可扩展的微支付通道网络,通过序列到期可撤销合约 RSMC,使交易双方在区块链上的预先设置的支付通道进行的多次高频的双向交易瞬间完成。同时,它通过哈希时间锁定合约 HTLC 在没有直接点对点支付信道的交易双方之间连接一条由多个支付通道构成的支付路径,实现资金的转移。
雷电网络 Raiden Network
雷电网络是一种以太坊链下扩容解决方案,它使得使用以太坊技术的加密货币能够即时和低成本交易。交易双方只要在链上存在交易信道,就能在链下根据被锁定的余额进行高频、双向的即时确认交易,将这样多个通道形成的支付路径构成“雷电网络”。
隔离见证 Segregated Witness(SW)
隔离见证是一种技术,通过把占用大量存储空间的区块的数字签名重新放置到不同的记录(也称为隔离),使每个区块能进行更多的交易,以达到扩容的目的。区块链上不仅记载了每笔转账的具体信息,还包括了每笔交易的数字签名以核实交易的合法性。矿工在打包区块的时候需要用数字签名来验证每笔交易,确认无误之后才会将该笔交易记录在区块里。但对于用户不需要验证信息,且每个比特币记录大小被限制在 1 兆字节(MB),每 10 分钟记录一次新的记录,所以通过隔离见证转移签名以扩大区块空间。
跨链协议
跨链技术 Cross-Chain
跨链技术是实现区块链之间互联互通的技术,若对标互联网则可理解为“去中心化网络的结合”,区块链技术的特性使得跨链技术的落地,以及对于链外信息的获取都非常困难,早期跨链技术包括以 Interledger Protocal 和 BTC Relay 为代表,更多是关注资产的转移;现有跨链技术以 Aion、Kyber Network、Bletchley、Polkadot、Cosmos 主要着重的是跨链基础设施。
原子互换 Atomic Swap
原子互换是一种去中心化、无需第三方的新技术,允许在不同类型的数字资产之间实现无需信任的点对点交易,任何一方在瞬间完成的点对点交易中都遵守协议,且之后若有一方退出,资金会在规定的时间返回各方账户。
见证人机制 Notary Schemes
见证人模式是一种中心化的结构,通过选定一批见证人并在见证人之间采用拜占庭容错结构,监听目标链上的事件和状态并签名进行资产的转移,如 Ripple 的 Interledger Protocal 的早期版本。
侧链协议 Sidechain Protocol
侧链协议是一种实现双向锚定(Two-way Peg)的协议,通过侧链协议实现资产在主链和其它链之间互相转换,或是以独立的、隔离系统的形式,降低核心区块链上发生交易的次数。
楔入式侧链技术 Pegged Sidechain
它将实现比特币和其他数字资产在多个区块链间的转移,这就意味着用户们在使用他们已有资产的情况下,可以访问新的加密货币系统。
中继技术 Relays
中继技术是通过在两个链中加入一个数据结构,使得两个链可以通过该数据结构进行数据交互,并通过在一个链上调用数据结构的 API,实现监听并验证另一个链上的交易,而若该数据结构是一个链式结构,则具备侧链的形式并称作中继链。
哈希时间锁定合约 Hashed TimeLock Contract(HTLC)
哈希时间锁定合约包含哈希锁定(Hashlock)以及时间锁定(Timelock)两个部分,哈希时间锁定合约最典型的代表就是比特币的闪电网络,闪电网络提供一个可扩展的微支付通,用以提升链外的交易处理能力,使用哈希锁定将发起方的交易代币进行锁定,并通过时间锁定让接收方在某个约定的时刻前生成支付的密码学证明,并与先前约定的哈希值一致,则可完成交易。
其他技术
图灵完备 Turing Complete
在可计算理论中,当一组数据操作的规则(一组指令集、编程语言或元胞自动机)满足任意数据按照一定的顺序可以计算出结果,则称为图灵完备。
混币服务 Mixing Service
混币服务,就是用一种加密货币从其他人那里得到同样金额的加密货币。原理是分离交易中的输入和输出地址,目的是提高加密货币的隐私性和匿名性,使其更难追踪加密货币的用途以及它属于谁。
零币协议 Zerocash Protocol
零币协议是一个发布于 2013 年的独立协议,原先目的是为了在混币技术、环签技术外增强加密货币的匿名性,零币协议使用零知识证明实现完全匿名,通过一个集合的托管池(Escrow Pool)删除交易的历史记录。零币协议有两个主要部分:“铸币”使有交易记录的币匿名化并置于托管池;通过零知识证明创建一个没有交易记录的新币,并销毁托管池中的币。
CryptoNote 协议 CryptoNote
CryptoNote 是一种应用协议,旨在实现加密货币的匿名性,于 2013 年 10 月发布,并可被用于多种加密货币中,如门罗币、百特币、Aeon、Fantomcoin 等。CryptoNote 通过使用分布式公共分类账,记录区块链上加密货币的交易和余额,但将发送方、接收方匿名化,并将交易金额模糊化。
缠结 Tangle
Tangle 是 IOTA 项目创造的一种改革性的去区块化分布式账本,它是可扩展的、轻量级的,还能在无需任何费用的前提下进行价值转移。Tangle (缠结)是基于有向无环图(DAG)的机构,而不是像区块链的连链式架构,它能定期添加区块,从而实现更高的交替吞吐量和零交易手续费。
有向无环图 Database Availability Group(DAG)
DAG 指有向无环图,是常用于计算机领域的数据结构。DAG 具备独特的拓扑结构,经常被用于处理动态规划,导航中获得最短路径等场景中。在区块链领域,DAG 用来解决扩容性的问题,通过增加区块大小或者区块频率在网络中产生大量分叉,但是攻击者还是需要 51% 的算力才能进行攻击。
去中心化应用 Decentralized Application(DApp)
DApp 是一种在网络上公开运行的软件应用程序,这项技术是由许多人维护的,而不是由一个组织维护的,黑客不能改变应用程序的数据,除非他们能够访问几乎所有的网络计算机并在那里调整它。
去中心组织 Decentralized Organization
去中心组织是一个没有中央领导,而是使用正式民主投票进程和共识主动性自我组织的结合来作为其基本操作原则的组织。
去中心化自治组织 Decentralized Autonomous Organization(DAO)
去中心化自治组织是一个通过编码为称为智能合约的计算机程序的规则运行的组织,由计算机网络支持的无中心组织并且没有单一的领导者,是一种自主的或者是自治的组织结构。