Bitcoin Forum
May 05, 2024, 05:23:51 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: 拜占庭容错(BFT)算法介绍  (Read 364 times)
ji23189455 (OP)
Member
**
Offline Offline

Activity: 274
Merit: 15


View Profile
March 05, 2018, 01:38:29 AM
Merited by Barcode_ (1)
 #1

    比特币将世界的注意力引向到了区块链。但可惜的是,比特币版本的区块链不能解决区块链行业的很多问题。那是因为:

    1、比特币的POW共识会浪费大量能源。

    2、交易非常缓慢,一笔交易需要花一个小时甚至更长的时间。

    3、没有什么激励机制来激励POW矿工忠于一条链,所以会导致升级很困难。



    我们需要一种安全的共识,并且不会给我们的地球施加巨大的能源成本。这种方法就是基于拜占庭容错(BFT)的权益证明(POS )。我们称之为BFT-PoS。



    在我们深入了解BFT-PoS之前,我们只需要知道拜占庭错误,而不需要知道拜占庭将军问题 的细节。 在分布式系统中,数据需要在数百或数千个节点上进行复制,而计算机时不时会网络中断或脱机,所以需要有一些容错机制或共识算法。那么如果这些节点的一部分失败,整个系统仍然需要达成共识。



    标准的容错共识算法(如Raft 和Paxos)假设当一个节点出现故障时,它只是停止工作而不回复消息。谷歌,Facebook和一些现有的数据库产品已经在他们的防火墙内使用了这一系列的共识算法,使机器有故障产生时也能确保服务仍然可用。



    但这些算法不适用于公有区块链,因为公有区块链中没有防火墙。任何拥有算力(PoW)或代币(PoS)的人都可以参与,甚至可以试图破坏网络。为了达成共识,我们需要拜占庭的容错能力。在拜占庭故障中,故障节点能以完全任意的方式运行。节点甚至可以串通来尝试作恶,并最大限度地发挥其破坏力。



    因此,本质上,BFT共识算法的目的是在不信任网络(如万维网)中的节点间建立信任。 BFT不是什么新概念,该概念首先在Lamport,Shostak和Pease于1982年的一篇学术论文中引入 。但是Lamport等人只在同步环境中(所有的消息总是及时到达)演示了算法的理论可行性。 但在现实世界中,你不能真正地相信互联网能及时交付任何东西。



    所以在1988年,Dwork,Lynch,Stockmeyer(DLS)提出了一种在大多数异步环境中工作的算法。 1999年晚些时候,米格尔·卡斯特罗和芭芭拉·里斯科夫提出了一个实用的解决方案,用于持续的BFT协商一致,这仍然是迄今为止最先进的BFT算法。



    但长久以来,主流媒体忽视了这些创作。 没有人明白BFT在学术界和诸如IBM和DARPA之类的主要机构之外的重要性,直到2009年Bitcoin来临。比特币是第一个开放式去中心化应用程序,为全球货币帐本提供BFT共识,但对拜占庭式将军的问题采用了一种全新的解决方案:PoW。在PoW中,谁的算力最强,谁最有可能打包交易出块,获得该块交易费和新产生的比特币。今天,许多矿业公司在生产矿机,也有许多矿工正在加入矿池。



    另一方面,PoS完全消除了PoW的能源依赖。在PoS中,矿工被替换为在系统中拥有股权的“验证者”。验证者不必投资昂贵的处理系统,但他们必须购买“股权代币”。任何普通笔记本电脑都足以解决计算。 Peercoin,BitShares,Nxt等已经使用了某种形式的PoS,而Ethereum正在计划于不久的将来进行PoS。然而,虽然PoS具有实际意义,但是很多人都反对使用PoS,声称这是不可能的。但这根本不是事实。使用BFT,您绝对可以保护PoS。只是我们还没有看到任何公有链实现了BFT-PoS。



    虽然该理论可能难以解释或理解,但适当的BFT算法提供的最终结果很容易掌握。 与PoW区块链不同,BFT-PoS块链根本不分叉。对于双花攻击,除非1/3或更多的验证者协调进行此类攻击。而且,当1/3或更多的验证者确实导致双重花费攻击时,我们可以计算确定哪些验证者需要对攻击负责,进而可以摧毁它们的权益代币并将其从网络中剔除,就好像矿工联合起来控制整个链一样。



    至今,包括POW算法在内,还没有哪种共识算法可以达到BFT-PoS的容错水平。 BFT-PoS表现非常出色。今天,在全球有几百个验证节点的公有链中,你可以在3s内轻松获得交易确认。这一“即时确认”的最佳容错阈值理论已经被tendermint证明。虽然随着验证节点的增加共识速度会变慢,但遵循着Nielsen定律(网络带宽和响应速度增长),每年都可以增加一定的节点,而性能不会变。



     此外,BFT-PoS还将增加移动钱包的安全性。目前存在的移动钱包很少充分利用了比特币提供的安全性,因为没有人愿意等待一个小时才能确认交易。相反,大多数钱包只是假设转账的人不会双花。而且,虽然我们没有时间在这里进行深入研究,但高效的移动钱包协议或“轻客户端SPV”协议是未来区块链互操作性的关键。



    虽然PoW在比特币方面表现很好,但代价昂贵,速度慢,环境不友好。现在最好的选择是BFT-PoS。它是一种持久、节能的解决方案,在异步环境中运行良好。最重要的是,由于BFT是计算机科学界最好和最聪明的开发机构证明安全的。
1714929831
Hero Member
*
Offline Offline

Posts: 1714929831

