sCrypt 智能合约
码龄14年
  • 99,218
    被访问
  • 73
    原创
  • 25,498
    排名
  • 104
    粉丝
  • 5
    铁粉
关注
提问 私信
  • 加入CSDN时间: 2008-04-16
博客简介:

freedomhero的博客

查看详细资料
  • 3
    领奖
    总分 449 当月 40
个人成就
  • 获得64次点赞
  • 内容获得72次评论
  • 获得50次收藏
创作历程
  • 26篇
    2022年
  • 32篇
    2021年
  • 15篇
    2020年
成就勋章
TA的专栏
  • 智能合约
    40篇
  • sCrypt
    70篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

BSV上的委托合约(3)

不局限于指定公钥的泛化委托合约方案
原创
发布博客 2022.06.20 ·
59 阅读 ·
0 点赞 ·
0 评论

BSV上的委托合约(2)

我们引入了一种简单而通用的委托机制,它是我们开发的脚本级委托的替代方案。
原创
发布博客 2022.06.20 ·
72 阅读 ·
0 点赞 ·
0 评论

BSV上的委托合约

我们为 Alice 引入了一种新颖的方式,允许 Bob 使用她的 UTXO/硬币,而无需向 Bob 提供她的私钥。
原创
发布博客 2022.06.17 ·
22 阅读 ·
0 点赞 ·
0 评论

比特币的双线性配对(2)- BLS 签名

在 BSV 上实现基于双线性配对的 Boneh-Lynn-Shacham 签名方案。
原创
发布博客 2022.06.09 ·
72 阅读 ·
0 点赞 ·
0 评论

Solidity -> sCrypt 转译器简介

为什么需要它?sCrypt 是 BSV 的原生智能合约语言。理想情况下,每个人都应该在 sCrypt 中开发智能合约,利用最具扩展性的区块链。在实践中,我们也了解到许多项目和开发人员已经投入大量时间和金钱来开发他们当前的 Solidity 代码库。转译器有助于开发人员将他们的应用程序从以太坊和其他 Solidity/EVM 兼容的区块链迁移到 BSV 网络,而无需从头开始编写代码。它极大地降低了他们的迁移成本,尤其是当他们的代码库包含数千行或更多代码时。此外,现有的 Solidity 库和代码库可以.
原创
发布博客 2022.05.27 ·
59 阅读 ·
0 点赞 ·
0 评论

比特币的双线性配对

基于配对的密码学是椭圆曲线密码学的一种变体。由于配对的特点,新的密码算法和协议可以实现传统密码学无法实现的功能或效率,例如基于身份的加密(IBE)、基于属性的加密(ABE)、认证密钥交换(AKE)和短签名。基于配对的密码学的几种应用已在许多区块链中得到实际应用。Zcash 实现了自己的零知识证明算法,名为 zk-SNARKs(零知识简洁非交互式知识论证)以太坊支持配对检查以执行 zkSNARK 验证DFINITY(现在称为互联网计算机)构建了一个基于 BLS 签名的方案,比 ECDSA 签名更短
原创
发布博客 2022.05.24 ·
86 阅读 ·
0 点赞 ·
0 评论

sCrypt IDE 1.14.0 发布

今天我们发布 sCrypt IDE 1.14.0 版本,主要有以下改进:优化编译速度对于部分较大合约,之前的编译版本编译时间较长,比如合约 p2gpk.scrypt。编译时间可能需要 30 分钟左右。而优化后的新版本编译时间只要不到 2 分钟1。异步编译之前 IDE 在编译合约时采用的是同步编译的模式。这导致在编译较大合约时,GUI 会发生卡顿,无响应等影响用户体验的问题。比如下图: Hover 时无法加载提示信息。新版本采用异步编译的模式。即使编译合约需要较长时间,也不会出现卡顿、无响应的现象
原创
发布博客 2022.05.09 ·
115 阅读 ·
0 点赞 ·
0 评论

sCrypt IDE 1.12.0 发布

sCrypt IDE 1.12.0 支持将合约部署到 BSV 主网。更新IDE后,可以看到设置增加了 Priv Key Mainnet (主网私钥) 的设置项:Env (部署环境) 也增加了 mainnet 的选项。选择 mainnet 选项后,IDE 会随机生成一个主网私钥。同时还可以看到右下角状态栏增加了一个显示部署网络环境的按钮。点击改按钮同样可以切换部署网络。设置好主网私钥后,或者点击状态栏的余额按钮,可以从 OUTPUT 视图中看到主网私钥对应的 BSV 地址。往该地址转入小额 BS
原创
发布博客 2022.04.23 ·
80 阅读 ·
0 点赞 ·
0 评论

