比特币拜占庭将军
1. 比特币如何防止篡改
比特币网络主要会通过以下两种技术保证用户签发的交易和历史上发生的交易不会被攻击者篡改:
非对称加密可以保证攻击者无法伪造账户所有者的签名;
共识算法可以保证网络中的历史交易不会被攻击者替换;
- 非对称加密算法3是目前广泛应用的加密技术,TLS 证书和电子签名等场景都使用了非对称的加密算法保证安全。非对称加密算法同时包含一个公钥(Public Key)和一个私钥(Secret Key),使用私钥加密的数据只能用公钥解密,而使用公钥解密的数据也只能用私钥解密。
- 1使用如下所示的代码可以计算在无限长的时间中,攻击者持有 51% 算力时,改写历史 0 ~ 9 个区块的概率9:
- #include
- #include
- double attackerSuccessProbability(double q, int z) {
- double p = 1.0 - q;
- double lambda = z * (q / p);
- double sum = 1.0;
- int i, k;
- for (k = 0; k <= z; k++) {
- double poisson = exp(-lambda);
- for (i = 1; i <= k; i++)
- poisson *= lambda / i;
- sum -= poisson * (1 - pow(q / p, z - k));
- }
- return sum;
- }
- int main() {
- for (int i = 0; i < 10; i++) {
- printf("z=%d, p=%f\n", i, attackerSuccessProbability(0.51, i));
- }
- return 0;
- }
- 通过上述的计算我们会发现,在无限长的时间中,占有全网算力的节点能够发起 51% 攻击修改历史的概率是 100%;但是在有限长的时间中,因为比特币中的算力是相对动态的,比特币网络的节点也在避免出现单节点占有 51% 以上算力的情况,所以想要篡改比特币的历史还是比较困难的,不过在一些小众的、算力没有保证的一些区块链网络中,51% 攻击还是极其常见的10。
- 防范 51% 攻击方法也很简单,在多数的区块链网络中,刚刚加入区块链网络中的交易都是未确认的,只要这些区块后面追加了数量足够的区块,区块中的交易才会被确认。比特币中的交易确认数就是 6 个,而比特币平均 10 分钟生成一个块,所以一次交易的确认时间大概为 60 分钟,这也是为了保证安全性不得不做出的牺牲。不过,这种增加确认数的做法也不能保证 100% 的安全,我们也只能在不影响用户体验的情况下,尽可能增加攻击者的成本。
- 研究比特币这样的区块链技术还是非常有趣的,作为一个分布式的数据库,它也会遇到分布式系统经常会遇到的问题,例如节点不可靠等问题;同时作为一个金融系统和账本,它也会面对更加复杂的交易确认和验证场景。比特币网络的设计非常有趣,它是技术和金融两个交叉领域结合后的产物,非常值得我们花时间研究背后的原理。
- 比特币并不能 100% 防止交易和数据的篡改,文中提到的两种技术都只能从一定概率上保证安全,而降低攻击者成功的可能性也是安全领域需要面对的永恒问题。我们可以换一个更严谨的方式阐述今天的问题 — 比特币使用了哪些技术来增加攻击者的成本、降低交易被篡改的概率:
比特币使用了非对称加密算法,保证攻击者在有限时间内无法伪造账户所有者的签名;
比特币使用了工作量证明的共识算法并引入了记账的激励,保证网络中的历史交易不会被攻击者快速替换;
- 通过上述的两种方式,比特币才能保证历史的交易不会被篡改和所有账户中资金的安全。
非对称加密
图 4 - 51% 攻击
总结
2. 你知道区块链本质是什么吗比特币的原理又是什么
区块链发展到今天已经有一段时间了,在这段时间里,人们对区块链的认知经历了快速的更换。
区块链的本质是技术
既然说到本质,什么是本质?本质应该是不停向前追溯,一直追溯到不能进一步追溯为止,那时得到的东西才能称之为本质。区块链的本质,是一种技术。回到区块链最初的那个原点,回到比特币刚刚诞生的时候,它要解决的问题是拜占庭将军问题,从专业角度来讲,也就是要解决如何在分布式环境下达成一致性的问题。区块链这种技术,是多项技术的组合,它天然适合多方合作,可以为多方合作提供可信环境。
区块链不可篡改特性的应用
比特币的技术原理P2P网络
比特币是一个P2P的计算机网络,每一个网络节点存储着这个网络上所有的交易记录。 一般来说任何信息记录在一个节点加若干备份就可以了。在每一个节点上存储一遍这个网络的所有交易记录,这导致交易记录被每个节点可以看见、每个节点不能独立任意修改交易记录,所以形成了一套公开透明的交易记录。
3. 什么是比特币加密技术
比特币和区块链的诞生需要依赖于很多核心技术的突破:一是拜占庭容错技术;二是非对称加密技术;三是点对点支付技术。下面会依次介绍。
拜占庭容错技术
比特币和区块链诞生的首要难点在于如何创建分布式共识机制,也就是菜斯利·兰伯特等人1982年提出的拜占庭将军问题。所谓拜占庭将军问题是指,把战争中互不信任的各城邦军队如何达成共识并决定是否出兵的决策过程。延伸至计算机领域,试图创建具有容错性的分布式系统,即使部分节点失效仍可确保系统正常运行,也可让多个基于零信任基础的节点达成共识,并确保信息传递的一致性。
中本聪所提到的“拜占庭将军问题”解决方法起始于亚当﹒拜克在1997年发明的哈希现金算法机制,起初该设计是用于限制垃圾邮件发送与拒绝服务攻击。2004年,密码朋克运动早期和重要成员哈尔·芬尼将亚当﹒拜克的哈希现金算法改进为可复用的工作量证明机制。他们的研究又是基于达利亚·马凯与迈克尔·瑞特的学术成果:拜占庭容错机制。正是哈尔·芬尼的可复用的工作量证明机制后来成为比特币的核心要素之一。哈尔·芬尼是中本聪的最早支持者,同时也是第一笔比特币转账的接受者,在比特币发展的早期与中本聪有大量互动与交流。
非对称加密技术
比特币的非对称加密技术来源于以下几项密码学的技术创新:1976年,Sun公司前首席安全官Whitfield Diffie与斯坦福大学教授Martin Hell,在开创性论文《密码学的新方向》首次提出公开钥匙密码学的概念,发明了非对称加密算法。1978年省理工学院的伦纳德·阿德曼、罗纳德·李维斯特、阿迪·萨莫尔三名研究人员,共同发明了公开钥匙系统“RSA”可用于数据加密和签名,率先开发第一个具备商业实用性的非对称RSA加密算法。1985年,Neal Koblitz和Victor Miller俩人,首次提出将椭圆曲线算法(ECC),应用于密码学,并建立公钥加密的算法,公钥密码算法的原理是利用信息的不对称性,公钥对应的是私钥,私钥是解开所有信息的钥匙,公钥可以由私钥反推算出。ECC能够提供比RSA更高级别的安全。比特币使用的就是椭圆曲线算法公钥用于接收比特币,而私钥则是比特币支付时的交易签名。这些加密算法奠定了当前非对称加密理论的基础,被广泛应用于网络通信领域。但是,当时这些加密技术发明均在NSA严密监视的视野之内。NSA最初认为它们对国家安全构成威胁,并将其视为军用技术。直到20世纪90年代末,NSA才放弃对这些非对称加密技术的控制,RSA算法、ECC算法等非对称加密技术最终得以走进公众领域。
不过,中本聪并不信任NSA公布的加密技术,在比特币系统中没有使用RSA公钥系统,原因除了ECC能够提供比RSA更高级别的安全性能外,还担心美国安全部门在RSA留有技术后门。2013年9月,斯诺登就曾爆料NSA采用秘密方法控制加密国际标准,比特币采用的RSA可能留有后门,NSA能以不为人知的方法弱化这条曲线。所幸的是,中本聪神一般走位避开了RSA的陷阱,使用的加密技术不是NSA的标准,而是另一条鲜为人知的椭圆曲线,这条曲线并不在美国RSA的掌握之下。全世界只有极少数程序躲过了这一漏洞,比特币便是其中之一。
4. 比特币真正的价值是什么
“价值”不应与价格混淆,价格是比特币的货币成本。比特币的价值是其创新,网络和功能的许多方面的结果。
1.科学价值
在科学领域,比特币创新对解决长期存在的拜占庭将军问题。中本聪解决了数字双重支出的困境是通过一个自我组织和时间的共识记录来实现的。区块链,一个共享的公共分类帐,是由填充比特币网络的对等网络节点保持。通过云挖矿赚取比特币!

