宇宙链 宇宙链
Ctrl+D收藏宇宙链
首页 > Pol币 > 正文

一文探讨如何在比特币实现高性能智能合约?

作者:

时间:1900/1/1 0:00:00

提起智能合约,很多人的第一反应就是以太坊,甚至在维基百科中搜索智能合约的时候,都会给出如下的定义:智能合约:是一种特殊协议,在区块链内制定合约时使用,当中内含了代码函数(Function),亦能与其他合约进行交互、做决策、存储资料及发送以太币等功能。显然将智能合约仅仅定义为以太坊功能的一部分有点以偏概全,相比之下,IBM给出的智能合约定义更为准确,更符合现代各类层出不穷的公链和合约:IBM定义的智能合约:只是存储在区块链上的程序,在满足预先确定的条件时会运行这些程序。它们通常用于自动执行协议,以便所有参与者都可以立即确定结果,而无需任何中间人参与,也不会浪费时间。它们还可以自动完成工作流程,在满足条件时触发下一个操作。总结就是:1.存储在区块链上2.在满足特定条件下会运行特定逻辑3.运行逻辑不需要任何第三方参与因此满足这三点的都可以看作是智能合约。其实比特币,莱特币以及Doge这些看起来只能转账代币的区块链系统也是满足智能合约的定义,其实它们的转账功能本身也是智能合约的一种。但是我们通常不认为只能转账的区块链是智能合约平台,主要因为它们在第二条下的场景太少,这个特定逻辑被缩限在几种固定的场景,例如比特币只有P2PKH,P2PK,P2SH等等标准交易逻辑,能够使用的场景无非也就是单签,多签等很有限的场景,无法根据开发者的需要自由定制执行逻辑,比如更丰富的前提条件,更复杂的逻辑控制,更灵活的合约间交互等等。因此更广泛意义上的智能合约还要加上第四点:4.图灵完备,可以执行任意逻辑账户模型、UTXO模型与智能合约

DAO Maker联合创始人Hatu Sheikh加入NFT Inspect担任战略顾问:金色财经报道,DAO Maker联合创始人Hatu Sheikh宣布加入NFT Inspect担任战略顾问,旨在利用代币化策略等方面行业经验和专业知识为Inspect构建创新技术和社区发展提供支持。据悉,Hatu Sheikh将负责为NFT Inspect构建创新解决方案和战略计划,推动采用并增强 Inspect 生态系统内的用户体验。(globenewswire)[2023/6/10 21:28:49]

账户模型

我们熟知的智能合约公链平台,例如以太坊,EOS,Solana等在执行方式上都可以称作账户模型。账户模型非常容易理解,和我们的支付宝账户,银行账户等等是一种思维方式,每个人有一个或多个「账户」,每个账户有一个「余额」。A->B转账的过程就是从账户A的余额中减去X,然后再从账户B的余额中增加X。如果给这个转账过程增加一些逻辑条件,设定满足特定的条件,这个转账才能发生,那么就形成了智能合约。以太坊内部有一个虚拟机,被称为EVM,这个虚拟机就是用来监听特定的条件,满足条件之后,自动执行转账。因为这个虚拟机可以执行编程代码,因此只需要用计算机高层编程语言编写逻辑,并且部署到链上就可以轻松实现任意的逻辑。这种账户模型因为非常贴近面向对象的编程方式,只需要定义成员变量,以及方法,就可以轻松实现任意逻辑。也正因如此,市面上的绝大多数智能合约平台都是运行在账户模型之上。账户模型也有一个很显著的弊端:就是虚拟机在分布式节点的条件下如何保证一致性。由于以太坊上所有的合约都是由发送以太坊交易来驱动的,因此收到交易的顺序会影响交易的结果,为了保证所有节点都执行相同的逻辑,就必须保证所有节点收到交易的顺序是一致的,如果不一致则会造成混乱。显然,在分布式的环境下,所有节点很难保持接收交易的一致性,尤其是高频交易的场景下,如果A给B连续快速发送10笔金额,必须要等到所有节点按顺序接收到所有交易后,才能结算完成。如果某个节点先收到了第十笔交易,那么就需要等待其他9笔交易都就位之后,才能处理第十笔。另外,每笔以太坊交易只能进行1对1转账,在高频场景,尤其是多对多的复杂情形下,非常吃力。为了突出以下以太坊的性能问题,我们假设以下场景,A账户要给100个人派发红包。如果使用ETH来发红包的话,必须按照顺序发送给1号,2号,3号...需要构造100个交易,一个接着一个进行发送,节点也必须一个接着一个按次序处理。因为每次发送都要等待上一次余额确定,因此1号,2号他们收到红包的顺序是确定的,100号只有等前面的人都收到红包之后,才能收到红包。传统互联网应用使用账户模型的应用,都要配合数据库的强一致锁,或者强事务等来实现账户修改的安全,这个问题放在分布式的区块链上就格外显著。核心原因就是,对账户的修改必须遵照严格的顺序来执行,顺序的先后不同可能会导致执行结果的千差万别。UTXO模型

