三大编程模型
——UTXO模型
首先,从比特币开始。
比特币又被称为点对点电子支付系统,其使用名为UTXO的编程模型。
最简单的方法是将UTXO看作一个盒子。该盒子包含一个表示货币价值的数字和一个锁。只有拿着相应钥匙的人才能打开盒子。当进行转账时,持有钥匙的所有者或个人使用钥匙解锁,找到另一个空盒子,将新面值放入新盒子中,并附加一个新所有者的锁。
整个交易可以概括为打开盒子,拿出里面的钱,摧毁原来的盒子,然后把它放在另一个盒子里。
总而言之,盒子表示存储数据的UTXO模型,锁表示所有权。
——Account模型
除了UTXO模型,还有Account模型。这个模型最著名的例子是以太坊。
除了数据,以太坊Account模型中还有计算逻辑。你可以将ERC20合约想象成一个盒子,盒子里没有钱而是一组复杂的逻辑和数字。
与UTXO不同,Account模型的盒子始终可以重复使用,并且在其生命周期内无法打开。
当Account模型的盒子被制作出来时,一套规则会被写进盒子里,而一些按钮也会被放置在盒子中,这样人们就可以和盒子互动了。例如,规则可能这样表示:如果一方想转账,那么她或他或它需要出示身份证明的一种形式,并输入密码。一旦完成前面的步骤,就需要以下信息:转账金额、收件人和其他信息。一旦进入,她或他或者它需要按下转移按钮才能完成转移。在收到信息后,它会从您的金额中扣除并更改到另一方的帐户,然后更新所有内部数据。
美国议员要求孙宇晨解释如何防止极端内容在DLive平台上播出:2月10日消息,Reps. Raja Krishnamoorthi和Jackie Speier两位美国议员写信要求波场创始人孙宇晨和DLive首席执行官Charles Wayn解释,继上月华盛顿特区企图叛乱后,他们计划如何防止极端内容在BitTorrent旗下流媒体平台DLive上播出。这封信与上个月国会的叛乱有关。几名极右极端分子在美国国会大厦被攻破时通过DLive进行直播,其中一些人后来被捕。(CoinDesk)[2021/2/10 19:23:04]
熟悉编程的人会很快发现Account模型类似于现实世界中的OOP,按钮的概念类似于API。
如果我们扩展盒子隐喻,以太坊的功能更像ATM机。
在Account模型中,该盒子保存逻辑和数据。在将逻辑写入工厂设置的盒子后,永远不能更改它。您只能在需要修改数据时使用外部按钮。每个人的钱都记录在盒子里。要进行事务时,只需要输入事务信息,该盒子便会根据规则处理的请求进行数据更新。
——Cell模型
在Cell模型中,我们也可以将Cell看作一个盒子,因为它与UTXO模型非常相似,可以包含任意锁定的任意对象。
你可以对该框执行并编写一组规则来指定该盒子可以存储什么。通过这种方式,单元内的数据可以表示货或加密猫之类的资产。此外,UTXO中的锁也是相同的。但是在单元格模型中,用户可以自由地更改和使用定制的锁。(你可以将普通挂锁与指纹锁或数字锁做对比)
张春泉:区块链等如何与行业深度融合将是工业互联网发展关键要素:曙光云计算集团副总裁、中国科学院智慧城市产业联盟副秘书长张春泉表示,目前工业互联网发展呈现出新特征,一是在云计算技术架构支撑下,企业之间正从技术、产品和供应链的竞争逐步演进成为平台化的生态体系竞争。二是以工业互联网为支撑,助力企业迈向网络化、智能化的新阶段,构建数字化的工业生态和数字化的商业服务生态。三是新一轮的IT技术加速行业的深度融合,比如说标识解析、区块链等技术如何与行业深度融合,将是这一时期工业互联网发展的关键要素。(经济参考报)[2020/4/30]
总的来说,Cell模型是一个广义的UTXO模型,具有以下两个意义:第一、锁是可定制的;第二、盒子可以存储用户定义的数据。
有些人可能会对Cell模型如何使用其编程模型感到好奇。
首先理解区块链系统的演变是很重要的。比特币是p2p支付系统的衍生,后来又诞生了更广义的分散式应用平台——以太坊。区块链的进一步发展带来了各种各样的新项目,而且越来越多样化。
由于需要全网共识的交易和存储成本高昂,因此区块链不可避免地采用一种架构。该架构允许在一致同意的范围内实现灵活性,从而允许它们大规模地交付低成本交易。
两大主要障碍
——可扩展性问题
继续阻碍区块链发展的一个障碍是可扩展性问题。如果我们无法缓解这一问题,区块链能力将受到限制,我们将无法看到强大的高级应用程序的开发,继而释放分散经济的真正潜力将面临挑战。
欧科集团徐明星对话全国政协委员 谈抗击疫情区块链如何发挥作用:3月20日,全国政协云上“小双周”座谈会今天举行。全国政协委员,中国证监会原主席肖钢等多位全国政协委员、业界专家代表出席。会上,欧科集团创始人徐明星发表“区块链+供应链抗疫期间‘扛大旗’”主题演讲。徐明星表示:“除了供应链外,区块链技术在其他领域也有重要应用。随着下一代高新技术产业的发展,区块链技术将展现出更大的应用潜力。”[2020/3/20]
可扩展性是“区块链三难”的一部分,其中还包括安全性和分散性。而一个区块链系统最多可以具有三难困境中的2个。
——交易成本问题
第二个障碍是交易成本问题。一个社会整体交易成本的降低是衡量一项技术在规模上可行性的最有力指标之一。由于需要全网共识的交易和存储成本高昂,因此区块链不可避免地采用一种架构。该架构允许在一致同意的范围内实现灵活性,从而允许它们大规模地交付低成本交易。
解决方案:分层架构
计算机爱好者知道他们的设备包含一个复杂的分层架构。该分层架构中包括内存、硬盘、多级缓存和各种寄存器。这种架构允许普通大众低成本使用,同时利用其可伸缩的能力以满足不断增长的计算挑战。
我们可以将相同的设计原则应用于区块链。通过分层的架构,可以创建经济实惠且通用基础设施。在我看来,这是区块链驱动的世界唯一可行的未来。随着Lightning、、Plasma和支付通道的兴起,我们已经可以看到这种类型的架构正在兴起以及它所促进的用例。在接近这种分层的区块链架构时,重要的是要检查构成区块链系统的三种不同数据模型之间的关系:UTXO模型,Account模型和Cell模型。
动态 | 乌克兰国会收到一项关于应如何对与加密有关的收入征税的草案:据Coindesk消息,一项草案规定了乌克兰应如何对与加密有关的收入征税,该草案已提交给该国议会Verkhovna Rada。该法案是由乌克兰数字转型部、区块链4ukraine派系议会协会和更好的监管交付办公室(BRDO)组织起草的。这份由13名议会成员撰写的文件旨在修订乌克兰的税法,并引入与加密资产相关的主要概念。该法案将此类资产定义为“一种特殊类型的有价值财产,以数字形式创建、记账并通过电子方式处理”,比如加密货币、代币以及草案中未指定的其他类型。总部位于乌克兰的加密货币交易所Kuna的创始人,乌克兰区块链协会主席Michael Chobanian表示,他相信这项法律将奏效,但该行业还面临其他障碍,需要解决。[2019/11/20]
——验证与计算模型
Cell模型源自UTXO模型,因此是验证模型。相反,Account模型是计算模型。
在资产从第2层返回到第1层时,第2层解决方案会利用证明提交和验证机制。而由于第1层扮演的是验证角色,而不是计算角色,因此我们可以看到UTXO或Cell模型是这种结构的合适方法。
——解决规模扩增性问题
目前,以太坊和“下一代”区块链面临着规模不断增长的严峻挑战。虽然大规模采用已实现突破,但全节点的数据存储成本日渐增高,包括各种僵尸帐户的扩增,也让情况变得更糟。
使用Account模型时,所有用户的资产都存储在一个合约中。如果没有直接的方法来为每个用户分割状态,则很难根据每个用户占用状态的容量和持续时间向他们收费。
韩国将于7日在国会召开‘虚拟货币制度化,该如何接近’研讨会:最近对虚拟货币的担忧和关注,虚拟货币相关学界及业界专家和政府核心相关人员将于韩国时间7日早上9点30分在韩国国会第二会议室中召开‘虚拟货币制度化,该如何接近’的研讨会。[2018/2/6]
同时,这对支付通道收费的实施也提出了挑战。目前在以太坊,交易费用是一次性支付,授予永久性存储。但鉴于区块链是公共基础设施,这种模式是不可持续的。我们可以看到,持续支付仓储空间租金是一种更加合理的方式。
在Cell模型中,每个用户的数字资产分别存储在各自的单元中。如果用户不想继续持有资产,则可以释放单元中的数据,并且可以将存储容量出售或借给其他用户。这种设计确保了第1层不会无限期地存储废弃的资产,并为状态存储开辟了新的可能性。
结论
总的来说,当考虑存储和验证要求时,Cell模型最适合分层区块链架构的需求。
附:UTXO与ACCOUNT优缺点对比
UTXO模型
UTXO模型中,交易只是代表了UTXO集合的变更。而账户和余额的概念是在UTXO集合上更高的抽象,账号和余额的概念只存在于钱包中。
优点:
计算是在链外的,交易本身既是结果也是证明。节点只做验证即可,不需要对交易进行额外的计算,也没有额外的状态存储。交易本身的输出UTXO的计算是在钱包完成的,这样交易的计算负担完全由钱包来承担,一定程度上减少了链的负担。
除Coinbase交易外,交易的Input始终是链接在某个UTXO后面。交易无法被重放,并且交易的先后顺序和依赖关系容易被验证,交易是否被消费也容易被举证。
UTXO模型是无状态的,更容易并发处理。
对于P2SH类型的交易,具有更好的隐私性。交易中的Input是互不相关联的,可以使用CoinJoin这样的技术,来增加一定的隐私性。
缺点:
无法实现一些比较复杂的逻辑,可编程性差。对于复杂逻辑,或者需要状态保存的合约,实现难度大,且状态空间利用率比较低。
当Input较多时,见证脚本也会增多。而签名本身是比较消耗CPU和存储空间的。
ACCOUNT模型
对于Account模型,Account模型保存了世界状态,链的状态一般在区块中以StateRoot和ReceiptRoot等形式进行共识。交易只是事件本身,不包含结果,交易的共识和状态的共识本质上可以隔离的。
优点:
合约以代码形式保存在Account中,并且Account拥有自身状态。这种模型具有更好的可编程性,容易开发人员理解,场景更广泛。
批量交易的成本较低。设想矿池向矿工支付手续费,UTXO中因为每个Input和Out都需要单独Witnessscript或者Lockingscript,交易本身会非常大,签名验证和交易存储都需要消耗链上宝贵的资源。而Account模型可以通过合约的方式极大的降低成本。
缺点:
Account模型交易之间没有依赖性,需要解决重放问题。
对于实现闪电网络/雷电网络,Plasma等,用户举证需要更复杂的Proof证明机制,子链向主链进行状态迁移需要更复杂的协议。
UTXOVSACCOUNT
对于以上几个优点和缺点,我们再做一些分析和对比。
第一,关于计算的问题。
UTXO交易本身对于区块链并没有复杂的计算,这样简单的讲其实并不完全准确。主要原因是Bitcoin本身的交易多为P2SH,且Witnessscript是非图灵完备的,不存在循环语句。而对于Account模型,例如Ethereum,由于计算多在链上,且为图灵完备,一般计算较为复杂,同时合约安全性就容易成为一个比较大的问题。当然是否图灵完备对于是否是账户模型并没有直接关联。但是账户模型引入之后,合约可以作为一个不受任何人控制的独立实体存在,这一点意义重大。
第二,关于UTXO更易并发的问题。
在UTXO模型中,世界状态即为UTXO的集合,节点为了更快的验证交易,需要在内存中存储所有的UTXO的索引,因此UTXO是非常昂贵的。对于长期不消费的UTXO,会一直占用节点的内存。所以对于此种模型,理论上应该鼓励用户减少生产UTXO,多消耗UTXO。但是如果要使用UTXO进行并行交易则需要更多的UTXO作为输入,同时要产生更多的UTXO来保证并发性,这本质上是对网络进行了粉尘攻击。并且由于交易是在钱包内构造,所以需要钱包更复杂的设计。反观Account模型,每个账户可以看成是单独的互不影响的状态机,账户之间通过消息进行通信。所以理论上用户发起多笔交易时,当这些交易之间不会互相调用同一Account时,交易是完全可以并发执行的。
第三,关于Account模型的交易重放问题。
Ethereum使用了在Account中增加nonce的方式,每笔交易对应一个nonce,nonce每次递增。这种方式虽然意在解决重放的问题,但是同时引入了顺序性问题,同时使得交易无法并行。例如在Ethereum中,用户发送多笔交易,如果第一笔交易打包失败,将引起后续多笔交易都打包不成功。在CITA中我们使用了随机nonce的方案,这样用户的交易之间没有顺序性依赖,不会引起串联性失败,同时使得交易有并行处理的可能。
第四,存储问题。
因为UTXO模型中,只能在交易中保存状态。而Account模型的状态是在节点保存,在Ethereum中使用MPT的方式存储,Block中只需要共识StateRoot等即可。这样对于链上数据,Account模型实际更小,网络传输的量更小,同时状态在节点本地使用MPT方式保存,在空间使用上也更有效率。例如A向B转账,如果在UTXO中假设存在2个Input和2个Output,则需要2个Witnessscript和2个Lockingscript;在Account模型中则只需要一个签名,交易内容只包含金额即可。在最新的隔离见证实现后,Bitcoin的交易数据量也大大减少,但是实际上对于验证节点和全节点仍然需要针对Witnessscript进行传输和验证。
第五,对于轻节点获取某一地址状态,UTXO更复杂。
例如钱包中,需要向全节点请求所有关于某个地址的所有UTXO,全节点可以发送部分UTXO,钱包要验证该笔UTXO是否已经被消费,有一定的难度,而且钱包很难去证明UTXO是全集而不是部分集合。而对于Account模型则简单很多,根据地址找到State中对应状态,当前状态的StateProof则可以证明合约数据的真伪。当然对于UTXO也可以在每个区块中对UTXO的root进行验证,这一点与当前Bitcoin的实现有关,并非UTXO的特点。
来源:hackernoon.com
编译:共享财经马明
摘要:区块链技术正在对各行各业产生广泛而深入的影响。Forbes撰稿人NikkiBaird今日撰文分析了在零售业中区块链将要面临的几大技术挑战.
6月15日,在由公信宝、CompuTa主办,杭州区块链技术与应用联合会协办的“瞭望·数据商业新浪潮——可信计算商业研讨会”上,公信宝创始人兼CEO黄敏强发表“可信计算与区块链的发展机会”的演讲.
亲爱的用户: Binance目前已完成2019年6月份BTT的发放,您可以登录Binance平台,在用户中心的分发记录栏目,查询自己的分发数量.
深链财经讯,就在Visa,Mastercard和PayPal等支付巨头公司被曝光以后,今日,关于Facebook加密货币项目合作伙伴的完整名单被TheBlock披露.
??我们很高兴地宣布,犇睿资本BNCapital投资全球顶级项目波卡Polkadot,并通过FA机构签署了战略投资协议.
StillMark合伙人AlyseKilleen:比特币的“供应冲击”即将到来,规模正在迅速扩大 ◇金色盘面 BTC最近成交价8810.55美元.