主页 > 以太坊imtoken > 区块链技术、比特币技术总结笔记

区块链技术、比特币技术总结笔记

以太坊imtoken 2023-01-18 16:13:30

共识过程是一个非常有趣的过程。

在我们的日常生活中,几乎所有事情都是一个共识的过程。

共识建立过程越去中心化,效率越低,但满意度越高,因此越稳定;相反,建立共识的过程越集中,效率越高,也越容易出现独裁和腐败。

一种常见的达成共识的方法是通过物质激励对某一事件达成共识;但这种共识的问题在于,它很容易被外界其他更大的物质激励所破坏。

另一种是群体中的个体根据自身利益或整个群体利益的方向,自发地对某一事件达成共识;当然,这种以维护群体利益为核心的自发共识过程的形成,还需要时间和环境因素。是的,但是一旦达成这样的共识趋势,共识结果越稳定,被破坏的可能性就越小。

在比特币等区块链币中,也存在如何达成共识的问题。换句话说,比特币或其他区块链币的核心问题是如何在去中心化的环境中达成共识。

区块链是比特币背后的核心技术,也是支持比特币的基础设施。因此,当我们谈论区块链共识时,我们必须谈论比特币共识。

比特币的核心突破是在去中心化的情况下对交易事件达成共识,即在没有中心组织的情况下对交易的有效性达成共识。

比特币达成这种共识的方式主要包括两部分:

激励; 即通过每块产生一定数量的新比特币来激励参与者;

引入外部资源以确保安全;即通过大量外部计算来保证共识的安全性,即工作量证明(Proof of Power);

这也是几乎所有 PoW 币都采取的做法。

这种方法能够长期持续的先决条件是:

这种激励必须对参与者足够有吸引力;也就是说,比特币的价格必须持续上涨,才能吸引参与者继续参与挖矿计算,以维持整个网络的运行;否则,会导致参与人数减少,造成损失。网络安全;

没有外部攻击;由于比特币引入了外部计算来保证安全,只要有足够的挖矿算力(维护系统算力的51%以上),系统就可以被成功攻击,这也是比特币的长期安全性之一隐患;因为只要有钱,就可以买设备和算力。

正是因为比特币存在大量资源消耗、外部51%攻击等问题,才出现了PoS(Proof of Stake)共识机制。

总的来说,PoS 共识理论和实践还处于探索阶段。

最原始的PoS机制就是用权益代替PoW中的挖矿算力来模拟比特币的挖矿过程。请注意,此过程不引入外部资源,仅依靠自身的币种份额来维护网络安全,因此不需要消耗大量的能量进行计算;并且因为不引入外部资源,所以不用担心外部攻击,比如外部算力攻击。

PoS 看起来很完美,但它有一个严重的缺陷。

PoS 中存在内部无风险攻击。

什么是 Nothing-at-Stake(通常写为 N@S)攻击?

假设系统中有两条支链,那么对于持币的“矿工”来说,最好的操作策略是同时在两条支链上“挖”,这样无论哪个支链赢,权利都远作为持币人而言,属于他的所有利益都会得到,即不会有利益损失。并且由于不需要计算能力,因此在 PoS 的两个分支上进行挖矿是可行的。

这导致的问题是,只要系统中有分叉,“矿工”就会同时在这些分叉上挖矿;所以在某些情况下,发起攻击的分叉链很有可能会成功,因为大家也对这条分叉链达成了共识;并且即使不持有51%的币,也可以成功发起分叉攻击;

而这在 PoW 中是不可行的,因为挖矿需要算力,矿工只能在一个分支上挖矿。

第二个问题是重写历史攻击;也就是说,攻击者可以通过购买最初持有该货币的账户,重新分叉区块链来从头开始攻击。因为原币持有者可以将币转移到其他账户,所以他可以将原账户卖给攻击者而不会造成损失。攻击者所需要的只是一个拥有足够数量硬币的原始账户;当然,这只是一个概率问题,因为原始账户持有人可能不会出售他们的账户,但理论上这种攻击确实存在。

第三个问题是,虽然PoS挖矿不消耗算力,运营成本也很低,但也存在如何激励矿工的问题。因为一般的PoS系统不会产生新币,矿工只能赚取交易手续费,而在交易手续费低的情况下,对矿工的激励也非常有限。

当然,也有很多 PoS 币通过不断产生新币来激励矿工来解决这个问题,从而导致通货膨胀。