徐工集团与Conflux共同开启NFT限量白名单活动:3月31日消息,全球第三大工程机械品牌徐工集团与Conflux正式推出NFT“For Real”上线计划,并在taskon活动平台开启NFT白名单抽奖活动。

根据项目官网披露,“For Real”系列为徐工集团在海外探索Web3.0的第一步,未来将与Conflux区块链合作依托香港,利用区块链技术,在业务覆盖的191个国家的业务中探索更加开放包容的商业模式。

据悉,徐工集团为国内首个国有企业在web3.0领域的探索。[2023/3/31 13:37:08]

UTXO模型是另一种主流区块链采用的模型,比特币,莱特币,DOGE等区块链采用的是这种模型。UTXO的意思是「未花费交易输出」。这种模型非常类似我们日常使用的现金,可以看做一种改良版的现金。区块链并不记载和维护某个地址有多少余额,记载的是一张张钞票是属于哪个地址。比特币的场景下,某个地址A的余额不能直接查询到,需要统计有多少张钞票是属于A的。比方说,我们有一个钱包,里面放了一张10元,一张100元,还放了一个1块的硬币,那么我们可以说,我们的钱包余额是111元,换言之,如果不去计算每一张纸币与面值,仅凭钱包本身是不知道有多少余额的,这与以太坊支付宝之类的账户模型有很大不同。比特币转账的时候怎么转呢,同样很接近我们平时使用现金支付的样子。还是刚才的真钱包,如A要给B付1块钱,那么A有3种方法可以付给B,给他1块,给他10块找回9块,给他100块找回99块。找钱这一点与现金不太一样,或者可以说是改良的地方。A给B10块找回9块,并不是让B找出来9块钱还给A,而是A把10块钱烧掉,然后由系统重新印出一张1块给B,印出一张9块给A。经过交易后,A的钱包有一张面值100的钞票,一张面值9块的钞票,还有一张1块,余额是110块。根据上面的描述,我们可以知道,比特币的转账和收款就是钱包里的纸钞不断消灭和生成的过程。需要知道比特币地址的余额,就需要把这个钱包地址的所有钞票拿出来,计算所有面值并求和。同时,比特币支持多对多交易,比如说可以一笔交易让A同时给DEF转账1块:1.拿出100面值烧掉,印出99块还给A,1块给D。2.拿出10块面值烧掉,印出9块还给A,1块给E。3.拿出1块面值烧掉,不找零给A,1块给F。UTXO模型神奇之处就在于,上面3个步骤可以分三个不相关的交易来发送,也可以直接使用1个交易来进行发送。对比以太坊,比特币要同时发送给100个人,只需要一笔交易就可以让100个人同时收到钱,性能差距可想而知。这样就理解为什么央行数字货币使用的是UTXO模型了,不然深圳怎么给5万个钱包发送1000万数字人民币?UTXO脚本控制,一个UTXO可不可以被销毁,控制的粒度是UTXO的级别,对交易没有顺序要求,因此可以进行多对多交易以及并行交易校验,在现金转账的场景下有极高的性能。UTXO脚本智能化