BSV 上的 Taproot

我们展示了如何通过结合无合约的合约 和 Merklized 抽象语法树 (MAST) 在 BSV 区块链上实现 Taproot 协议。BTC 上的 TaprootTaproot 是自 2017 年以来最大的 BTC 升级,旨在改进其功能。在 Taproot 中,我们调整公钥 P 以获得新的公钥 Q,如下所示:H() 是一个哈希函数,G 是生成点。当我们将数据链接到签名时,这与等式 4 中的公式相同。在这种情况下,Q 中提交的数据只是 m,即 MAST 的根。P 是各方的聚合公钥。支付到 tap
原创
发布博客 2022.04.22 ·
1937 阅读 ·
0 点赞 ·
0 评论

BSV 上的安全多方计算

安全多方计算 (MPC) 协议使多方能够联合各方的输入,共同计算一个函数,同时保持这些输入的私密性。例如,两位百万富翁决定谁更富有,应该为晚餐买单,而不透露他们的实际财富1。或者一组员工可以在不披露个人工资的情况下计算该组的平均工资。MPC 的一个基本限制是它不能强迫各方遵守约定。在百万富翁的例子中,一个人可以在发现自己更富有后拒绝付款。我们使用基于智能合约的方法来解决这一挑战²,通过使用 sCrypt 智能合约将 MPC 的结果与真实交易联系起来。我们通过在无受信任的第三方的情况下实现去中心化抽奖来
原创
发布博客 2022.04.22 ·
2275 阅读 ·
0 点赞 ·
0 评论

使用 P2CH 拆分合约

我们提出了一种优化技术,可以将一个大合约拆分为多个较小的合约,从而在保持正确性的同时大幅减小其大小。我们将展示它如何在具有大循环和许多公共函数的合约中工作。循环 (Loops)循环在 sCrypt 中采用以下格式:loop (maxLoopCount) { loopBody}因为循环是静态展开的,所以在编译时必须知道最大循环计数 maxLoopCount。如果设置得太小,可能会导致合约无法解锁成功,资金被永久烧毁。因此,它是为最坏的情况保守地设置的,并且当最常用的循环计数明显小于最坏的情
原创
发布博客 2022.04.15 ·
332 阅读 ·
0 点赞 ·
0 评论

无合约的合约

我们发明了一种称为无合约合约的技术,以忠实地执行常规支付 (P2PKH) 交易中的任何智能合约。当多方合作时,它极大地提高了任意多方智能合约的隐私和效率。无合约的合约我们将说明无合约的合约是如何在两方之间运作的。它可以简单地扩展到多方。在典型的两方合约中,工作流程如下:图1: 合约工作流程:之前Alice 和 Bob 各自存入合约。合约执行后,它会根据合约的逻辑1将输出拆分给 Alice 和 Bob。例如,可以通过释放哈希原像、签名或由预言机签名的体育比赛的结果来触发合约执行。我们修改工作流程如
原创
发布博客 2022.04.08 ·
3061 阅读 ·
1 点赞 ·
0 评论

sCrypt 新功能介绍 (v1.9.0)

今天我们发布了 sCrypt IDE 的新版本 v1.9.0。 新版本支持在被导入的文件中执行 REPL, 同时带来了更加强大的 内联汇编 语法。在被导入的文件中执行 REPL在之前版本的IDE,当你在调试sCrypt 合约时, 如果调试器是停在被导入的文件中,这个时候在 REPL 中执行表达式,会提示以下错误。util.scrypt 是被导入的文件,当调试器停在这里时,在 REPL 中无法执行表达式。新版本的IDE 解决了这个问题, 你可以在任何地方执行表达式。内联汇编新语法现在支持在
原创
发布博客 2022.03.29 ·
389 阅读 ·
1 点赞 ·
0 评论

部分原像技术

通常,要计算输入(称为原像)的散列,需要其整体。我们展示了一种新技术,可以仅使用原像的一部分来计算散列,适用于各种散列算法。SHA256 的工作原理让我们以 SHA256 为例。在内部,它的工作原理如下:原像被分成 512 位的块。如有必要,将附加填充。每个块与内部状态(当前哈希 h0-h3)一起迭代地输入函数 g,其输出用作下一次迭代的输入。最后一个状态是最终的哈希。这个过程称为 Merkle-Damgård 构造。g 是一个压缩函数,它接受两个固定长度的输入并产生一个固定长度的输出。.
原创
发布博客 2022.03.25 ·
253 阅读 ·
0 点赞 ·
0 评论

