导航:首页 > 以太坊区 > 以太坊共识算法拜站挺

以太坊共识算法拜站挺

发布时间:2024-09-10 05:58:22

区块链的核心技术是什么

简单来说,区块链是一个提供了拜占庭容错、并保证了最终一致性的分布式数据库;从数据结构上看,它是基于时间序列的链式数据块结构;从节点拓扑上看,它所有的节点互为冗余备份;从操作上看,它提供了基于密码学的公私钥管理体系来管理账户。
或许以上概念过于抽象,我来举个例子,你就好理解了。
你可以想象有 100 台计算机分布在世界各地,这 100 台机器之间的网络是广域网,并且,这 100 台机器的拥有者互相不信任。
那么,我们采用什么样的算法(共识机制)才能够为它提供一个可信任的环境,并且使得:
节点之间的数据交换过程不可篡改,并且已生成的历史记录不可被篡改;
每个节点的数据会同步到最新数据,并且会验证最新数据的有效性;
基于少数服从多数的原则,整体节点维护的数据可以客观反映交换历史。
区块链就是为了解决上述问题而产生的技术方案。
二、区块链的核心技术组成
无论是公链还是联盟链,至少需要四个模块组成:P2P 网络协议、分布式一致性算法(共识机制)、加密签名算法、账户与存储模型。
1、P2P 网络协议
P2P 网络协议是所有区块链的最底层模块,负责交易数据的网络传输和广播、节点发现和维护。
通常我们所用的都是比特币 P2P 网络协议模块,它遵循一定的交互原则。比如:初次连接到其他节点会被要求按照握手协议来确认状态,在握手之后开始请求 Peer 节点的地址数据以及区块数据。
这套 P2P 交互协议也具有自己的指令集合,指令体现在在消息头(Message Header) 的 命令(command)域中,这些命令为上层提供了节点发现、节点获取、区块头获取、区块获取等功能,这些功能都是非常底层、非常基础的功能。如果你想要深入了解,可以参考比特币开发者指南中的 Peer Discovery 的章节。
2、分布式一致性算法
在经典分布式计算领域,我们有 Raft 和 Paxos 算法家族代表的非拜占庭容错算法,以及具有拜占庭容错特性的 PBFT 共识算法。
如果从技术演化的角度来看,我们可以得出一个图,其中,区块链技术把原来的分布式算法进行了经济学上的拓展。
在图中我们可以看到,计算机应用在最开始多为单点应用,高可用方便采用的是冷灾备,后来发展到异地多活,这些异地多活可能采用的是负载均衡和路由技术,随着分布式系统技术的发展,我们过渡到了 Paxos 和 Raft 为主的分布式系统。
而在区块链领域,多采用 PoW 工作量证明算法、PoS 权益证明算法,以及 DPoS 代理权益证明算法,以上三种是业界主流的共识算法,这些算法与经典分布式一致性算法不同的是,它们融入了经济学博弈的概念,下面我分别简单介绍这三种共识算法。
PoW: 通常是指在给定的约束下,求解一个特定难度的数学问题,谁解的速度快,谁就能获得记账权(出块)权利。这个求解过程往往会转换成计算问题,所以在比拼速度的情况下,也就变成了谁的计算方法更优,以及谁的设备性能更好。
PoS: 这是一种股权证明机制,它的基本概念是你产生区块的难度应该与你在网络里所占的股权(所有权占比)成比例,它实现的核心思路是:使用你所锁定代币的币龄(CoinAge)以及一个小的工作量证明,去计算一个目标值,当满足目标值时,你将可能获取记账权。
DPoS: 简单来理解就是将 PoS 共识算法中的记账者转换为指定节点数组成的小圈子,而不是所有人都可以参与记账。这个圈子可能是 21 个节点,也有可能是 101 个节点,这一点取决于设计,只有这个圈子中的节点才能获得记账权。这将会极大地提高系统的吞吐量,因为更少的节点也就意味着网络和节点的可控。
3、加密签名算法
在区块链领域,应用得最多的是哈希算法。哈希算法具有抗碰撞性、原像不可逆、难题友好性等特征。
其中,难题友好性正是众多 PoW 币种赖以存在的基础,在比特币中,SHA256 算法被用作工作量证明的计算方法,也就是我们所说的挖矿算法。
而在莱特币身上,我们也会看到 Scrypt 算法,该算法与 SHA256 不同的是,需要大内存支持。而在其他一些币种身上,我们也能看到基于 SHA3 算法的挖矿算法。以太坊使用了 Dagger-Hashimoto 算法的改良版本,并命名为 Ethash,这是一个 IO 难解性的算法。
当然,除了挖矿算法,我们还会使用到 RIPEMD160 算法,主要用于生成地址,众多的比特币衍生代码中,绝大部分都采用了比特币的地址设计。
除了地址,我们还会使用到最核心的,也是区块链 Token 系统的基石:公私钥密码算法。
在比特币大类的代码中,基本上使用的都是 ECDSA。ECDSA 是 ECC 与 DSA 的结合,整个签名过程与 DSA 类似,所不一样的是签名中采取的算法为 ECC(椭圆曲线函数)。
从技术上看,我们先从生成私钥开始,其次从私钥生成公钥,最后从公钥生成地址,以上每一步都是不可逆过程,也就是说无法从地址推导出公钥,从公钥推导到私钥。
4、账户与交易模型
从一开始的定义我们知道,仅从技术角度可以认为区块链是一种分布式数据库,那么,多数区块链到底使用了什么类型的数据库呢?
我在设计元界区块链时,参考了多种数据库,有 NoSQL 的 BerkelyDB、LevelDB,也有一些币种采用基于 SQL 的 SQLite。这些作为底层的存储设施,多以轻量级嵌入式数据库为主,由于并不涉及区块链的账本特性,这些存储技术与其他场合下的使用并没有什么不同。
区块链的账本特性,通常分为 UTXO 结构以及基于 Accout-Balance 结构的账本结构,我们也称为账本模型。UTXO 是“unspent transaction input/output”的缩写,翻译过来就是指“未花费的交易输入输出”。
这个区块链中 Token 转移的一种记账模式,每次转移均以输入输出的形式出现;而在 Balance 结构中,是没有这个模式的。

