关于权力下放的思考

关于权力下放的思考
在区块链世界和DApps中,我们经常听到“ 分散 ” 这个词。该术语比我们想象的更频繁地使用,因为DApp中的“D”字母也意味着“分散”。DAO(分散自治组织)也是如此。
关于权力下放的一些重要问题:它究竟有多重要?我们可以牺牲一定程度的其他好处(例如速度或安全性)吗?分散的各种链条在哪个程度上?DApps真的是“D”吗?
第一个问题是最重要的。但在尝试回答这些问题之前,我们必须确定什么是分散化,与其他体系结构相比,它的成本是多少。
什么是权力下放?
最简单的架构是一个包含数据库的服务器。这种架构非常快,可以容纳大量数据(当然多大程度上取决于服务器的存储容量)。这种架构方案的基本问题是存在“单点故障”。
黑客,硬件故障,管理员的错误,拥有服务器的公司破产,网络故障或其他原因都可能导致服务器暂时停机,甚至更糟。数据可以是任何类型:政府许可证档案,拥有数百万用户的应用程序的关键数据,医疗记录,银行的余额账户以及其他任何内容。
很明显,在上述情况下绝不应该发生故障。在某些情况下,即使服务器的所有者也无权停止服务器或销毁数据。
因此,最合乎逻辑的解决方案是考虑备份和复制数据的体系结构。这可以通过分布式计算来实现。许多服务器(通常不在同一物理位置)保留数据的副本。它们保留备份(用于在必要时回滚系统),但最重要的是它们进行复制:实时,每当数据库以“合法”方式更改时,所有其他数据库都会复制更改,以便每个数据库保持新状态(当前快照)。
在这种架构中,没有“单点故障”:硬件故障不能导致系统崩溃; 黑客不能破坏所有数据库; 网络故障无法使系统无法访问; 粗心的管理员不会立即销毁所有数据库副本。
有人可以问这个架构中数据库副本如何知道何时更改状态,因为如果数据库由于硬件故障(例如硬盘中的损坏扇区)而改变状态,或者因为黑客,所有数据库都将达到一个错误的状态。
答案是有一种机制,或者更正确的协议,服务器(从现在开始称之为“节点”)必须遵循。这种架构是值得信赖的。
节点的重要性和作用
每个节点相互信任(不完全是因为硬件或网络故障),并且感觉没有很多节点具有智能并且恶意行为。由于这些错误,要使复制体系结构起作用,必须容忍节点的某些故障。
简而言之,系统是容错的(FT)。可信FT的大多数协议是f + 1(其中f表示故障节点的数量)。更简单地说,在这种架构中你需要50%+ 1个节点来确保状态的变化是“合法的”(它遵循协议)。由于该决策是大多数节点的产物,因此协议的这种使用也称为“ 共识 ”。
总结这种类型的体系结构:没有单点故障,作为权衡,它花费更多(更多的硬件,电信成本),当然,比单个节点(服务器)慢。
细心的读者应该已经注意到之前逻辑中的错误。
我们说没有单点故障。但没有单一故障点的意思是我们必须确保数据库将在下一刻存在 – 下一个变化状态 – 没有腐败。但在以前的架构中,有一个所有者控制所有服务器(所有节点)。
因此,他/她可以随时打倒整个系统!因此,从分散的角度来看,所有者可以被视为“单点故障”。
无信任的架构及其权衡
真正的问题是上述架构是值得信赖的。如果我们想要一个真正分散的系统,那么节点必须是真正独立的。换句话说,它们必须属于不同的实体。通过此更改,系统变为TRUSTLESS。此外,作为权衡,系统将变得更加缓慢,因为,为了在下一个“抽动”(下一个状态变化)中达成共识,需要更多步骤。
原因很简单:现在,节点不相互信任,因此他们必须考虑其他节点可能是恶意的 – 也就是说,他们没有故意遵循协议,因为他们想要为自己谋取利益或想要腐败或由于某种原因破坏公共数据库 – 因此,需要更多的验证步骤来确保协议规则将发生下一次状态更改。
让我们看看新的架构。它类似于前一个节点,但是有更多节点彼此不信任并遵循协议以无信任的方式达成共识。此外,每个节点属于不同的实体。
这种架构是最慢和更昂贵的。但是,它确实是分散的。有人攻击系统没有简单的方法。
这个系统的分权程度是多少?它实际上取决于节点的数量及其物理位置(理想情况下,它们不应位于同一地理空间)。节点越多,系统就越被视为分散的。
有些架构为节点提供了不对称的角色。一些节点扮演协调者的角色。这背后的逻辑是,共识将更快,更容易,也许更安全。不幸的是,这个系统存在安全问题。如果有人想到它,原因很明显。这是一个很容易掌握逻辑的好比喻。
想象一下一支将军的军队。所有其他人都是士兵。士兵只接受将军的命令。如果有人成功暗杀将军,那么整个军队都会被淘汰!同样,如果你有许多具有协调角色的节点(它们的名称类似于“masternodes”或任何其他奇特的名称),那么有人可以直接攻击它们(仅)。攻击者不需要停止所有节点,只需要关闭领导节点以关闭系统。
但是这些体系结构存在更严重的缺陷:它们并不是真正的分散化。主节点具有特殊权限,因此可以控制整个系统。它们更容易,因为它们在共识算法中具有特权。此外,来自外部的攻击可以更容易,因为它们可以直接受到拒绝服务攻击(DoS或DDoS)的攻击。这样一来,这个系统就会变弱(军队与将军或将军的例子)。
让我们总结一下到目前为止。要使系统真正分散,以下所有必须成立:
1. 系统必须有许多节点。越多越好。
2. 节点必须具有对称角色(任何人都没有特权)。
3. 节点必须属于不同的所有者。
4. 节点不得位于同一区域。
5. 他们为达成共识而遵循的协议(规则)必须是无信任的。
当我们提到“系统”时,我们指的是状态复制机器或数据库。或者甚至更好,它们之间连接的数据块,所以我们也可以检查历史(每次发生时的状态变化)。甲blockchain,例如
现在我们已经澄清了什么是真正的分散区块链,我们可以回到原来的问题。