
演化但不会中心化
斯巴达克斯·雷克斯 (Minima技术总监)
摘要。Minima 是一种设计为超紧凑的加密货币。旨在保持完全去中心化。旨在没有统治者。没有矿工,也没有不断增长的数据库。一种简单而强大的脚本语言,级联证明链,自适应区块扩展,以及一种创新的工作量证明(PoW)支持的以用户为中心的区块链算法,该算法利用链上和链下流量来保障安全。全部采用量子安全加密技术。体积小到足以在您的手机上高效运行。每个人都能运行一个完整节点。永远如此。
1. 简介
2008 年,中本聪推出了比特币[1],从而改变了世界。这是一种革命性的数字货币系统,其初衷就是摆脱任何凌驾于其上的权威;这是一个安全的去中心化网络,在这里无需信任第三方;这是对明显脆弱且极易被滥用的陈旧货币体系的自然演进。
?问题所在:
自那以后,人们做出了许多巧妙且强大的改进,但在急于构建功能的过程中,有一个单一的特性——对某些人来说是最为重要的特性——去中心化,却被置于次要地位,以追求规模和安全。比特币最初的宗旨是网络不受任何权威“控制”,不存在单点故障,也没有基于网络的审查渠道,该网络能够抵御分布式攻击——无论是数字攻击还是物理攻击。如今运行的每一种加密货币都在追求更大规模和所谓安全性的竞赛中牺牲了部分或全部去中心化。毕竟,中心化确实能带来巨大的效率提升。但如果一组用户被支付报酬来为其他用户执行网络上的任何“任务”(比如挖矿),那么就违背了去中心化的初衷。(比如解决争端等)这不可避免地导致了权力集中,正如所有主要的加密网络所显示的那样。从根本上说,去中心化很重要,因为中心化网络很容易受到攻击。
当前以矿工为中心的网络依赖于相对较少的用户运行全验证节点,这些节点处理每笔交易,确保无人能欺骗系统,也无人能接受无效交易。但他们并不参与区块链本身的构建,仅负责验证。一个规模更小的用户群体,通常被称为矿工,运行全验证和挖矿节点,也就是所谓的完整节点。由于只有这一小部分完整节点参与链的构建,所以只有这一小部分决定哪些有效交易能被纳入区块,也只有这一小部分负责确保网络的活跃性以及防止审查攻击。
要严重扰乱一种加密货币,或者更糟糕的是——使其完全无法使用,需要操控或胁迫多少人呢? 要迫使挖矿运营商生成空区块或审查交易,持续进行51%攻击,或者阻止权益委托证明(DPoS)的受托人确认或处理任何事务,需要多少人呢?几乎对于所有的加密货币来说,答案肯定不到100人,而对于大多数加密货币来说,远远不到21人...
?解决方案:
在一个网络中,每一位用户都是平等且完整的成员。要破坏这个网络,需要攻击、贿赂或胁迫数百万甚至数十亿用户中的 100 位以上。这比当前的加密货币解决方案所需的规模大了几个数量级,是完全的去中心化。
是否能打造一个安全、可扩展且真正去中心化的加密货币,而不存在任何上层管理机构?每位用户能否在一个平等的加密货币网络中发挥作用?挖矿的中心化能否被消除?将网络的任何关键部分外包给第三方的需求是否能变得多余?
?要求:
- 协议必须具备高效的资源利用率,确保每位用户都能随时运行完整节点,并且不会造成任何负担。
- 必须取消付费矿工。以矿工为中心的付费模式总是会导致中心化。
- 协议必须完整,协议的不可篡改性是一项理想的特性。
- 由于必须完整,该协议必须:
- 从一开始就具备可扩展性。
- 具备量子安全性,以应对未来可能的需求。
- 它必须简洁、强大,保持去中心化,并且是完整的。
引入Minima。
2. 交易工作量证明(Tx-PoW)
取消矿工意味着需要用户自己来保障区块链的安全。基于用户的工作量证明(PoW)安全性此前已有尝试。DAG(有向无环图)风格的IOTA允许用户在发送交易之前执行少量的PoW计算。与Minima不同的是,IOTA不使用区块链,而是选择了交易有向无环图(Tangle)。Tangle能否以去中心化的方式达成共识仍是一个有争议的话题,并且最近IOTA已切换到新系统,试图修正其当前解决方案中的问题,即一个中心化的检查点服务器。
Minima使用Tx-PoW区块链,这个想法最初源于P2Pool协议,该协议允许多个用户可信地执行少量工作,然后将这些工作汇总成一个完整区块的工作量。单个PoW值等于各个小部分的总和,每个人都能从总的工作量中受益。这在基于交易的安全协议中很有效,所有交易都可以进行少量工作,然后汇总成单个区块。这样,Minima取消了矿工,但保留了区块链作为由PoW保障的按时间排序的事件列表。
每笔交易都是通过工作量证明挖掘出来的。这个过程与在其他PoW区块链上搜索区块非常相似。当你找到一个满足网络难度要求的Tx-PoW(平均每个设备10秒的工作量),你的交易将被广播,在网络中传播并添加到区块中。网络通过对最近的交易进行平均来确定最低的Tx-PoW,这也是区块链重构的方式,因为如果偶然你的Tx-PoW值足够高,网络确定每50秒有1个Tx-PoW工作量,那么你不仅挖掘出了包含自己交易的区块,其他用户也可以将该区块添加到当前链中。发送的交易越多,这个区块的难度就越高。想要发送交易的用户,构建一个Tx-PoW头部,该头部记录了他们自己的交易,并附加一个代表他们当前网络视图的区块头部。由于区块只存储交易的哈希值,就像比特币中的紧凑区块一样,它们的大小可以忽略不计。一个10KB的区块大约可以容纳330个交易哈希值。找到一个区块是用户保护自己的币的最安全方式,而诚实的区块有助于维持网络的健康。对用户来说,这一切都是无缝进行的。每当用户发送一笔交易时,有时也会找到一个区块。
Tx-PoW链很适合GHOST协议,因为即使交易本身就是区块,它们也可以被添加到区块中。有了最近n个区块的完整列表,就可以独立计算出由主链中作为交易包含的所有状态区块创建的区块链。GHOST协议允许达成共识,其出块时间比简单的最长链规则快得多。
这种系统意味着,如果没有交易,就不会有区块。Minima需要达到一定数量的交易才能维持一个安全的区块链,这要求交易速率必须非常高。由于Minima的所有安全性都来自交易数量,交易越多,网络就越安全。在Minima处理足够多的交易以充分保障网络安全之前,会有一个启动阶段。
现在,每一位用户不仅要验证整个区块链,还要维护网络的活跃度,并防止审查攻击。所有Minima用户都同时参与区块链的验证和构建。
3. Maxima
- 第一层(Layer 1)不具备扩展性。
- 第二层(Layer 2)具备扩展性。
“具备扩展性”意味着每秒可能的交易数量没有上限。
任何加密货币的基础层都称为第一层(链上),这是网络中每个完整成员都需要处理的层。在第一层之上构建的解决方案是在主链之外进行的, 这种被称为第二层(链下)。在第二层,只有直接参与交易的人需要处理交易,而不是整个网络,这就是为什么第二层具备扩展性而第一层不具备的原因。认为每个人都应该处理所有事务的想法是不具备扩展性的。
如果大部分流量通过闪电网络、侧链、多重签名联盟或其他方法在链下处理,那么根据定义,大部分流量甚至无法查看,更不用说在链上进行审计了。目前没有机制可以通过第二层的流量来保障第一层的安全,也没有办法激励或迫使第二层的运营商和用户向第一层的矿工支付费用。对于所有以矿工为中心的加密货币来说,这是一个问题。当只有数百万美元用于保障第一层安全的付费交易时,如何能在链下处理数万亿美元的交易呢?显然,这些分层系统的安全性与它们较低层级的安全性一样,花费的资金越少,支付的费用就越少。所以,要么第二层有效且具备扩展性,所有人都转向链下,通过减少对链上矿工的支持来降低第一层的安全性;要么第二层不起作用,用户留在第一层,所有链上的矿工都能获得报酬,但系统无法扩展……
更好的情况是,Maxima用户拥有第一层,因此可以进行非常大额的交易,将所有较小的交互留在链下。这确实通过为矿工提供足够的报酬来保障了第一层的安全,但这使得普通用户几乎不可能在链上进行交易,因为仅手续费可能就会超过期望的交易金额。有时,即使是需要使用第一层的用户(例如,如果有人试图强制关闭你的闪电网络通道并窃取资金),也并非总是有选择的余地。
另一种解决方案是增发货币来支付矿工,比如每年多印1%的货币并用于支付矿工,这确实能保障第一层的安全。但当然,这样就失去了总量上限,而总量上限是作为价值储存手段非常理想的特性。增发货币实际上是对每个用户征收的隐性税。
Minima有一个创新且独特的解决方案:
- 取代基于手续费的安全机制。
- 让第二层保障第一层的安全。
Minima运行在一个名为Maxima的点对点(P2P)网络上。Minima网络上的每个用户都与其他所有用户相连。Maxima通过一个简单的网络应用程序接口(API)打开这个P2P主干网,这样用户就可以传输分层数据系统(不仅仅是Minima交易)给其他用户。Maxima用户采用点对点而非泛洪填充的方式传输数据,这提供了一种可被所有第二层协议(如闪电网络、侧链、去中心化交易所等)使用的通信方式。
即使是那些与Minima没有代币交易、对第二层技术不感兴趣的用户,也可以通过Maxima发送消息来帮助通过工作量证明(PoW)保障网络安全。例如,MaxChat是一个运行在Maxima上的简单低带宽聊天应用程序,它是一个具有抗审查能力的去中心化P2P网络,可以吸引无数用户,并且还有无数其他需要网络通信的兼容应用程序。
所有Maxima用户都运行Minima。所有消息都需要支付工作量证明(PoW)。所有的工作量证明保障Minima的安全。
?我们定义:
- Minima交易 / 链上 / 泛洪填充 / 不具备扩展性。
- Maxima交易 / 链下 / 点对点 / 具备扩展性。
Maxima允许免费传输少量数据,这其中包含所需的工作量证明。不过,传输大量数据也是可行的,可以使用闪电网络进行支付。有一种简单的技术,使用与闪电网络发票相同的密钥对数据进行加密(预哈希数据的哈希值)。这样,只有在完成支付后,接收方才可以访问解密后的数据,这是一种原子交换——要么两个操作都发生,要么都不发生。
随着产生越来越多的付费流量,Maxima激励用户设置Minima路由器,即拥有外部IP地址的节点,其他Minima用户可以轻松访问,这对于任何点对点网络的完整性来说都是至关重要的。Maxima不是激励矿工消耗越来越多的能源去挖矿,而是激励用户设置更好的路由器,从而提升运行Minima的主干点对点网络的完整性和质量。
Minima提供价值转移,Maxima提供信息转移。
4. 脉冲网络(The Pulse Network)
Minima和Maxima都要求用户在发送消息时执行少量的工作量证明。消息越多,工作量证明越多。工作量证明越多,网络就越安全。但是,如果一个用户不发送任何消息呢?该用户还能帮助保障网络安全吗?如果发送消息的时间紧迫,在发送之前不能有任何延迟(比如高频交易者)该怎么办?Maxima通过重新利用现有技术来解决这些问题,允许用户提前完成计算工作,然后在发送消息时将其作为证明展示出来。
大多数网络协议都有PING消息。这是网络节点定期发送的消息,用于检查其他节点的运行状况和状态。网络节点发送PING消息,其他节点进行回复,以表明它们正常运行。但在像Minima这样的加密网络中,关于节点运行状况和状态的更多信息可以通过PING消息传输。在PING消息中加入一些工作量证明,就产生了脉冲(Pulse)消息。
每隔10分钟,每个Minima用户创建一条有效的交易工作量证明(Tx-PoW)消息,包含当前正确的区块详细信息,但交易部分留空。执行10秒钟的计算工作,然后将此消息发送给每个对等节点。如果该消息不是有效的Tx-PoW消息,对等节点将被踢出网络。如果一个对等节点每隔10分钟都不发送脉冲消息,也会被踢出网络。如果Tx-PoW消息也是一个区块(平均每50秒产生1条Tx-PoW消息),则会被转发到网络的其他部分。
?这样做有很多好处:
- 共享对等节点当前的内存池信息——即其已知但不在当前最长链中的交易列表。任何差异都可以得到解决,遗漏的交易也能被传递,实现对等节点数据同步。
- 表明该对等节点是一个正常运行的Minima节点,网络连接正常,是网络消息的有效路由器,并且能够帮助保障网络安全。
- 增加网络整体的工作量证明安全性。
- 这一切都在链下进行。只有直接的对等节点检查脉冲消息,只有区块会被转发到网络的其他部分。
由于发送脉冲消息的要求非常低,如果一个对等节点无法发送脉冲消息,那一定是出现了问题,所以没有必要浪费资源。当它们修复好后,可以重新上线并重新加入网络。那些认为自己可以不执行工作量证明的节点,只会被踢出网络。
Minima有脉冲机制,不允许“僵尸”节点存在(没有脉冲消息的节点)。
5. 工作量证明(PoW)与分布式工作量证明(Distributed PoW)
哈希率并不等同于安全性。
因为如果是这样的话,一个拥有无限哈希率的矿工就能打造一个安全的网络,但事实并非如此。这就好比PayPal(一个完全中心化的支付网关),它完全无法抵御审查攻击 。
关键在于哈希率的分布。当我们考虑可怕的51%攻击时,这一点不言而喻。
工作量证明区块链总是担心51%攻击。在这种攻击中,某些个人或团体能够控制50%以上的哈希率,从而可以逆转交易,持有区块链进行勒索,创建空区块或审查交易,并创建更长的有效链。在以矿工为中心的工作量证明网络中,矿工会因获取哈希率而获得报酬。可以肯定的是,一小群矿工就能组成一个51%的卡特尔联盟。信任不是问题所在。矿工有很强的动力遵守规则,不去攻击区块链,因为担心失去收入。到目前为止,更有可能的攻击是胁迫,比如来自国家层面的政府胁迫。
Minima是一个分布式工作量证明区块链,它并不激励获取哈希算力,因为找到一个区块没有经济奖励,而且也没有必要去做更多的工作来获取优势。不存在一小群人或联盟能够协调攻击的情况,因为发动这样的攻击非常昂贵,除了攻击网络之外,用于攻击的硬件没有其他用途,也没有挖矿奖励来收回初始投资。毕竟,攻击的成本必须低于潜在的收益。
当然,分布式工作量证明模型也有一个先决条件,那就是需要大量的用户。
6. 哈希现金(HashCash)与销毁机制(Burn)
亚当·贝克(Adam Back)的哈希现金是工作量证明的首个实际应用形式,这是一种最初用于抵御垃圾邮件的拒绝服务(DoS)应对措施。发送数百万封电子邮件在硬件处理、带宽等方面 “零成本”。一台连接在互联网上的计算机几乎可以在瞬间不断地发送数百万封电子邮件。哈希现金要求在发送每封电子邮件时都要包含工作量证明。对于一个每隔几分钟发送一次邮件的普通用户来说,这完全可以忽略不计,只是在按下 “发送” 按钮后,会有几秒钟的后台处理过程。但对于试图发送数百万封邮件的垃圾邮件发送程序来说,这将需要数百万秒的计算工作,这是一项不可能完成的任务。
可忽略不计的工作量证明可以抵御拒绝服务攻击,但无法抵御分布式拒绝服务(DDoS)攻击。
这种邮件攻击属于拒绝服务攻击,因为只有一台机器发送垃圾邮件。而分布式拒绝服务攻击是指使用多台机器进行攻击。例如,由5万台手机组成的僵尸网络,每台手机可以每隔几秒发送一条消息。现在,进行一次分布式拒绝服务攻击只需要几分钟的协调。
为了防止在去中心化的点对点区块链网络的第一层受到分布式垃圾邮件攻击,每条消息仅附带少量的工作量证明是不够的。对于个人用户来说,少量的工作量证明实际上是免费的。是的,他们的手机会消耗电量,发送时会有时间延迟,但用户几乎注意不到或感觉不到。为了抵御分布式拒绝服务攻击,我们需要一些对用户来说不是 “免费” 的机制。
在以矿工为中心的区块链中,这个机制就是费用(也可用于多种目的)。每笔交易都需要支付费用,100万条消息现在需要支付100万次费用。攻击的成本变得极其高昂——因为攻击者必须支付这些费用,而僵尸网络只是提供工作量证明。如果攻击者坚持攻击,那么攻击成本会持续增加,且无法无限期维持。
而在Minima中,采用的是销毁机制(这也可以用于多种目的)。当一笔交易的输出总和小于输入时,就相当于向其他每个用户支付了一笔非常小的费用。由于 “销毁” 减少了流通中的Minima总量,由于所有的币都是在初始时创建的,剩余的币就变得更加稀缺,因而更有价值。与费用不同,销毁机制没有最低要求。要使总销毁量足够大,并能够支持挖矿行业,从而保障区块链的安全。在流量过大或垃圾邮件过多的时期,销毁量可能会很高,随着销毁量上升,流量会减少,系统会自我调节。当流量处于可管理水平时,销毁量可以非常低,因为总量并不重要,重要的只是相对销毁量与其他交易的对比情况。
?Minima中的销毁机制有多个作用:
- 强有力地激励传播和处理交易。
- 作为一种对交易进行排序和调节链上流量的方法。
- 通过增加分布式拒绝服务攻击的成本来防范垃圾信息攻击的机制。
哈希现金是完全去中心化的。每个用户可以通过 “挖掘” 自己的邮件独立完成所需的工作量证明,其他每个用户也可以独立验证这个证明。无需咨询第三方,也无需向矿工支付报酬。在Minima中也是类似的情况,只不过用户 “挖掘” 的是交易,而不是邮件。
从Minima网络中大量发送的交易中,会形成一条按时间排序、相互关联的区块链,展现出完整的交易历史。
Minima的共识机制是由哈希现金和销毁机制驱动的。
7. 能源
工作量证明区块链常常因消耗大量能源而受到批评。能源消耗是中本聪共识机制运行的必要条件。正是这一点使得工作量证明区块链具有客观可识别性、可验证性和价值。
在竞争系统中,矿工会受到激励,在经济可行的范围内消耗尽可能多的能源来挖掘数字货币,以便出售获利,同时保障区块链的安全作为额外收获。
在合作系统中,用户只需使用保障区块链安全所需的最低限度的能源,因为没有动力去消耗更多。
去中心化能源比中心化能源更具可持续性。随着时间推移,去中心化能源更易于扩展。由于用户只需进行少量的计算工作,而不是像大型挖矿作业那样进行大量工作,用户自己可以通过手头的任何方式(比如像平常一样给手机充电)来产生所需的所有能源。
Minima与 “免费能源” 的概念相符。这里的免费能源指的是你无需支付费用,因为你可以自己产生能源(很可能是太阳能)。如果你把免费能源提供给一个参与竞争的矿工,他会非常高兴,因为他现在可以使用更多能源来尝试挖掘更多的币。但如果把免费能源提供给所有矿工,效果就会相互抵消,因为挖矿本质上是零和博弈,他们仍会继续使用相同数量的中心化能源,同时也会利用免费能源。
8. 级联链
哈希运算的能力确保了一条完整的区块链不能以任何方式被篡改。哈希运算的能力还确保了有时人们在寻找较低难度的工作量证明时,会找到一个难度极高的工作量证明。如果你将此考虑在内,预工作量证明(Pre-PoW)可以构建区块头,用以引用不同难度级别的多个区块父块。在交易工作量证明(Tx-PoW)中,不是为用户设置两个挖矿难度值,而是将交易难度平均设置为10秒的计算工作量,区块难度设置为每50秒产生1个区块。我们再增加一个难度,将超级区块难度设置为当前区块难度的两倍。
每个区块都引用其直接父块和上一个超级区块。现在,一个交易工作量证明有3种可能的级别:交易、区块和超级区块。如果区块哈希难度足够高,它就会成为一个超级区块(这也是一个有效的区块)。最终,除了一条超级区块级别的长链中的所有区块和数据都会被丢弃。现在,只保留一个超级区块级别,让我们使用256。每个比特作为一个32字节的哈希值。每个级别难度是其下一级别的两倍。这些是每个区块回链到其超级区块级父块时的唯一难度值。
证明链呈对数增长,因此几乎无限量的工作量证明可以存储在有限的区块头链中,因为每个级别存储的区块难度都是其下一级别的两倍。因此,一条由更具工作量证明价值的区块组成的指数级更短的完整链,取代了一条由较低工作量证明价值的区块组成的长链。由于随机哈希挖矿的性质,较高级别区块的交易工作量证明难度总和将平均等于较低级别区块的交易工作量证明难度总和。
级联链允许每个用户在不存储每个区块的情况下,保留总累积工作量证明,只保留相互引用的特定幸运区块,以保持一条总工作量证明不断增加的短完整链。
几乎所有的区块和交易都会被修剪。修剪对用户的安全性没有影响。一旦一个交易被一个用户检查过,就无需再检查,简单引用即可。区块在被修剪之前会保留一段时间,一周就可以。这样,任何登录网络的用户都可以随时追赶上一周的区块量。所以,只要用户每周登录一次网络,就可以验证第一层的每一笔交易,并运行一个完整节点,进行全面验证和完整的交易工作量证明挖矿,而无需增加存储量。
对于一个没有区块链历史记录且没有币的新用户,中本聪共识可以客观且独立地判断哪条链是当前有效的链——即具有最多工作量证明的级联链。
9. 无存储的默克尔 Mountain Range未花费交易输出(MMR UTXO)
在过去,每个用户都在一个大账本(或数据库)中记录每个账户的信息。每个用户都有这个账本的副本。每当用户想要发送一笔交易时,每个用户都会检查交易是否有效,方法是检查大账本中的输入,并根据需要更新账本页面。交易越多,账本就越大。
在新的模式下,每个用户在账本中有一个特定的页面,包含他们所有的账户详细信息。这个页面从账本中取出并交给该用户。每个用户取出自己的页面。每个用户只保留自己的页面和整个账本的 “书脊”。每当用户想要发送一笔交易时,他们添加自己页面的副本,这个副本可以被验证与 “书脊” 匹配,这样用户就可以检查交易是否有效,更新页面,并更新 “书脊” 以准备下一笔交易。现在用户只存储自己的交易,以及一个不比单页厚的加密 “书脊”,数据量大幅减少。
Minima没有存储所有未花费交易输出的数据库(或大账本),而是使用彼得·托德(Peter Todd)的无存储证明数据库(MMR)。它允许在特定的哈希树中添加和更新几乎无限量的可证明数据。这有点像带有插入(INSERT)和更新(UPDATE)功能的SQL数据库,但没有查询(SELECT)或删除(DELETE)功能。关键在于,如果你在数据库中有数据,并监听所有的添加和更新,你可以随时证明你所知道的数据。你的SELECT版本是通过默克尔证明来证明数据存在于MMR哈希树的根节点。
每个用户跟踪自己的币,而不是由矿工甚至所有用户来跟踪所有的币。与整个区块链相比,这是极少量的数据。但是,每个用户必须随时了解区块链的最新情况。通过这样做,他们可以跟踪证明其币不仅存在而且未被花费所需的默克尔证明。每次对MMR进行添加或更新时,这个证明都会改变。如果用户不跟踪自己的币,它们不会丢失,但需要第三方帮助恢复。他需要找到一个存储所有内容的归档节点(比如在这种情况下出售数据),或者之前设置了一个朋友或聊天群组来跟踪额外的币(币证明不会带来安全问题),并让他们重新发现该用户的个人MMR组以找回自己的币。
Minima实现了实时MMR。每个区块都会确认该区块的当前MMR状态。每个用户发送交易时,会附带一个最近的MMR证明,以证明交易有效。用户可以根据他们最新的MMR数据库检查这些细节,并在交易被接受时根据需要进行更新。这个过程必须非常快速。MMR数据库存储多个重叠的MMR状态,每个区块对应一个,并且它需要能够快速修剪和恢复MMR数据,并为多个变化的状态快速生成证明。这很有趣。
10. 智能合约、代币和交易
Minima运行的是一个验证网络,类似于比特币,而不是像以太坊那样的计算网络 。计算网络运行所需的资源远比验证网络多。实际上,所需的计算资源远远超过大多数网络参与者所能提供的,因此这些网络会围绕更大、更强的节点实现中心化。Minima必须让每个人都能运行完整节点。
- 验证是最小量的有效计算。
- 逻辑可以在链下计算,在链上验证。
- 让每个人都计算或验证所有内容不具备扩展性。
- 让每个人在链上验证可管理的内容,从而实现链下近乎无限的容量,这样具备扩展性。
与比特币不同,Minima原生支持代币。与以太坊不同,在处理代币时,Minima不会牺牲效率。就网络而言,代币交易与Minima交易相同,存储在MMR证明数据库中,并且不会增加存储需求。证明代币的存在,就像证明你持有Minima一样。可以通过标记一定比例的Minima来创建代币。所有适用于Minima的脚本同样适用于代币。
Minima上的交易类似于比特币交易,但在功能和能力上进行了升级。它们包括输入列表、输出列表,以及一些用于存储自定义数据的数据寄存器。输出的总和必须小于或等于输入的总和。每个输入都有一个地址、金额、代币ID、币ID,并且可以有各种用户定义的参数。每个地址实际上是一个智能合约,以Minima脚本的哈希值表示。整个交易随后可以由一个或多个公钥签名。发送交易时,用户添加MMR证明以表明输入存在且未被花费,花费约10秒钟进行挖矿,然后将完整的交易工作量证明(Tx-PoW)消息广播到网络中。每笔交易都是一个独立的加密单元,只需使用内存中最近的MMR根哈希值即可独立验证,速度非常快且高效。
Minima使用一种简单但功能强大的脚本语言。一个脚本会返回TRUE或FALSE,表明某个输出能否被花费。空脚本返回FALSE。
标准交易:
RETURN SIGNEDBY (0xEFDC56DC0A8F7)
哈希时间锁定合约(HTLC):
IF @BLOCK GT 102453 AND SIGNEDBY (0xEFDC56DC0A8F7) THEN
RETURN TRUE
ELSEIF SIGNEDBY (0x12345678) AND SHA3 (STATE(0)) EQ 0x87654321 THEN
RETURN TRUE
ENDIF
?许多强大的功能包括:
- MAST - 默克尔化抽象语法树,长脚本但执行路径短。
- VERIFYOUTPUT - 检查交易输出、契约。
- VERIFYINPUT - 检查输入数据、复杂的多代币脚本、股息支付。
- ADDRESS - 在脚本中创建脚本、递归契约、金库地址。
- CHECKSIG - 检查脚本中的签名、预言机。
- PROOF - 高效的默克尔证明检查。
Minima还为每笔交易提供了简单的状态变量,输入脚本可以访问这些变量,以便在跟踪变量变化的同时发生一系列交易。这使得更复杂的“有状态”智能合约成为可能,类似于以太坊,同时保持甚至提高了比特币UTXO模型的速度和效率。
11. 量子安全
目前,量子安全还不是一个紧迫的问题,但在未来它会成为一个关键问题。如果你希望协议足够先进,能够自我维护,从而无需协议开发者持续干预,并且永远不需要进行硬分叉(在Minima中不存在软分叉,因为所有用户同时也是矿工),那么你就需要使用量子安全算法。
Minima在交易工作量证明(Tx-PoW)挖矿、区块和交易哈希计算、证明链以及数据签名或验证中,都使用了KECCAK哈希算法。Minima的脚本语言支持SHA2 - 256哈希算法,以实现与传统区块链的跨链哈希锁定合约。其签名算法采用了温特尼茨一次性签名方案(WOTS)。你可以构建有效公钥的哈希树,并在Minima脚本中对其进行处理,这样就能使用相同的根公钥进行多次签名,即默克尔签名方案。
量子安全是有代价的。其签名至少比比特币中使用的椭圆曲线数字签名算法(ECDSA)大10到20倍。一次WOTS签名的大小为400 - 800字节。与普通的比特币交易相比,Minima的签名确实很大。不过,由于几乎所有数据最终都会被修剪,这些签名不会一直存储,所以尽管存在带宽问题,但它们只是临时的存储负担。
12. 区块大小
Minima中的区块很小,小到和一笔交易差不多。所有交易都有可能成为区块,区块只是幸运的交易。区块只包含对已经在网络中广播的交易的引用(类似于比特币中的紧凑区块),而不是完整的交易内容。Minima还采用了自适应的区块大小。其最大大小由链设置为过去n个区块平均大小的两倍。这使得用户可以自行决定区块大小。如果他们将区块填充得比平均值高,最大区块大小就会变大;如果填充得低,最大区块大小就会变小。用户可以根据自身需求或网络流量情况(比如闪电网络及其他扩展方案的流量)来调整最大区块大小。
在以矿工为中心的区块链中,区块必须填满。如果区块未填满,就不存在区块空间的费用市场,也无需支付任何费用。但如果没有费用,就无法保障安全性,因为费用用于支付矿工,而矿工保障着区块链的安全。空区块不好,半满的区块也不好,只有满的区块才行。因此,必须以某种方式限制区块大小以确保这种情况。
在以用户为中心的区块链中,区块可以是空的、半满的或满的,这对链的安全性没有影响。安全性由所有用户产生的总工作量证明决定,因为不需要费用来支付矿工保障网络安全。没有必要限制区块大小。只要整个网络能够处理每秒的链上交易速率即可。“销毁”机制起到拥塞控制的作用,在负载过重时限制流量。每个用户可以在自己的本地设备上独立确定所面临的负载情况,并利用这些信息构建一个大小合适的区块。
Minima使用级联链,会大幅修剪几乎所有数据,同时保留总累积工作量证明和完整的MMR数据库记录。因此,区块不会造成持续的存储负担,只是短期内需要关注带宽和处理问题。
13. 区块生成速度
更快的区块生成速度并不能提升交易的安全性,因为安全性是父区块累积工作量证明的函数(哈希率方面,1个比特币区块的哈希率相当于4个莱特币区块,因为莱特币的出块速度是比特币的4倍)。更快的区块链能提高信息的粒度,使用户更快知道交易何时足够安全。等待的时间越长,交易就越安全。
如果区块生成速度过快,就有“失序”的风险,即当区块链无法跟上自身的生成速度,会出现过多冲突的分支。但如果区块生成速度过慢,就会忽略更高信息粒度带来的好处。
在遵循GHOST协议的区块链上,区块生成速度可以快得多,因此Minima的目标是实现50秒的出块时间。
14. 共识、分叉和不可变协议
在去中心化的区块链系统中,所有用户都需要就规则达成一致。如果在规则上无法达成共识,那么在交易排序以及最终结果上也无法达成共识。当前的区块链系统有两种可用的共识变更类型。这是因为存在两种类型的“完整”用户。第一种用户在区块链的构建和验证中发挥作用——完整节点(即矿工)。第二种用户仅在区块链的验证中提供帮助——全节点(即验证者)。我们通常会忽略钱包用户,尽管他们是这些区块链上数量最多的群体(这与Minima不同),因为他们既不参与验证也不参与构建,只是随波逐流,无论是否认同规则。
软分叉是指完整节点以某种方式更改规则,但这些规则对全节点仍然有效。软分叉会降低区块链的某些功能。所有全节点仍然会认为一个区块是有效的,只是其解决方案空间变小了。对交易或地址进行永久性审查就是一种软分叉,因为只有参与区块链构建的节点对此有发言权。在固定区块大小的区块链中,减小区块大小是一种软分叉,因为它对所有全节点来说仍然有效,只是区块变小了。硬分叉则是指所有节点都需要就功能增强达成一致,添加一个以前不存在的功能。在固定区块大小的区块链中,增加区块大小需要所有人达成一致,因为按照旧规则(规定了较低的最大区块大小),对于全节点来说,新的区块大小是无效的。添加新功能或特性属于硬分叉,升级或从根本上改变协议也属于硬分叉。
软分叉比硬分叉更容易实现,因为只需要较小群体中的多数完整节点达成一致即可,而且软分叉可以强制执行。完整节点不需要全节点的许可。硬分叉的实现要困难得多,网络规模越大,难度就越高。一旦去中心化协议大规模部署,就无法进行更新,因此只有在停止更新后,该协议才可能被更广泛地采用。这就是真正的去中心化协议会固化的原因。
?在Minima中:
- 每个人都运行完整节点。
- 每个人都参与区块链的构建和验证。
- 每个人都需要对所有事情达成一致,因为每个人都参与其中。
- 不存在软分叉,只有硬分叉。
Minima协议从一开始就是完整的,包含了它所需的所有扩展性和功能。不允许软分叉,也永远不需要硬分叉。使用该协议的网络规模没有限制。POP3、SMTP、UDP和TCP/IP是固化的全球去中心化协议的例子,它们不会改变,这就是关键所在。
15. 结论
Minima是:
- 一种紧凑的区块链,可完全在你的手机上运行。
- 一条可扩展、可编程、无存储需求、具备量子安全性、基于证明的级联交易工作量证明(Tx-PoW)链。
- 一个弹性、开放、全球化且抗审查的点对点网络,内置基础层区块链,用于无需信任的支付、代币及合约处理。
- 一个完全去中心化的加密系统,由协作的用户组成,不存在中心化的故障点,能够支撑有史以来规模最大的完整节点网络。
- 一个无矿工、协作式的分布式工作量证明网络,不受中心化、以矿工为中心、基于费用的模式所限 。
✅去中心化:最重要的是,Minima致力于成为一个完全去中心化的平台。网络上的每个用户都以相同的方式运行相同的代码,每个用户都运行一个完整节点。这里没有特殊的用户类别,没有主节点,没有受托人,也没有矿工。该协议专门使用少量资源,以便所有用户随时都能运行完整节点。对网络的任何系统性攻击都相当于攻击整个用户群体,不存在中心化的故障点。
✅安全性:Minima是一个由分布式工作量证明保障安全的区块链。Minima网络真正的“算力”来自可扩展的链下交易,这些交易通过Maxima运行,同时也为第一层的安全做出贡献。第一层的安全性不会因链下到第二层的流量而降低,实际上还会得到增强。Minima的所有加密安全基于哈希算法,因此具备量子安全性。所有节点都是完整节点,这样,利用用户对整个网络了解不足而进行的轻客户端攻击就会失效。审查和其他基于区块的攻击难度也会大幅增加。
✅可扩展性:Minima协议支持链上和链下交易。区块大小是自适应的,用户可以根据需要调整其大小。强大的链下协议(有些已经存在)可以将流量从第一层转移到第二层。第二层提供了近乎无限的创新空间和处理能力。Minima可以利用当前的技术方案,如闪电网络和侧链,将这些能力直接交到每个用户手中。
✅付出:为了能够始终稳定运行,Minima不仅需要庞大的用户基础,还对用户有更多的要求,参与是必要条件。Minima使用MMR数据库、最大化修剪和级联证明链。本质上,这些技术要求用户定期(最好是持续,最差是每天或每周)连接到网络,然后更新他们的MMR证明。在网络丢弃相关数据之前,链上交易的有效性可以独立验证,并且可以对级联证明链进行正确更新。当然,所有用户都需要发送交易并参与网络活动。所有这些操作对用户来说可以是无缝的,隐藏在应用层之下,但用户至少需要确保自己保持网络连接。
Minima为用户提供了以完全去中心化的方式进行交互所需的所有工具。所有用户都可以独立地跟踪、存储、共享、验证和构建区块链。责任完全转移到用户身上,没有矿工、主节点、受托人、协调者或其他上层管理机构来承担这些工作。
我们做主,一切取决于我们。
特别致谢
向不屈不挠的中本聪致敬。
致谢:感谢帕迪·切里(Paddy Cerri)、雨果·费勒(Hugo Feiler)、巴纳比·吉林(Barnaby Girling)、亚当·费勒(Adam Feiler)以及Minima团队。
参考文献
[1] 比特币:一种点对点的电子现金系统. 中本聪.
https://bitcoin.org/bitcoin.pdf
[2] 彼得·托德:通过低延迟延迟交易输出承诺使UTXO集合增长无关紧要.
https://petertodd.org/2016/delayed-txo-commitments
[3] DAGCoin:一种无区块的加密货币.
https://bitcointalk.org/index.php?topic=1177633.0
[4] 迷你区块链.
http://cryptonite.info/wiki/index.php?title=Mini-blockchain_scheme
[5] 格雷戈里·麦克斯韦尔.
https://en.bitcoin.it/wiki/User:Gmaxwell/alt_ideas
[6] 维塔利克·布特林.
https://blog.ethereum.org/2014/07/11/toward-a-12-second-block-time/
[7] 比特币中的安全高速交易处理.
https://eprint.iacr.org/2013/881.pdf
[8] IOTA. https://www.iota.org/
[9] 亚当·贝克,哈希现金. http://www.hashcash.org/
[10] P2Pool. http://p2pool.org/
[11] GMSS签名方案.
https://www.cdc.informatik.tu-darmstadt.de/reports/reports/BDKOV07.pdf
[12] ELtoo. https://blockstream.com/eltoo.pdf
[13] 默克尔签名方案.
https://en.wikipedia.org/wiki/Merkle_signature_scheme
[14] 通道工厂:
https://www.tik.ee.ethz.ch/file/20a865ce404d0c8f942cf206a7cba96/Scalable_Funding_Of_Blockchain_Micropayment_Networks_(1).pdf
https://medium.com/chainift-research/onboarding-the-masses-channel-factories-6e5c26b07cf1
[15] 活性.
https://en.wikipedia.org/wiki/Liveness
[16] 去中心化能源:
https://www.carbontrust.com/news/2013/01/decentralised-energy-powering-a-sustainable-future/
[17] https://www.power-technology.com/features/can-the-uk-ever-achieve-a-fully-decentralised-energy-system/
[18] 以太坊. https://www.ethereum.org/
[19] 工作量证明的证明.
https://eprint.iacr.org/2017/963.pdf
-END



