在传统的账本中,账上的数据仅仅是一种记录。而在区块链这个账本上,这些数据则有了超越账本的意义他们可能是编程的。
这是一个质的变化。由于区块链的可编程属性,使得区块链上所能承载的就不仅仅是普通的交易,而是可以基于程序自动执行的智能交易。
脚本与多重签名技术
比特币区块链上的交易可以通过脚本来实现。所谓脚本(Script),就是使用一种特定的描述性语言编写的、可执行的计算机代码。比特币的脚本语言非常简单,仅有256条指令,其中75个是被保留的,尚未被赋予任何含义。比特币脚本中的指令与其他编程语言类似,包含基本的语法、逻辑,除此之外还包括一些加密指令,如哈希函数、签名验证等。
比特币的多重签名技术就是使用脚本实现可编程交易的一个典型例子。其基本原理是,在系统里创建一个由多个人共同管理的账户,只有达到事先约定数量的人的同意,才能动用该账户的钱,并且这个过程是由系统本身保障执行的,不需要任何第三方介入。
一般来说,一个比特币地址对应一个私钥,动用这个地址中的资金只需要该私钥的掌握者单独发起签名即可。而多重签名技术就是需要多个私钥的共同签名才能动用一笔资金。比如说,某笔资金对应3个私钥,而必须至少有其中任意2个私钥参与签名才能动用,只有一个私钥参与签名是无效的。这个2/3可以推广到任意的m/n,比如3/5、4/7、6/11等,当然m要小于等于n。
多重签名技术有着广泛的应用空间,一个最直观的场景就是类似于支付宝的应用,卖家、买家和作为担保的第三方可以构建一个多重签名的交易,约定其中至少两方取得一致才能决定资金的流向。其他容易想到的应用场景还有:更安全的在线钱包、共同财产、合伙经营、资金监管等。以上构想的场景都是比较简单的,具体实践中一定会有更加灵活丰富的形式。
智能合约
智能合约的理念可以追溯到1994年,几乎与互联网(World Wide Web)同时出现。密码学家尼克萨博(Nick Szabo)首次提出了“智能合约”这一术语。从本质上讲,智能合约工作原理类似于计算机程序的条件执行语句。当一个预先编好的条件被触发时,智能合约执行相应的合同条款。由于区块链的可编程性,因此智能合约在区块链和数字货币上的应用是水到渠成的事情。
举一个简单的例子,以西甲国家德比为例。假如你堵皇马赢,下注一个比特币,你的朋友堵巴萨赢,下同样的注。比赛开始前,你和你的朋友将你们的比特币发送到一个由智能合约控制的中立账户。比赛结束后,智能合约能够根据比赛结果,自动的将相应的资金发送到赢家的账户。
再比如网上购物,如果你从网上买了某商品,但不想立即付款给卖家,希望等到发货后在付款。这时你可以创建一个合约,这个合约可以自动查询快递的物理数据,当确认你购买的商品已经发出时,才给卖家发送货款。
以上只是简单的解释和举例,智能合约是计算机程序,所以很容易应用于其他需要的场景增加更加细致的控制条件,完成更复杂的执行逻辑。这有点类似传统的合同,我们也可以认为,智能合约就是把合同以代码的形式搬到了区块链上,但这就带来了根本的区别:它不需要任何人监督合同的执行,订立合同的双方也无法在合同完成前单方面违约,一切都是按合同的约定自动执行的。相信随着区块链的普及和交易智能化的发展,它将会对未来的交易模式与商业结构带来巨大的影响。
从具体的实践来看,由于比特币的脚本语言并不是图灵完备的,所以在扩展性上,比特币区块链目前所支持的资产定义和交易模式还比较有限。
因此,业内一些人开始尝试开发不同于比特币区块链的、支持图灵完备脚本语言的区块链,以太坊(Ethereum)就是一个典型的例子。目前,以太坊上的代币以太币(ETH)的市值已经达到了比特币的1/10,成为全球市值排名第二的数字货币。
关注我,将带你学习更多的财经知识