BSV 智能合约间调用

我们将介绍一种新颖的方法来调用另一个智能合约。方法建立在 OP_PUSH_TX 的技术之上。我们通过让一个合约调用另一个合约来求解二次方程来说明该方法。它已在 Sensible Contract 等项目中得到推广和广泛使用。背景 sighash 原像格式规范 从 sighash 原像的规范中,我们可以看到交易中的每个输入都有不同的 sighash 原像。我们还看到它们的原像有重叠的部分。最值得注意的是,它们共享相同的输出(彩色)。input0 和 input1 的原像都包括 output0 和 o
原创
发布博客 2022.03.18 ·
479 阅读 ·
0 点赞 ·
0 评论

一种 BSV 智能合约的扩展方法:支付到合约哈希

事实证明, BSV 上的智能合约比以前想象的更强大、更通用。然而,仍然有两个严重的限制:合约一旦部署就不能支持新功能。例如,我们可以部署一个代币合约,但后来发现由于缺乏某些功能,它无法集成到一些新的交易所或投票应用程序中。这极大地阻碍了它与第三方应用程序的互操作性,从而阻碍了它的广泛采用。第一个限制也暗示所有受支持的功能都必须包含在代币合约中。即使我们可以预见到令牌在最初构思时需要支持的所有功能,也只有少数功能是常用的,而大多数功能很少使用。支付到合约哈希 (Pay to Contract
原创
发布博客 2022.03.11 ·
5721 阅读 ·
0 点赞 ·
0 评论

优化 OP_PUSH_TX

自从我们实现 OP_PUSH_TX 以来,已经使用这个强大的功能构建了大量的智能合约。随着这些合约开始部署在 BSV 网络上,是否可以实现更轻量级的 OP_PUSH_TX, 以最小化交易成本的需求也成为大家关心的一个问题。我们已经介绍了一种使用OP_CODESEPARATOR 优化OP_PUSH_TX的方法。今天,我们将介绍另外一种优化 OP_PUSH_TX 的方法,最高可以优化 700%。使用优化版本的 Tx.checkPreimage只需将 Tx.checkPreimage(SigHashPreim
原创
发布博客 2022.03.04 ·
195 阅读 ·
0 点赞 ·
0 评论

BSV 区块链上的 DeFi (3) :Uniswap

UniswapUniswap 是所谓的 Decentralized Exchange,它允许个人或称为流动性提供者,将 Token 汇集到智能合约中提供流动性。概述我们实现了 Uniswap V1,它只在 BSV 和 Token 之间直接交换。如@state 装饰器所示,我们使用一个带有 @state 装饰器 的有状态合约来表示池子。它包含两个 Token :一个用于我们正在交换的 Token (第 7 行),另一个是治理 Token (第 11 行),称为流动性池(LP) Token 。该池将 B
原创
发布博客 2022.02.25 ·
149 阅读 ·
0 点赞 ·
0 评论

BSV 区块链上的计算外包示例

我们提出一种新的范例,用 sCrypt 智能合约来外包密集型计算。这种方法适合解决大量的计算密集型问题。作为示例,我们把该方法应用到旅行推销员问题上。旅行圣诞老人/推销员问题在平安夜,圣诞老人需要遍历每个家庭给孩子们送礼物。在准备雪橇之前,他想要找到来往于所有烟囱之间的最短路线。由于烟囱数量庞大,这需要大量计算[1]。因为 BSV 区块链具备超强的智能合约能力,他决定用该能力来应对这个挑战。他部署了下面的合约,并将1个 BSV 锁定在合约 UTXO 中。任何人如果发现了比给定的阈值更短的路径,就可以
原创
发布博客 2022.02.11 ·
6416 阅读 ·
0 点赞 ·
0 评论

BSV 区块链上的 DeFi: 非同质化代币(NFT) 与 市场交易

在本系列的第 2 部分中,我们将说明如何构建非同质化代币(NFT) 并直接在 BSV 区块链上交易它们。非同质化代币 (Non-Fungible Tokens)在最基本设置中,NFT 合约包含两列的表:一个 ID,唯一地代表不可替代的资产,以及它的合法所有者。下面的合约实现了这样一个基本的 NFT 合约,类似于以太坊中的 ERC721 代币标准。// a basic ERC721-like non-fungible tokencontract ERC721 { PubKey minte
原创
发布博客 2022.02.11 ·
5434 阅读 ·
0 点赞 ·
0 评论
加载更多