以上三个问题都是PoS要解决的,尤其是N@S的问题尤为重要,因为如果没有其他的约束机制,这种攻击是完全可能的。

由上可知,PoW或PoS机制的共识过程有两个必要条件:

信息共享;

个人参与;

以现实为例,事件信息越透明,相关人员参与度越高,共识就越稳定持久。这与区块链共识一致。

以上是个人对区块链共识的一些学习心得。我希望看到更多这方面的讨论和研究文章,并与粉丝分享。

什么是智能合约?

区块链团章 1 个月前 (09-01) 37℃

智能合约被认为是另一种使用区块链技术的流行技术。在这个领域,最著名的初创公司是以太坊和Eris Industries,近期多家媒体都在报道相关消息。

智能合约并不是真正的智能,也不是严格意义上的合约。

什么是智能合约

从用户的角度来看,智能合约通常被认为是一个自动担保的账户,例如,在满足某些条件时释放和转移资金的程序。

从技术角度来看,智能合约被认为是网络服务器,但这些服务器不是使用 IP 地址设置在互联网上,而是在区块链上。以便可以在其上运行特定的合约程序。

但与 Web 服务器不同,智能合约对每个人都是可见的,因为这些智能合约的代码和状态都在区块链上(假设区块链是公开的)。而且,与Web服务器不同的是,智能合约不依赖于特定的硬件设备,实际上智能合约的代码是由所有参与挖矿的设备执行的(这也意味着进入单个合约的算力是有限的,虽然采矿难度的自动调整会缓和这种影响)。

智能合约是在区块链上编程的汇编语言。人们通常不自己编写字节码,而是从更高级别的语言编译它,例如 Solidity,一种类似于 Javascript 的专用语言。这些字节码确实指导了区块链的功能,以便代码可以轻松地与之交互,例如传输加密货币和记录事件。

代码的执行是自动的:要么成功执行,要么撤消所有状态更改(包括从当前失败的合约发送或接收的信息。)这很重要,因为它避免了合约部分执行的情况(对于例如,在证券购买交易中,证券所有者已转让证券,但加密货币支付转账失败)。这在区块链环境中尤其重要,因为无法撤销执行错误的不良后果(如果对手不合作,根本无法撤销交易)。

智能合约用例

证券登记和清算。合约状态包含有关证券所有权的信息。如果注册证券持有人注意到合约中的证券已被出售给其他参与者,其他参与者会将加密货币发送到抵押账户,然后证券注册信息将被更新,货币将被转发给原始证券持有人。根据哪个信息先到达,证券或货币被保存在安全账户中以避免双重使用,当交易被取消或过期时,证券也将被取消。

现有银行账户。区块链本身已经使用加密货币账户,所以这里不需要智能合约。但是,现实生活中人们更喜欢说欧元或美元账户,类似于上面提到的证券登记账户。使用合约会带来交易对手风险,就像现实世界中的任何银行一样。这种风险可以通过交易对手风险监管来转移,也可以通过担保来消除。

衍生品,游戏。假设对手同意可在 Internet 上访问的数据源,他们可以签订衍生合同或押注数据源的价值。

预付款和充值。合约可绑定手机SIM卡、预付电费等,收到加密货币后即可充值。

智能合约面临的问题

智能合约仍处于起步阶段,尚未取得任何实质性进展。关键问题是信任问题,这类似于影响区块链实施的问题:这些系统被设计为无需信任,这意味着发生的错误无法纠正。例如,在区块链中,如果您向某个地址汇款,则此操作无法撤消。因此,如果您与欺诈者进行交易 - 或者您将钱汇到错误的地址 - 金钱损失是无法弥补的。

智能合约可以转移欺诈交易对手的问题——事实上,这也是设计智能合约的原因之一:只要合约能够可靠地监控合约各方的执行情况,各方就无法作弊。

然而,问题并没有解决,它只是出现在一个新的层面上:例如,一个合约可能存在漏洞,可以转让证券但不能转让金钱。

在现实生活中,这些事情可以通过中心化系统来撤销。但在分散系统的情况下,您只能自担风险。

同样,存在欺诈问题:需要有人设计(编程)合约,而在设计合约时,需要确保没有欺诈。参与者至少要确保:

在现实生活中,上述所有问题原则上都可以事后处理,如果需要,可以通过法院处理,但在去信任的工作量证明区块链中这是不可能的:问题是人们为什么要依赖工作量证明系统(其背后的原理是浪费大量能源进行挖矿,因此攻击该系统在经济上不划算)而不是使用中央运行的公共分类账并依赖集中的权力机构——政府、法院等——执行合同。