比特币合约由中本聪编写,尽管该协议的这个方面迄今为止只有很少的应用。合同扩展了比特币的多重签名功能,允许两方或多方参与由比特币网络外部实现的协议。例如选项合同,遗嘱,甚至简单的二元赌注,例如足球比赛的结果。将来,比特币的这种功能将会被更好地理解,更频繁地使用,并为协议增加更多的价值。
5. 如何理解拜占庭将军问题
拜占庭将军问题(以下简称“共识问题”)的正式表述是:如何在一个不基于信任的分布式网络中就信息达成共识?这个表述听起来有些晦涩,但其本质并不复杂,下面的例子与共识问题虽然并不完全一致,但却有助于我们的理解[9]。 想象一下在遥远的拜占庭时代,有一个富饶的城邦,金银珠宝绫罗绸缎应有尽有,它的领主哆啦A梦独享着这一切奢华与荣耀。而在城邦的外围,四位拜占庭将军大雄、胖虎、小夫和静香都觊觎着哆啦A梦的财富,于是他们决定联手攻占哆啦A梦的城邦。根据双方的实力对比,必须有超过半数的将军同时发起进攻方能克敌制胜,因此获胜条件就是四人中至少三个人可以就进攻时间达成一致。那么四位将军的胜算有多少呢? 这个问题的答案就要取决于四个人的合作方式了,如果是集中式系统,有一个盟主,比如胖虎(相当于中央服务器),那么他们的胜利是毫无悬念的,因为就进攻时间达成一致非常简单,只要胖虎召集大雄、小夫和静香开个会讨论一下就可以了,即使大家意见有分歧胖虎也可以在最后予以定夺。下面让我们回到拜占庭将军问题的假设里,在不基于信任的分布式网络中,四位将军的胜算又如何呢? ? 首先由于四位将军之间缺乏信任,因此聚到小黑屋里开个密谋会的可能性被排除了(一旦在小黑屋里被胖虎绑架了怎么办?);其次由于没有盟主,四个人的意见都会被同等的看重。在这种情况下,四位将军只能通过信使在各自营地之间传递消息,来商定进攻时间了。比如大雄觉得早上6点是发动进攻的好时机,他就会派信使将自己的意见告诉胖虎、小夫和静香,与此同时,胖虎可能认为晚上9点发动突袭更好,小夫更喜欢下午3点出击,而静香希望是上午10点,他们三人也会在同一时间派出自己的信使。这样一来,在第一轮通信结束后,四位将军每个人都有了四个可供选择的进攻时间,他们各自要在下一轮通信中把自己选定的时间告知另外三人。由于四个人的决策都是独立做出的,因此最终的选择结果就有256种可能,而只有当三人以上都恰好选择了同一时间的时候,共识才被达成,而这样的结果才64种,也就是说达成共识的概率仅为1/4。这还只是四位将军的情况,如果将军的人数是10人,100人,1000人呢?我们稍加计算就可以发现随着人数的增加,达成共识的希望会变得越来越渺茫。 把上面例子中的将军换成计算机网络中的节点,把信使换成节点之间的通信,把进攻时间换成需要达成共识的信息,你就可以理解共识问题所描述的困境了。达成共识的能力对于一个支付系统来说重要性不言而喻,如果你给家里汇了一笔钱买车,第二天去银行核实的时候柜台告诉你“关于你汇了多少钱的问题,我们的系统里有三个版本的记录”,这样的银行你显然是不敢把钱存进去的。在比特币出现之前共识问题是很难被完美解决的,要保证达成共识就需要采用集中式系统(除非节点满足特定条件),要想去中心化共识就无法保证。那么区块链技术又是如何解决这一难题的呢?
6. 比特币的价值是什么
从本质上来说,比特币只是一个计算机软件,对大部分人来说也就是一堆看不懂的代码,几乎没办法看清它到底有什么价值。
而要说凭一个软件能赚那么多身家的,我们最耳熟能详且最容易理解的也就是比尔盖茨和它的微软windows操作系统了。Windows 走入千家万户、各行业,人们通过这个计算机程序提高了生产力、创造出了巨大的价值,于是微软甚至一度成为全世界市值最高的公司。
那么同样作为一个“身价”特别高的软件比特币呢?“价值来自共识”,这句话听得耳朵都起了老茧,其实很多人更想要知道的是,比特币具体都给哪些人和事带来了什么样的价值,从而支撑了对它的共识,并稳步推高它的市值超过1万亿?
1. 矿工及其它矿业生态参与者
简单的说,比特币矿机对于矿工来说就是源源不断获利的机器,它能像鸡一样下蛋产生价值,甚至走向百亿身家富豪之路,这就是比特币对于矿工、矿机场商、矿池(服务商)等参与矿业生态上下游这些人的价值。矿工对于比特币来说是最为重要的参与者,而对于矿工来说,能够生产比特币的矿机,就是一只会下金蛋的“母鸡”。尽管挖矿一途并非想象中那么简单,而且真的有点像开“养鸡场”一般需要提供各种合适的环境、维护以及“食物”(能源)的输送才能够顺利产下“金蛋”获利,但是矿工们是被比特币的利益分配机制所吸引,并不断有新的矿工加入进来。
2. 使用者
比特币系统全名叫做:一个点对点的电子现金系统,因此对于使用者来说,就是可以用它来发起转账交易。那么为什么要用它来转账呢?说白了就是省时、省力和省钱。比特币不需要通过银行、第三方支付公司等等中转而直接到达对方账户,也就免去了第三方机构的处理时间、操作人力和费用,银行等金融机构通过金融业务收取来的费用给自己建起的高楼大厦就能说明这笔费用有多庞大。其实很多人对第三方担保机构的概念不是很理解,很多时候我们转账是免费的,因为在信用社会里,小额转账是通过不同金融机构之间的信用额度完成的,并不是真正的转移。
3. 储存者、投机者
因为比特币有使用价值,并且有很多优质的特性特别像黄金,且有部分特性优于黄金,也有了黄金一样的“部分”避险和储值功能,于是它逐渐被当做是黄金这种国际硬通货一样开始被许多人囤积起来。
4. 贫穷落后或“动荡”地区的人民
由于比特币的转账成本低、所需时间短。在许多贫穷落后的国家,通过加密网络来转账可以不必建设昂贵的网络基础设施,比特币的基础设施由世界各地的矿工组建而成,不需要贫穷国家政府负担,而用于支付和发放薪水没有任何中间费用,可以节省很大一笔钱。
5. 能源价值储存
在这个世界上有许多这样的角落,地处偏远但矿产丰富或者水利、风力等自然资源丰富。比如部分地区有很多煤矿,但迫于运输成本过高无法往外运输,同时由于人烟稀少,这些地区建设起来的火电、水电站、风电场产生的电能是非常过剩的,往往这些地区的经济又比较落后。这时候他们就非常需要和欢迎矿工的入驻,矿工们不但带来了大量工作岗位,还把当地富余的能源转换成电力资源再通过比特币挖矿大量产出收益,此举其实相当于把原本可能富余浪费的能源价值通过比特币网络储存起来,然后再通过电费缴付给当地政府和人民,带动当地的经济。
链乔教育在线旗下学硕创新区块链技术工作站是中国教育部学校规划建设发展中心开展的“智慧学习工场2020-学硕创新工作站 ”唯一获准的“区块链技术专业”试点工作站。专业站立足为学生提供多样化成长路径,推进专业学位研究生产学研结合培养模式改革,构建应用型、复合型人才培养体系。
7. 中本聪是怎么解决拜占庭将军问题的a设计了可复用的工作量证明por+pow+pow工作
摘要 故事大概是这么说的:
8. 刚刚了解,谁能告诉我区块链是什么通俗解释一下区块链技术的方法
大家共同记账的方式,也被称为“分布式”或“去中心化”,因为人人都记账,且账本的准确性由程式算法决定,而非某个权威机构。
这就是区块链,核心讲完了,区块链就这么简单,一个共同记账的账本
区块链技术六大核心算法:
区块链核心算法一:拜占庭协定
拜占庭的故事大概是这么说的:拜占庭帝国拥有巨大的财富,周围10个邻邦垂诞已久,但拜占庭高墙耸立,固若金汤,没有一个单独的邻邦能够成功入侵。任何单个邻邦入侵的都会失败,同时也有可能自身被其他9个邻邦入侵。拜占庭帝国防御能力如此之强,至少要有十个邻邦中的一半以上同时进攻,才有可能攻破。然而,如果其中的一个或者几个邻邦本身答应好一起进攻,但实际过程出现背叛,那么入侵者可能都会被歼灭。于是每一方都小心行事,不敢轻易相信邻国。这就是拜占庭将军问题。
区块链核心算法二:非对称加密技术
在上述拜占庭协定中,如果10个将军中的几个同时发起消息,势必会造成系统的混乱,造成各说各的攻击时间方案,行动难以一致。谁都可以发起进攻的信息,但由谁来发出呢?其实这只要加入一个成本就可以了,即:一段时间内只有一个节点可以传播信息。当某个节点发出统一进攻的消息后,各个节点收到发起者的消息必须签名盖章,确认各自的身份。
区块链核心算法三:容错问题
我们假设在此网络中,消息可能会丢失、损坏、延迟、重复发送,并且接受的顺序与发送的顺序不一致。此外,节点的行为可以是任意的:可以随时加入、退出网络,可以丢弃消息、伪造消息、停止工作等,还可能发生各种人为或非人为的故障。我们的算法对由共识节点组成的共识系统,提供的容错能力,这种容错能力同时包含安全性和可用性,并适用于任何网络环境。
区块链核心算法四:Paxos 算法(一致性算法)
Paxos算法解决的问题是一个分布式系统如何就某个值(决议)达成一致。一个典型的场景是,在一个分布式数据库系统中,如果各节点的初始状态一致,每个节点都执行相同的操作序列,那么他们最后能得到一个一致的状态。为保证每个节点执行相同的命令序列,需要在每一条指令上执行一个“一致性算法”以保证每个节点看到的指令一致。一个通用的一致性算法可以应用在许多场景中,是分布式计算中的重要问题。 节点通信存在两种模型:共享内存和消息传递。Paxos算法就是一种基于消息传递模型的一致性算法。
区块链核心算法五:共识机制
区块链共识算法主要是工作量证明和权益证明。拿比特币来说,其实从技术角度来看可以把PoW看成重复使用的Hashcash,生成工作量证明在概率上来说是一个随机的过程。开采新的机密货币,生成区块时,必须得到所有参与者的同意,那矿工必须得到区块中所有数据的PoW工作证明。与此同时矿工还要时时观察调整这项工作的难度,因为对网络要求是平均每10分钟生成一个区块。
区块链核心算法六:分布式存储是一种数据存储技术,通过网络使用每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散的存储在网络中的各个角落。所以,分布式存储技术并不是每台电脑都存放完整的数据,而是把数据切割后存放在不同的电脑里。就像存放100个鸡蛋,不是放在同一个篮子里,而是分开放在不同的地方,加起来的总和是100个。想了解更多可以多利用网络搜索,网络搜索结果-小知识
9. 为什么说区块链是制造信用的机器
区块链技术具有匿名性、去中心化、公开透明等特点。所以,区块链被誉为制造信用的机器.区块链并不是新发明的一种技术,而是一系列技术的集成,包括非对称加密技术、时间戳、共识机制等。
以比特币为例,区块链通过时间戳(Timestamp)和工作量证明(Proof of Work)机制解决了双重支付(Double Spending)和拜占庭将军问题(Byzantine Generals’ Problem),即保证同一笔比特币不可能被花费2次,并且在整个去中心化的区块链网络中,在所有节点间保持一致。
非对称加密机制保证私钥的安全性,时间戳保证区块按顺序连接成链,工作量证明机制解决了在去中心化系统中如何公平地分发2100万个比特币的问题。