CFO区块链学习笔记(7):以太坊白皮书学习笔记之基于比特币创建区块链应用的三种方法以及缺点

  • A+
所属分类:以太坊 学习笔记

目录
1.区块链的第一个应用以及核心技术
2.基于比特币创建区块链应用的三种方法以及缺点
3.以太坊为解决创建区块链应用的缺陷而生

基于比特币创建区块链应用的三种方法以及缺点

一、区块链怎么应用于货币以外的领域?
常被提及的应用包括使用链上数字资产来代表定制货币和金融工具(彩色币);某种基础物理设备的所有权(智能资产),如域名一样的没有可替代性的资产(域名币)以及如去中心化交易所,金融衍生品,点到点赌博和链上身份和信誉系统等更高级的应用。
另一个常被问询的重要领域是“智能合约”- 根据事先任意制订的规则来自动转移数字资产的系统。例如,一个人可能有一个存储合约,形式为“A可以每天最多提现X个币,B每天最多Y个,A和B一起可以随意提取,A可以停掉B的提现权”。这种合约的符合逻辑的扩展就是去中心化自治组织(DAOs)——长期的包含一个组织的资产并把组织的规则编码的智能合约。
以太坊的目标就是提供一个带有内置的成熟的图灵完备语言的区块链,用这种语言可以创建合约来编码任意状态转换功能,用户只要简单地用几行代码来实现逻辑,就能够创建以上提及的所有系统以及许多我们还想象不到的的其它系统。
二-1、区块链的应用以及存在的缺陷——创建区块链应用的两种方法
  • 域名币(namecoin)
创建于2010年,被称为去中心化的名称注册数据库。像Tor、Bitcoin和BitMessage这样的去中心化协议,需要一些确认账户的方法,这样其他人才能够与用户进行交互。但是,在所有的现存的解决方案中仅有的可用的身份标识是象1LW79wp5ZBqaHW1jL5TciBCrhQYtHagUWy这样的伪随机哈希。理想的情况下,人们希望拥有一个带有象“george”这样的名称的账户。然而,问题是如果有人可以创建“george”账户,那么其他人同样也可以创建“george”账户来假扮。唯一的解决方法是先申请原则(first-to-file),只有第一个注册者可以成功注册,第二个不能再次注册同一个账户。这一问题就可以利用比特币的共识协议。域名币是利用区块链实现名称注册系统的最早的、最成功的系统。
  • 彩色币(Colored coins)
彩色币的目的是为人们在比特币区块链上创建自己的数字货币,或者,在更重要的一般意义上的货币–数字令牌提供服务。依照彩色币协议,人们可以通过为某一特别的比特币UTXO指定颜色,发行新的货币。该协议递归地将其它UTXO定义为与交易输入UTXO相同的颜色。这就允许用户保持只包含某一特定颜色的UTXO,发送这些UTXO就像发送普通的比特币一样,通过回溯全部的区块链判断收到的UTXO颜色。
  • 元币(Metacoins)