比特币技术体系

比特币(BitCoin)是世界上最早、应用最广泛、真正去中心化的区块链技术,所以他的开源技术体系非常值得借鉴。

比特币区块链核心技术框架采用C++语言开发,共识算法采用POW算法,工作量证明(挖矿)获得记账权,容错50%,实现全网公开记账网络性能TPS

开源地址为:

虽然 POW 算法相对低效且耗能,而且比特币区块链由于推出较早(比如不支持智能合约),还不够强大,但不可否认的是,有一个相对成熟稳定的区块链系统在市场上。或比特币。市场上的山寨币是通过复制或对比特币的源代码进行微小更改而创建的。在比特币区块链系统的基础上,还创建了几个区块链技术体系:

彩币(colored coin),彩币本身就是比特币,是历史上在创世交易中被转移的比特币。从技术上讲,比特币网络与其货币价值脱钩,它们具有特殊属性,例如支持代理或聚合点,其价值独立于比特币的面值。彩色硬币可用作替代货币、商品凭证、智能财产以及股票和债券等其他金融工具。

闪电网络的诞生是为了解决比特币区块链的处理能力瓶颈。可以有效解决延迟、扩容、终结性等问题比特币用什么技术,为比特币区块链提供可扩展的小额支付通道网络。,使用闪电网络后,TPS最高可扩展至300。如果交易双方在区块链上预先设置了支付渠道,则可以实现多次、高频的即时确认小额支付, 双向穿网方式;如果双方之间没有直接的点对点支付通道,只要网络中有一条连接多个支付通道组成的双方支付路径,闪电网络也可以利用这条支付路径实现可靠双方之间的资金转移。

比特币侧链

侧链是一种基于锚定比特币的新型区块链,就像美元锚定在金条上一样。比特币在区块链中的地位在货币体系中是相当黄金的地位比特币用什么技术,因为它是最去中心化、分布式的节点,也是最公平的区块链。侧链是为了综合实现加密货币金融生态的目标,而不是像其他加密货币那样排斥现有系统。使用侧链,我们可以轻松建立各种智能金融合约、股票、期货、衍生品等。你可以有成千上万条与比特币挂钩的侧链,具有不同的属性和用途,所有这些都依赖于比特币所保证的弹性和稀缺性。主区块链。比较有名的比特币侧链是 Rootstock 和 BlockStream 推出的元素链。

Rootstock 是一个基于比特币侧链的开源智能合约平台。它使比特币能够拥有智能合约。基于 Rootstock 的智能合约可以运行无数应用程序,并为核心比特币网络增加价值和功能。Rootstock 使用比特币双向挂钩技术,以固定的转换率在 Rootstock 上传输或导出比特币。Rootstock 双向钉是一种混合驱动链和侧链技术。更值得注意的是,Rootstock向后兼容以太坊,并实现了以太坊虚拟机的改进版本,因此以太坊发布的DApps程序可以很方便地在Rootstock上使用,实现比特币级别的安全性和大量的以太坊。Dapps 的可重用性、更快的执行速度以及与比特币的更强交互。

Elements 是 Blockstream 的开源侧链项目。它还使用比特币双向挂钩技术。除了智能合约,它还迅速为比特币带来了许多创新技术,包括私人交易、证据分离、相对锁定时间、新的 Opcodes、Signature Override Amounts 等等。核心技术框架采用C++语言开发,开源地址为:

优势

1 完全去中心化,没有发行人,无法操纵发行数量。它的分发和流通是通过开源的p2p算法实现的。

2 匿名、免税和无监管。

3 稳健性。比特币完全依赖p2p网络,没有分发中心,因此无法对外关闭。比特币价格可能会波动、崩溃,多个政府可能会宣布它是非法的,但比特币及其庞大的点对点网络不会消失。

4 无国界,跨界。跨境汇款会经过层层外汇管制机构,交易记录会被多方记录。但是如果用比特币交易,直接输入数字地址,点击鼠标,等待p2p网络确认交易,一大笔钱就过去了。没有任何监管机构,不会留下任何跨境交易记录。

5 模仿者难以生存。由于比特币算法是完全开源的,任何人都可以下载源代码,修改一些参数,重新编译来创建一个新的p2p货币。但是这些山寨币很脆弱,容易受到 51% 的攻击。任何控制了 p2p 货币网络 51% 算力的个人或组织都可以随意操纵交易和币值,这将对 p2p 货币造成毁灭性打击。许多山寨币在此链接中死亡。比特币网络已经足够强大,可以控制比特币网络 51% 的计算能力,所需的 cpu/gpu 数量将是天文数字。