View Profile Personal Message (Offline)

Ignore
1714929831
Reply with quote  #2

1714929831
Report to moderator
"Bitcoin: mining our own business since 2009" -- Pieter Wuille
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
dongxier
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
March 05, 2018, 03:01:27 AM
 #2

有没有一种比较白话一点的方式,介绍下?
这样看了还是不太明白。
richwanghai
Newbie
*
Offline Offline

Activity: 75
Merit: 0


View Profile
March 05, 2018, 04:08:00 AM
 #3

难得看到一个还能看的算法知识帖,那些介绍pow和pos的都是什么鬼,有人不知道那些算法么。。
coin2.0
Sr. Member
****
Offline Offline

Activity: 622
Merit: 251

love coins


View Profile WWW
March 05, 2018, 01:39:32 PM
 #4

咋没人介绍POC算法  硬盘挖矿 今年的热点
lucky626
Full Member
***
Offline Offline

Activity: 322
Merit: 100



View Profile
March 06, 2018, 09:38:14 AM
 #5

有没有一种比较白话一点的方式,介绍下?
这样看了还是不太明白。

很简单不管什么算法!
就两种表现方式!
POW算力证明   以比特币~ETH为代表.需要矿机及显卡提供算力支持网络!
POS权重证明,钱包持币挖币(可以理解为存币赚利息),以点点币~黑币为代表!
另一种模式是主节点奖励(需要服务器本地钱包需锁定一定数量币)以达世币为代表!
lifejyy
Newbie
*
Offline Offline

Activity: 70
Merit: 0


View Profile
March 07, 2018, 03:33:30 AM
 #6

POW现在已经掌控在大矿场手上,POS已经掌控在庄家手上,其实两种都无法解决公平与分散的问题
lucky626
Full Member
***
Offline Offline

Activity: 322
Merit: 100



View Profile
March 08, 2018, 06:14:11 AM
 #7

POW现在已经掌控在大矿场手上,POS已经掌控在庄家手上,其实两种都无法解决公平与分散的问题

人生就没有绝对公平的事。

都是先入为主~

就拿这论坛来说吧。

2014年注册大部分都传奇帐号了吧~同时也有一些长期没登录的小号(还是新手)。

2018注册的新手与不管那年注册的新手都是一样。

那些传奇帐也是长时间慢慢熬出来的。
Destinysd89
Newbie
*
Offline Offline

Activity: 95
Merit: 0


View Profile
March 10, 2018, 08:57:51 AM
 #8

优质帖,不错,慢慢看一下,从中学习一下
junxian01
Newbie
*
Offline Offline

Activity: 9
Merit: 0


View Profile
March 11, 2018, 03:47:12 AM
 #9

哇,这个看起来有点深奥啊
Billone
Full Member
***
Offline Offline

Activity: 280
Merit: 100



View Profile
March 11, 2018, 05:12:25 AM
 #10

比特币的POW算法在不断发展中的区块链技术来说,是有很多不足的,现在很多新的项目都是使用其他的机制,我相信未来比特币没准也会转向这方面发展
wushinibabaya
Newbie
*
Offline Offline

Activity: 27
Merit: 0


View Profile
March 11, 2018, 05:17:45 AM
 #11

迁一阵论坛里很火的sem就是采用的这种机制。
Iron@head
Member
**
Offline Offline

Activity: 168
Merit: 10


View Profile
March 11, 2018, 05:56:56 AM
 #12

不知道楼主的赞,都是怎么集的,在这 行情下

stalgic4
Newbie
*
Offline Offline

Activity: 76
Merit: 0


View Profile
March 12, 2018, 03:27:32 AM
 #13

目前还没有一种能够完美的算法机制把,我觉得pow和pos的算法不够好,但是这个bft的算法也不是完美的
jiuqianwan
Newbie
*
Offline Offline

Activity: 114
Merit: 0


View Profile
March 12, 2018, 03:39:48 AM
 #14

算法,区块链底层技术。
yongle
Newbie
*
Offline Offline

Activity: 86
Merit: 0


View Profile
March 23, 2018, 09:43:48 AM
 #15

厉害了,学习到了,帮楼主顶一个。
biaoge30
Full Member
***
Offline Offline

Activity: 252
Merit: 100



View Profile
March 23, 2018, 07:24:29 PM
 #16

拜占庭,这名字翻译的好啊,够高大上
yns1971
Sr. Member
****
Offline Offline

Activity: 399
Merit: 250



View Profile
March 23, 2018, 08:11:58 PM
 #17

semux使用BFT共识,看起来很好
changseay
Newbie
*
Offline Offline

Activity: 1
Merit: 0


View Profile
March 23, 2018, 10:29:15 PM
 #18

安全性上来讲pow算法目前还是更好一些吧?
xiaomingdada
Member
**
Offline Offline

Activity: 141
Merit: 10


View Profile
March 24, 2018, 07:24:41 AM
 #19

看的糊里糊涂的,好像很厉害的样子,不过说的有点复杂了,其实对于我们这些小白来说不需要多升入的去知道,只要了解一下就好了。

▰   SEMUX   -   An innovative high-performance blockchain platform   ▰
■▬▬▬▬▬      Powered by Semux BFT consensus algorithm      ▬▬▬▬▬■
Github   -   Discord   -   Twitter   -   Telegram   -   Get Free Airdrop Now!
xindehao
Member
**
Offline Offline

Activity: 142
Merit: 10


View Profile
March 25, 2018, 07:07:44 PM
 #20

又學習了,論壇真是好啊,每天都能學到新的知識
Pages: [1] 2 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!