元币的理念是在比特币区块链上创建新的协议,利用比特币的交易保存元币的交易,但是采用了不同的状态转换函数APPLY’。因为元币协议不能阻止比特币区块链上的无效的元币交易,所以增加一个规则如果APPLY'(S,TX)返回错误,这一协议将默认APPLY'(S,TX) = S。这为创建任意的、先进的不能在比特币系统中实现的密码学货币协议提供了一个简单的解决方法,而且开发成本非常低,因为挖矿和网络的问题已经由比特币协议处理好了。
可见,创建基于区块链的应用(建立共识协议)有两种方法:A.建立一个独立的网络和在比特币网络上建立协议。虽然像域名币这样的应用使用第一种方法已经获得了成功,但是该方法的实施非常困难,因为每一个应用需要创建独立的区块链和建立、测试所有状态转换和网络代码。另外,我们预测去中心化共识技术的应用将会服从幂律分布,大多数的应用太小不足以保证自由区块链的安全,我们还注意到大量的去中心化应用,尤其是去中心化自治组织,需要进行应用之间的交互。
另一方面,B.基于比特币的方法存在缺点,它没有继承比特币可以进行简化确认支付(SPV) 的特性。比特币可以实现简化确认支付,因为比特币可以将区块链深度作为有效性确认代理。在某一点上,一旦一笔交易的祖先们距离现在足够远时,就可以认为它们是合法状态的一部分。与之相反,基于比特币区块链的元币协议不能强迫区块链不包括不符合元币协议的交易。因此,安全的元币协议的简化支付确认需要后向扫描所有的区块,直到区块链的初始点,以确认某一交易是否有效。目前,所有基于比特币的元币协议的“轻”实施都依赖可信任的服务器提供数据,这对主要目的之一是消除信任需要的密码学货币而言,只是一个相当次优的结果。
二-2、比特币脚本的应用以及缺陷——创建区块链应用的一种方法
脚本应用
即使不对比特币协议进行扩展,它也能在一定程度上实现”智能合约”。
比特币的UTXO可以被不只被一个公钥拥有,也可以被用基于堆栈的编程语言所编写的更加复杂的脚本所拥有。在这一模式下,花费这样的UTXO,必须提供满足脚本的数据。
事实上,基本的公钥所有权机制也是通过脚本实现的:脚本将椭圆曲线签名作为输入,验证交易和拥有这一UTXO的地址,如果验证成功,返回1,否则返回0。
更加复杂的脚本用于其它不同的应用情况。例如,人们可以创建要求集齐三把私钥中的两把才能进行交易确认的脚本(多重签名),对公司账户、储蓄账户和某些商业代理来说,这种脚本是非常有用的。脚本也能用来对解决计算问题的用户发送奖励。人们甚至可以创建这样的脚本“如果你能够提供你已经发送一定数额的的狗币给我的简化确认支付证明,这一比特币UTXO就是你的了”,本质上,比特币系统允许不同的密码学货币进行去中心化的兑换。
缺陷
  • 缺少图灵完备性 – 这就是说,尽管比特币脚本语言可以支持多种计算,但是它不能支持所有的计算。最主要的缺失是循环语句。不支持循环语句的目的是避免交易确认时出现无限循环。理论上,对于脚本程序员来说,这是可以克服的障碍,因为任何循环都可以用多次重复if 语句的方式来模拟,但是这样做会导致脚本空间利用上的低效率,例如,实施一个替代的椭圆曲线签名算法可能将需要256次重复的乘法,而每次都需要单独编码。
  • 价值盲(Value-blindness)。UTXO脚本不能为账户的取款额度提供精细的的控制。例如,预言机合约(oracle contract)的一个强大应用是对冲合约,A和B各自向对冲合约中发送价值1000美元的比特币,30天以后,脚本向A发送价值1000美元的比特币,向B发送剩余的比特币。虽然实现对冲合约需要一个预言机(oracle)决定一比特币值多少美元,但是与现在完全中心化的解决方案相比,这一机制已经在减少信任和基础设施方面有了巨大的进步。然而,因为UTXO是不可分割的,为实现此合约,唯一的方法是非常低效地采用许多有不同面值的UTXO(例如对应于最大为30的每个k,有一个2^k的UTXO)并使预言机挑出正确的UTXO发送给A和B。
  • 缺少状态 – UTXO只能是已花费或者未花费状态,这就没有给需要任何其它内部状态的多阶段合约或者脚本留出生存空间。这使得实现多阶段期权合约、去中心化的交换要约或者两阶段加密承诺协议(对确保计算奖励非常必要)非常困难。这也意味着UTXO只能用于建立简单的、一次性的合约,而不是例如去中心化组织这样的有着更加复杂的状态的合约,使得元协议难以实现。二元状态与价值盲结合在一起意味着另一个重要的应用-取款限额-是不可能实现的。
  • 区块链盲(Blockchain-blindness)- UTXO看不到区块链的数据,例如随机数和上一个区块的哈希。这一缺陷剥夺了脚本语言所拥有的基于随机性的潜在价值,严重地限制了博彩等其它领域应用。
二-3、总结
在密码学货币上建立高级应用的三种方法:
建立一个新的区块链;
在比特币区块链上使用脚本;
在比特币区块链上建立元币协议。
各方法的缺陷
建立新区块链的方法可以自由地实现任意的特性,成本是开发时间和培育努力。
使用脚本的方法非常容易实现和标准化,但是它的能力有限。
元币协议尽管非常容易实现,但是存在扩展性差的缺陷。
在以太坊系统中,我们的目的是建立一个能够同时具有这三种模式的所有优势的通用框架。

发表评论

您必须才能发表评论!