CoinZoom推出比特币礼品卡:金色财经报道,加密货币交易所CoinZoom推出比特币礼品卡。此前CoinZoom对4000名18岁以上的美国人进行的调查中,几乎三分之一(31%)的美国人对在这个假日季节赠送和接受礼品卡感到更加积极。因此,超过四分之一(28%)的美国成年人现在每月购买一次或更多礼品卡。[2022/12/14 21:44:18]

刚才提到的UTXO模型在并行化上面有极大的优势,具备突出的拓展性能,但是为什么我们在UTXO的公链上很少能够看到智能合约呢?主要是以下几点原因:1.UTXO脚本编程较为复杂2.BTC等公链限制了脚本类型,脚本体积等3.分布式状态管理较为复杂我们逐个解释一下。首先很多人并不知道,其实比特币是可以自由编程的。我们从Bitcoin的wiki可以看到,Bitcoin有大量操作码,这种操作码看上去及其不友好,长得非常像汇编语言。学习过比特币脚本原理的人应该知道,能不能花费比特币的判断是通过一个栈式结构来存储和校验的。

LayerZero与全链NFT协议Holograph达成战略合作:6月29日消息,多链互操作性协议开发商 LayerZero Labs 与全链 NFT 协议 Holograph 建立合作伙伴关系。Holograph 的解决方案允许 NFT 在区块链间无缝转移而无需封装,LayerZero 将作为 Holograph 的跨链消息传递解决方案为其提供支持。(u.today)[2022/6/29 1:37:53]

栈中依次放入解锁脚本和锁定脚本,然后依次执行操作码,如果最终栈的返回值是true,那么此UTXO可花费,反之不可花费。其实我们熟悉的很多编程语言,在计算机底层执行逻辑的时候,也是栈的结构,比如Java,rust,go等等。以Java为例,Java存在栈内存和堆内存的概念,栈内存主要执行函数内部逻辑,堆内存主要存放对象等数据。由此可见,栈实际上是可以执行任意逻辑的,Java编译之后的字节码就是在操作这个栈来实现各种复杂的业务逻辑。比特币脚本使用的栈和虚拟机虽然不如JVM那么多复杂特性,但是通过一定的组合也是可以实现几乎全部的图灵完备逻辑。这里很多人会说比特币脚本没有死循环,因此不是图灵完备。实际上这是故意为之,为了保证计算一定会产生一个结果。其实以太坊等也没有真正的死循环,gas烧尽之后循环就会停止,比特币脚本在做循环的时候,需要预先将循环重复写入到脚本栈中,想做死循环,就要写一个无限长的脚本,这种交易明显是毫无意义的,在实际的脚本编写中,比特币脚本都会指定一个上限循环次数,确保手续费在合理的范围内。说了这么多脚本栈,我们来看看比特币脚本如何实现一些智能合约。一个最典型的合约场景就是ERC721,就是NFT合约。以太坊场景下要创建NFT,首先要部署一个合约账户,然后所有的NFT所有权由这个账户管理,所有此NFT的转账都要和这个NFT合约账户交互。在UTXO模型下,我们设计这样一种UTXO,它内部存在一段数据和代码,标记此UTXO代表什么NFT,谁可以解锁,怎么销毁它,怎么保证上限,那么这个UTXO就可以代表这个NFT。拥有这个UTXO的人就拥有了这个NFT。想要转账这个NFT,你就必须用私钥签名达成解锁条件,然后由比特币矿工来执行你的脚本,判断你是否可以转账这个UTXO。更重要的是,同一个系列的NFT,是分散在不同的UTXO中的,因此只要从分布式全局状态中找出满足特定条件的UTXO,就可以判断出NFT都属于谁。这些NFT的转账可以并行,并且互相之间不会产生影响,这也就提供了最高的性能。因此比特币合约的思想,就是使用单个UTXO脚本栈来存储状态和逻辑,整体状态由一批UTXO的状态共同组成,相对应以太坊的合约状态仅存在于一个账户中,对比之下,比特币的合约就拥有了和UTXO一样级别的并发能力,也就为大规模的高性能使用打下了基础。不考虑脚本体积和实用性以及客户端限制的话,在比特币上实现上上述逻辑从理论上是完全可行的,但是由于UTXO的独立特性,实际工程中会遇到两个难题,一个是UTXO互相感应的问题,另一个是合约溯源防伪的问题,这两个问题都被MVC链给巧妙解决了,因此可以最终实现可实用的高性能UTXO模型智能合约。MVC是一条完美实现比特币+高性能智能合约的Web3公链:1.采用兼容UTXO并行处理能力的一层智能合约技术「MetaTXID方案」;2.结合了UTXO模型优势,是区块链领域上并发性最高,执行成本最低的Layer-1链上智能合约方案;3.首次实现了UTXO模型公链的实用性图灵完备,可满足一切Web3应用和元宇宙应用的使用场景。MVC如何解决这两个问题,可以参阅官网白皮书或者等之后详细解释。注:本文节选部分章节自知乎文章《浅谈比特币UTXO模型和以太坊账户模型的优劣》。原地址

