BSV开发专家

BSV区块链邀请了多位具有丰富区块链发开经验并精通BSV技术原理的专业人士入驻BSV开发者专区。

点击头像进入专家列表

  • 林哲明
  • 王一强
  • 何启明
  • 顾露
  • 刘爱华
  • 周全
  • 王宇
  • 李龙
  • 邱少贤
  • 周衍

最新博客

  • 使用 Merklized 抽象语法树压缩智能合约
    发表于2021-08-01

    Merklized 抽象语法树 MAST(又名 Merklized 替代脚本树)是一种使用 Merkle 树压缩比特币智能合约的技术。我们在比特币 SV 上实施了 MAST。与所有其他实现不同,我们利用原始比特币协议,没有任何共识更改。 问题 通常有不止一种方法可以解锁锁定在比特币智能合约中的硬币。在 sCrypt 中,每种方式都被建模为一个公有函数,代表一种条件的解锁分支。例如,在 TimedCommit 合约中,可以通过 Alice 的原像和她的签名,或者通过 Alice 和 Bob 的签名来解锁合约。

  • 在比特币上构建机器学习竞赛市场
    发表于2021-07-29

    我们提出了一种在比特币上实现去中心化机器学习 (ML) 市场的新方法。任何人都可以通过发布附带奖励的智能合约来外包机器学习任务。任何提交表现最佳模型的人都将通过区块链交易获得奖励,而无需通过中心化机构。 如何在比特币上进行机器学习竞赛 Kaggle 是一个流行的数据建模和数据分析分析竞赛平台,之前已被 Google 收购。Kaggle 竞赛中包括了很多由 Kaggle 、Facebook 、微软等其他公司制作的机器学习任务。如果竞争成功,参赛者可以获得金钱奖励,有时超过一百万美元。 与 Kaggle 比赛

  • 如何在 sCrypt 合约中实现浮点数运算
    发表于2021-07-13

    相信很多开发者朋友在使用 sCrypt 开发比特币智能合约时,会有这样一个问题:为什么没有浮点数的数据类型?比如 Float 或者 Double?这篇文章我们就来聊聊在合约中如何实现模拟浮点数的高精度计算。 常见的编程语言一般都会有原生的浮点数支持,大部分都会参考实现 IEEE754 标准,但包括比特币在内的很多区块链的智能合约都没有原生支持浮点数,这其中可能有两个重要原因:1. 如果使用基于 FPU 硬件的实现(hard float)可能会有不同架构的节点在验证单笔交易时产生不同结果,从而导致共识失败;2

  • Rabin 数字签名
    发表于2021-07-12

    https://aaron67.cc/2021/07/10/rabin-signatures/ 本文将详细介绍 Rabin 数字签名的算法细节。在开始之前,你需要对模运算、同余和模逆元的概念有一些了解。 算法过程 质数 ppp 和 qqq,且有 p≡3(mod4)p \equiv 3 \pmod{4}p≡3(mod4),q≡3(mod4)q \equiv 3 \pmod{4}q≡3(mod4)。 组合 (p,q)(p, q)(p,q) 为私钥,两数的乘积 n=pqn = pqn=pq 为对应的公钥。 使.

  • 比特币与以太坊智能合约比较
    发表于2021-06-16

    本文​​从多个方面比较两个智能合约区块链:比特币和以太坊。我们发现,由于其巧妙构建的基础设计,比特币具有卓越的性能、安全性和成本效益。文中重点介绍它们的技术差异,经济、哲学、法律和环境差异超出了本文的范围。 可扩展性 以太坊的账户模型和垂直扩展 在以太坊,每个智能合约都驻留在一个帐户中。它有自己的存储空间,这种存储空间在整个合约执行过程中持续存在。为了了解如何做到这一点,让我们研究一下以太坊的核心智能合约引擎: Ethereum 虚拟机(EVM)。它是基于堆栈的,并将数据存储在三个地方: 堆栈、内存和存储

  • sCrypt 1.0.0 正式版发布
    发表于2021-06-09

    经过1年多的努力,40几个版本的迭代更新,sCrypt 今天正式发布 1.0.0 版本,包含以下重大更新: 完整的 IDE 使用 文档 高级付费功能 代码优化 更加细致和安全的代码格式化器。 更加完善的语法高亮效果。 新增 :hex2Asm, :parsePreimage, :diffoutputs 三个内置的调试器命令 新增 sCrypt: Launch Debugger 命令,以便快速启动调试器。 代码优化 代码优化是将一段代码转换为其他功能上等效的代码,以提高一个代码运行速

  • sCrypt 开发人员优化指南
    发表于2021-05-18

    第一部分:手动优化 sCrypt 编程与使用 Javascript 或 Python 进行的传统编程不同,因为当将包含编译结果的交易提交到比特币网络时,脚本大小直接决定了它们的运行成本。因此,最终的脚本应该尽可能小,以节省交易费用¹。下面我们列出了一些技巧,供开发人员手动优化其 sCrypt 合约的脚本输出。 1. 合并相同的函数调用 所有函数调用均通过内联实现。函数主体会被复制到调用它的位置。如果同一个函数在不同的地方多次调用,则可以通过合并它们来节省代码大小。在下面的示例中,将两个 Tx.checkP

  • BSV 智能合约中的可扩展状态存储
    发表于2021-05-11

    之前,我们介绍了一种通用技术来维护比特币智能合约中的状态。它直接将状态存储在单个 UTXO 中。例如,我们将该技术用于1层 Token 解决方案,其中状态是全局 Token 余额表。当用户数量增加时,它很快变得非常昂贵,因为每个 UTXO 也即每个交易都携带整个状态。 现在有一个更具突破性的想法,可以在有效地保持状态的同时避免交易体积快速膨胀。具体来说,是将状态的 Merkle 根而不是其本身存储在 UTXO 中,同时仍然在1层强制执行所有状态转换规则。它将 UTXO 大小从 O(n)减小为 O(log n

  • sCrypt 合约中如何使用优化版 OP_PUSH_TX
    发表于2021-05-06

    自从我们在 sCrypt 语言中实现了 OP_PUSH_TX 技术以来,大家已经使用此功能强大的原语构建出了许多智能合约。随着这些合约开始部署在比特币网络上,必须使 OP_PUSH_TX 变得更小以降低成本。从 sCrypt IDE 0.4.4 版本之后,我们已经可将 OP_PUSH_TX 的大小优化约 700%。 如何使用优化版 OP_PUSH_TX? 要使用优化版本,只需将 Tx.checkPreimage(SigHashPreimage txPreimage)替换为其优化版本Tx.checkPreim

  • 如何快速调试 sCrypt 单元测试错误
    发表于2021-05-01

    sCrypt IDE 允许您在单元测试失败的地方启动调试器,这将帮助开发人员极大地提高调试合约问题的效率。 早些时候使用 sCrypt 单元测试框架时,如果测试失败时,错误消息仅在JavaScript / TypeScript 代码中显示失败的位置。如果用户想要找出失败的具体原因,则必须打印出调试参数,然后将其复制并粘贴到 launch.json 文件中再启动调试。这是一个费力且容易出错的过程。 单元测试失败时直接启动调试器 使用这个功能之前,我们首先需要确保已经打开了 SourceMap 的设置,参考下

每页显示 共115条数据 < 1 2 3 4 5 6 7 8 9 10 ...12 >      到第 GO
联系我们: china@bsvblockchain.org
关注