缺点

1 交易平台的漏洞。比特币网络很强大,但比特币交易很脆弱。交易平台通常是一个网站,可以被当局黑客入侵或关闭。

2 交易确认时间长。首次安装比特币钱包时,下载历史交易数据块需要花费大量时间。而比特币交易,为了确认数据的准确性,需要一定的时间与p2p网络进行交互,直到得到全网确认后,交易才会完成。

3 价格波动很大。随着大量投机者的介入,比特币兑现金的价格一直在坐过山车。使比特币更适合投机而不是匿名交易。

4 大众不了解原理,传统金融从业者抵制。活跃的网友了解 p2p 网络的原理,知道比特币不能被人类操纵和控制。但公众并不了解,很多人甚至分不清比特币和Q币的区别。“无发行人”是比特币的美德,但在传统金融从业者眼中,“无发行人”的货币一文不值。[10]

多重签名:

在数字签名应用程序中,有时需要多个用户对同一个文件进行签名和验证。例如,某公司出具的一份报表,涉及到财务部、开发部、销售部、售后服务部等部门。如果这些部门需要签署和批准,那么这些部门需要签署声明文件。允许多个用户对同一个文件进行签名的数字签名方案称为多重数字签名方案。

多重签名是指多个用户对同一消息进行数字签名。

一般来说,一个比特币地址对应一个私钥,在这个地址中使用资金需要私钥的拥有者发起签名。多重签名技术,简单来说就是在使用一个基金时,需要多个私钥签名才有效。例如,某笔资金对应3个私钥,必须至少有2个私钥参与签名才能使用,签名中只有1个私钥无效。而这个2/3可以扩展到任意m/n,比如3/3、1/5、6/11等,当然m必须小于等于n。

1.中介担保

这正是币旭正在探索的模式,简而言之,就是支付宝的模式。客户先付款,商家发货。但是,商家付款后并不是直接收款,而是等待交易完成后才能确认。客户付款后,这笔钱既不在客户的控制范围内,也不在商家的控制范围内。如果交易有争议,中介可以仲裁并将资金返还给客户。

以上与我们熟悉的支付宝模式相同,但比特币多重签名的附加意义是什么?也就是说,在资金不受客户控制且尚未被商户控制的期间,不能被中介平台控制。也就是说,中介平台不能随意用钱,更不能跑路。

与支付宝相比,比特币的中介担保交易限制了中介作恶的能力。例如,在交易过程中,中介拿临时“冻结”的资金进行赌博(或投资),然后赔光了所有的钱,所以商户收不到钱。或者,如果中介不诚实,或者按照一些“规定”没收资金,那么商家就不得不去找中介追债。交易被没收,卖家无从投诉,买家无奈(好像以前也有过)。

简单来说,在传统的支付宝模式中,中介的引入一方面增加了一些让交易更加可靠的元素,但另一方面又增加了新的不稳定因素。信任不需要那么高,但另一方面,它还需要对中介平台的公正性和可靠性的无条件信任。

例如在多重签名的支持下,客户、商家、中介形成“2/3”,这意味着中介的加入对于可靠性的提高只有积极意义,并不会增加任何不便。肯定。也就是说,如果两人的交易一开始就可以成功,那么在增加新的中间人的情况下,一定还是成功的。只要客户和商家的两个私钥确认交易,整个交易就完成了,中间人是否值得信赖没有任何影响。只有当客户和商家意见不一致时,中介才有权力。

改变m/n的数量和私钥分配的权重,也可以设计各种更复杂的中介模型,比如同时引入3个保证人,当交易双方不一致时,2个3名担保人需要做出决定,例如。

2.在线钱包

多重签名在线钱包现在有多个实例。例如,如果一个私钥在本地,而另一个私钥由网站持有,则只有在两个私钥同时签名时,才能使用余额。这种在线钱包当然比普通钱包要麻烦一些,但是相对来说还是比较安全的。除了保证网站不能任意挪用客户资金外,还保证无论是网站被黑还是客户电脑被黑,资金都不会被盗。除非双方同时被同一个黑客入侵。

这类在线钱包的意义主要是双重安全,但也可以扩展到更多的服务,比如多用户共享的在线钱包。