数据:以太坊的交易量较去年下降了80%:金色财经报道,根据IntoTheBlock数据,以太坊的交易量较去年下降了80%,是一年前的五分之一。以太坊和大多数智能合约平台上的活动都因对NFT的兴趣下降而受到影响。IntoTheBlock研究主管 Lucas Outumuro 表示,随着大型 NFT 销售变得不那么普遍,并且对区块链的需求减少,以太坊上的交易量一直在减少。NFT 兴趣的下降以及 DeFi 收益率的下降导致以太坊交易量大幅下降。与其他资产相比,NFT 在 2021 年第一季度成功升值,但最近的下跌对以太坊网络的活动造成了连锁反应。这里对以太坊的看法是,在短期内对它的需求会减少,因为这是用于购买 NFT 的主要货币。此外,从以太坊头寸中获利地址百分比也降至 2020 年 7 月以来的最低点。(Coindesk)[2022/5/28 3:46:59]

标签:NFT比特币以太坊区块链I will poop it NFT超级比特币怎么挖以太坊币区块链是什么意思

Pol币热门资讯
数据解读:为何链游顺利逃过“FTX破产劫”?

Odaily星球日报译者|Moni 尽管FTX破产,但Web3游戏市场似乎并未受到太大影响,而且持续成为dApp行业发展的主要推动力.

1900/1/1 0:00:00
Magic Eden激烈对战Metaplex,Solana链上NFT版税标准听谁的?

Odaily星球日报译者|Moni NFT版税之争已愈演愈烈,不仅是以太坊,关于是否强制执行NFT创作者版税的问题现在也蔓延到了本就问题重重的Solana区块链.

1900/1/1 0:00:00
Wilson Wu:我们正处于Web2.5阶段,就如同2000年的互联网

12月15日,在Web3.0CloudDaySingapore2022活动上,AvaLabs的WilsonWu表示:我们正处于Web2.5阶段,就如同2000年的互联网Web1.0时期,一切才刚刚开始.

1900/1/1 0:00:00
Pantera Capital合伙人:关于2023年加密行业的6大预测

撰文:PaulVeradittakit,PanteraCapital合伙人编译:aididiaojp.eth,ForesightNews2022年无疑是加密行业高潮和低谷频现的一年.

1900/1/1 0:00:00
浅析美债暴跌是否会导致USDC/USDT暴雷?

美债暴跌会导致USDC/USDT爆雷么?由于最近市场悲观情绪蔓延,加上联储加息导致美债价格下跌,已经有不少朋友开始询问这个问题了.

1900/1/1 0:00:00
详解StarkNet性能路线图:如何优化排序器?

Rollups的有效性不受限于L1的吞吐量,使得L2的TPS可以很高。在StarkNet的性能路线图中,解决了系统中的一个关键因素——排序器.

1900/1/1 0:00:00