区块链集资应用:保证合约交易解决方案

企业新闻 | 2018-08-23

区块链集资应用:保证合约交易解决方案

区块链集资应用:保证合约交易解决方案

区块链保证合约是为建造公益物筹集资金的一种方式,一旦完成,任何人都可以免费获得。标准的例子是灯塔。每个人都同意应该建造灯塔,但对于领航员来说,它太贵了,这不仅是他可以使用的,而且也是为了其他海员的方便。一种解决办法是向每个人筹集资金,这样如果他们筹集的资金超过了他们所需要的,那么每个人都会付出真正的代价,如果他们没有筹集到足够的钱,他们就不必支付。在保证合同资金方面,包括频繁、小规模、自筹资金(如互联网无线电融资和网络翻译),比特币优于传统的支付方式。假设您有一个浏览器插件,它可以向您发送一角钱,它检测当前页面的语言并广播筹款请求,以将页面翻译成您的语言。如果许多插件用户同时查看该页面(例如,该页面是从高流量网站链接的),则可以将足够的筹款请求广播到一定数量,自动支付给高质量的翻译公司,当翻译完成后,该页面将自动加载到您的浏览器中。

我们能以比特币合约交易方式建立以下模型,具体步骤如下。

I )主办方创建新的捐赠地址,宣布如果筹集资金超过1000BTC,则将建造该商品,任 何人都可以捐赠。
2) 捐赠者创建一个新交易,把一定数量的钱打到集资地址上,但是他们并不广播该 交易。该交易与常规的交易相似,但有三个不同点:首先,不能做任何改变,如果你没 有正确的输出金额1000BTC,那么你必须先创建一个;第二,输入脚本要以SIGHASH一 ALL|SIGHASH_ANYONECANPAY的模式签名;最后,输出值是IOOOBTC,注意,这不是 一个有效的交易,因为输出值比输入值大得多。
3) 把交易上传到主办方的服务器上,他们把交易保存到磁盘上,随时更新捐赠的币数量。
4) 一旦服务器获得了足够的币,它将把所有捐赠者上传的独立交易合并成一个新的交 易,该交易只有一个输出,仅仅是把钱付到捐赠地址,该输出与每个捐赠者的交易的输出部 分相同,而输人部分则是所有捐赠者输入的集合。
5) 广播完整的交易,发送捐赠的币到捐赠地址中。
这样的场景依靠了协议的几个方面,首先使用了 SIGHASH符号,SIGHASH一ALL是默 认模式,意味着要签名所有交易的内容,除了输人脚本。SIGHASH一ANYONECANPAY是附 加的指示器,意味着签名仅覆盖自己的输入部分,而不会覆盖其他人的输人,这样一来,其 他人的输人可以留空。使用这些符号,我们能创建这样一个签名,即使在添加进其他输入之 后,该签名依旧是有效的。但如果输出内容或其他的交易部分被改变了,那么该签名就会无 效了。第二,输入值小于输出值的交易是无效的(原因很明显),这也就意味着捐赠者把发送 币的交易发送给主办方是安全的,因为主办方不可能得到这些捐赠币,除非再加上其他的输 人值等于或超过输出值。
不使用SIGHASH_ANYONECANPAY指示器也可以创建保证合约。不需捐赠者创建
交易的集资方式有两个步骤,一旦达到集资的总金额,主办方就会创建包含所有捐赠者输 入的交易,然后依次在捐赠者中传递,每个捐赠者都对该交易进行签名。但是,先使用 SIGHASH—ANYONECANPAY指示器,然后合并交易,这样可能会更方便一些。
保证合约可以保证下一个块的资金网络安全,通过这种方式,即使一个块中的交易数量 比较少,挖矿也能挣钱(因为保证合约的交易一般占用空间较大,因而需要付出更多的网络 转账费)。
Tabarrok 在他的论文 “ The private provision of public goods via dominant assurance contracts”
 
中详尽地描述了保证合约的概念,在一个通用的保证合约中,如果合约失败了(在预定时间内 集资不足),主办方会给捐赠者支付网络转账费,这种类型的合约旨在鼓励捐赠者积极参与。