⑵ 浠ュお鍧婂竵鏄濡備綍浜х敓鐨


浠ュお鍧婂竵鏄濡備綍浜х敓鐨勶紵
闅忕潃浜轰滑瀵瑰尯鍧楅摼鎶鏈鍜屽姞瀵嗚揣甯佺殑璁ょ煡搴﹂愭笎鎻愰珮锛屼互澶鍧婂竵鎴愪负鐜板湪鏈鐑闂ㄧ殑鍔犲瘑璐у竵涔嬩竴銆備絾鏄锛岃稿氫汉閮戒笉娓呮氫互澶鍧婂竵鏄濡備綍浜х敓鐨勩傚湪鏈鏂囦腑锛屾垜浠灏嗘帰璁ㄤ互澶鍧婂竵鐨勪骇鐢熻繃绋嬨
浠ュお鍧婃槸涓绉嶅熀浜庡尯鍧楅摼鐨勫紑婧愬钩鍙帮紝鐢ㄤ簬鏋勫缓鏅鸿兘鍚堢害鍜屽幓涓蹇冨寲搴旂敤绋嬪簭锛圖Apps锛夈備互澶鍧婄殑甯佺嶄负浠ュお甯侊紙Ether锛夛紝缂╁啓涓篍TH銆備笌鍏朵粬鍔犲瘑璐у竵涓鏍凤紝ETH鐨勪骇鐢熸槸閫氳繃鐭垮伐鐨勭珵浜夐獙璇佹柊鍖哄潡鐨勮繃绋嬩腑鑾峰緱鐨勩
浠ュお鍧婇噰鐢ㄤ簡ProofofWork锛圥OW锛夊叡璇嗙畻娉曪紝涓庢瘮鐗瑰竵鐩稿悓銆傝繖鎰忓懗鐫锛岀熆宸ラ渶瑕侀氳繃璁$畻澶嶆潅鐨勬暟瀛﹂樻潵楠岃瘉鏂板尯鍧椼傝繖涓杩囩▼琚绉颁负鎸栫熆銆傜熆宸ヤ娇鐢ㄤ粬浠鐨勭數鑴戝勭悊鑳藉姏锛岃繍琛岀畻娉曟潵瑙e喅鏁板﹂棶棰樸備竴鏃﹂棶棰樿В鍐筹紝涓涓鏂扮殑鍖哄潡灏辫娣诲姞鍒板尯鍧楅摼涓娿
鍦ㄤ互澶鍧婄綉缁滀腑锛屾瘡褰撲竴涓鏂扮殑鍖哄潡琚娣诲姞鍒板尯鍧楅摼涓婃椂锛屽氨浼氭湁鏂扮殑ETH浜х敓銆傝繖浜涙柊鐨凟TH鐢辩熆宸ラ氳繃楠岃瘉鏂扮敓鎴愮殑鍖哄潡鑾峰緱銆傛瘡褰撹繖涓杩囩▼鍙戠敓锛屼互澶鍧婄殑鎬讳緵搴旈噺灏变細澧炲姞銆
浠ュお鍧婄殑渚涘簲閲忔湁涓涓涓婇檺锛岃繖涓涓婇檺鏄2.1浜裤傜洰鍓嶏紝澶х害鏈1.15浜縀TH澶勪簬娴侀氱姸鎬併傝繖鎰忓懗鐫锛岃繕鏈夌害1浜縀TH灏嗘潵鍙鑳借鎸栧嚭鏉ャ
铏界劧浠ュお鍧婄洰鍓嶉噰鐢≒OW绠楁硶锛屼絾瀹冭″垝鍦ㄤ笉涔呯殑灏嗘潵杞鍚慞roofofStake锛圥OS锛夊叡璇嗙畻娉曘侾OS绠楁硶涓嶉渶瑕佺熆宸ヨ繘琛岀箒閲嶇殑鏁板﹁$畻锛岃屾槸璁╁弬涓庤呭湪缃戠粶涓婃嫢鏈夌殑浠ュお鍧婃暟鐩浣滀负鎶垫娂锛屾潵楠岃瘉鏂扮殑鍖哄潡銆傝繖涓杩囩▼琚绉颁负閾搁犮侾OS鐨勫ソ澶勬槸鑳芥洿鍔犺妭鑳界幆淇濓紝闄嶄綆鐢佃垂锛屽苟闃叉㈡帀鐢点佹晠闅滅瓑椋庨櫓銆
鎬讳箣锛屼互澶鍧婂竵鏄閫氳繃鐭垮伐鐨勭珵浜夎$畻楠岃瘉鏂板尯鍧楃殑杩囩▼涓浜х敓鐨勩傝繖涓杩囩▼琚绉颁负鎸栫熆锛岃繖涔熸槸鎵鏈夊熀浜嶱OW鍏辫瘑绠楁硶鐨勫尯鍧楅摼浣跨敤鐨勬柟娉曘傜劧鑰岋紝浠ュお鍧婂嵈璁″垝鍦ㄦ湭鏉ヨ浆鍚慞OS鏈哄埗鏉ラ摳閫犳柊閾俱傝繖灏嗘槸涓绉嶆洿涓洪珮鏁堛佸畨鍏ㄣ佺幆淇濈殑鏂瑰紡銆

阅读全文

与以太坊共识算法拜站挺相关的资料

热点内容
巴比特数字货币是正规的吗 浏览:237
投资虚拟货币哪个好 浏览:399
区块链安全威胁原则 浏览:983
泰拉瑞亚比特币 浏览:471
比特币了解人 浏览:411
为什么没人质疑区块链 浏览:374
区块链用于课堂教学 浏览:990
外国比特币挖圹政策 浏览:612
比特币实名认证提交失败 浏览:38
以太坊交易平台排行 浏览:508
虚拟货币合约玩法真的吗吗 浏览:988
中国比特币网站下载 浏览:175
我的比特币地址怎么生成 浏览:184
云南省区块链发票查验 浏览:364
区块链与人工智能间的关系 浏览:721
BTCAPI命令中文版 浏览:9
怎样把单个电脑的算力集合起来 浏览:879
比特币2019年5月17 浏览:1
抖音号送出礼物失败虚拟货币未扣除 浏览:863
比特币的未来5年前景 浏览:723