3.共同财产/合伙

当然,多人共享钱包的m/n模式多种多样,应用场景也很多。让我们从 1/2 模式开始。也就是说,1个钱包对应2个私钥,任何一个都可以使用资金。

你可能会问:这不是多余的吗?让两个人持有相同的私钥还不够吗?1/n 模式的意义何在?1/2和1/1最基本的区别是账目清晰。也就是说,虽然两个人有相同的权限使用相同的资金,但不可能伪造出每笔支出的是谁。也就是说,你我都有使用资金的权利,但我无权冒充你使用。

简单的用例,例如婚姻财产和合伙关系。一般情况下,夫妻或好友不分彼此,共同管理资金。如果其中一个发生意外或意外情况,总资产仍然可以及时使用。而一旦出现分歧和争议,到了该回去清算的时候,账目就会一清二楚,哪笔钱被谁滥用是无可辩驳的。

4.监督管理/分享权重

合伙经营的1/n模式进一步扩展到n/m,可以实现更复杂的资本管理体系。比如在公司内部,使用资金时,由财务部发起支付,由董事审核并签字。当主任要使用资金时,也需要财务部门确认。这样一来,任何人都不可能带着钱跑掉。

另外,根据私钥的分配,多重签名可以支持一些简单的权重分配机制。比如四个人合伙创业,老板占40%,三个弟弟各占20%,那么可以设计一个3/5模型,老板持有2个私钥,三个弟弟各有1个。在这种情况下,boss只需要赢1个,一个弟弟就可以二意见下手,但三个弟弟可能联手推翻boss。类似的机制当然很难支持完整的库存形式,但对于初创企业或特定的小型项目来说,这是一种简单可靠的实现方式。

5.数字遗产

最后但同样重要的是,数字遗产的应用。老人在世的时候,当然希望能完全掌控自己的财产。但是,如果死前没有及时交出密码,数字财产可能会被带入棺材。许多数字资产都有类似的问题,但比特币提供了解决方案。

最简单的场景是 2/2 模式,比如老人持有全部 2 把私钥,把其中的一把交给儿子,另一把交给公证人或公证人。私钥,然后您可以申请公证人移交遗产。在此之前,除非儿子和公证人勾结,否则他们都无法获得这笔钱。

总结

上面概述的场景都比较粗略和简单,当然具体实践中会有更灵活、更丰富的风格。在所有场景中,多重签名的意义无非就是比特币本身的意义:自由、透明、去中心化。多重签名技术通过对权力滥用施加限制,让权力和责任更加清晰,让每个人都可以控制,也就是他应该控制的权力。

比特币交易流程

交易流程

步骤一:所有者A用自己的私钥对上一笔交易(比特币的来源)和下一笔交易的所有者B进行数字签名,并将签名附加到币的末尾,制作交易单据

重要提示:B 使用公钥作为收件人地址

第二步:A向全网广播交易订单,比特币发给B,每个节点将收到的交易信息合并成一个区块

重要提示:对于 B 来说,比特币会立即出现在比特币钱包中,但直到区块被确认后才能使用。目前,一个比特币从支付成功到最终确认,需要经过6个区块的确认才能被确认。

第三步:每个节点通过解决数学难题获得创建新区块的权利,并争取比特币奖励(过程中会产生新的比特币)

要点:节点反复尝试找一个值,使得该值、区块链中最后一个区块的哈希值以及交易顺序三部分都可以送入SHA256算法计算哈希值X(256 bits) 来满足一定的条件(比如前20位都是0),即找到了一个数学问题的解。可见答案不是唯一的

Step 4:节点找到解决方案后,将区块中记录的所有带时间戳的交易广播到全网,并被全网其他节点检查

重要提示:时间戳用于确认特定块必须在特定时间存在。比特币网络从超过 5 个节点获取时间,然后取中间值作为时间戳。

第五步:全网其他节点检查区块记账的正确性。如果没有错误,他们将竞争合法区块之后的下一个区块,从而形成合法的记账区块链

重要提示:每个区块的创建时间约为 10 分钟。随着全网算力的不断变化,每个区块的生成时间会随着算力的增加而缩短,随着算力的减弱而延长。原理是根据2016年最近产生的区块的时间差(大约两周),自动调整每个区块的产生难度(例如减少或增加目标值中0的个数),使每块时间为10分钟。

比特币和区块链技术作为新的计算机技术意义重大,但金融通货紧缩问题无法解决,交易便利性也不够。