| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 区块链 -> 无合约的合约 -> 正文阅读 |
|
[区块链]无合约的合约 |
我们发明了一种称为无合约合约的技术,以忠实地执行常规支付 (P2PKH) 交易中的任何智能合约。当多方合作时,它极大地提高了任意多方智能合约的隐私和效率。 无合约的合约我们将说明无合约的合约是如何在两方之间运作的。它可以简单地扩展到多方。在典型的两方合约中,工作流程如下: Alice 和 Bob 各自存入合约。合约执行后,它会根据合约的逻辑1将输出拆分给 Alice 和 Bob。例如,可以通过释放哈希原像、签名或由预言机签名的体育比赛的结果来触发合约执行。 我们修改工作流程如下: 我们不是直接存入合约,而是先存入一个联合地址,只有双方签字才能解锁。之后,共同基金被锁定在合约中。 乍一看,这个额外的步骤似乎是多余的,只会增加复杂性。关键思想是合约交易 (tx2) 不会被 Alice 和 Bob 广播并保持在链下。合约在链下执行。如果 Alice 和 Bob 就结果达成一致,他们都可以签署新的交易 tx2’ 并花费 tx1。 就 Alice 和 Bob 收到的 BSV 数量而言,这与广播 tx2 和 tx3 的效果相同,但有两个好处。 隐私: 所有交易(tx1 和 tx2’)看起来与常规支付(P2PKH)交易相同。外部方甚至不知道有一个隐藏的潜在合约的存在。 效率: 无论合约多么复杂和庞大,只有两笔支付交易最终在区块链上,节省了大量的矿工费用。 不合作场景当任何一方不合作并拒绝签署 tx2’ 时,另一方始终可以广播预先签署的 tx2 并在 tx3 中终止合约。追索权激励各方合作。 Threshold 签名在 tx1 中,我们使用 2-of -2 Threshold 签名方案 (TSS):
从外部看,联合公钥和签名看起来与常规公钥和签名相同。令人惊奇的是,联合公钥对应的私钥在签名时不必存在,避免了单点故障。 TSS 如何在 ECDSA2 上工作的详细说明超出了本文的范围。有兴趣的读者可以阅读 nChain 的 白皮书 和 这份资料。 TSS 已在此处进行了演示,并广泛用于 HandCash 和 Volt 等生产钱包。 Nakamoto 签名协议遵循图 2 中的工作流程的一种简单方法是让 Alice 和 Bob 依次签名和广播 tx0/tx0’、tx1 和 tx2。但是,有几个问题。 Bob 得到 Alice 部分签名的 tx1 后,他可以:
为了克服这些问题,我们受中本聪的启发,分两步设置合约,我们称之为 Nakamoto 签名协议。
合约只有在双方都没有中止时才会继续进行,因为 tx1 需要 tx0 和 tx0’ 都有效。 与合作合约相比无合约合约类似于我们之前介绍的合作合约,当各方就最终输出达成一致时,走捷径。它比后者更私密、更高效:
[1] 存款和拆分金额都可以为零,即只有一方存款和赎回。 [2] 与许多人的想法相反,Schnorr 签名不需要将多个签名聚合为一个。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 20:33:50- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |