BSV开发专家

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

点击头像进入专家列表

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

最新博客

  • BSV 上的图灵机
    发表于2022-02-25

    我们通过实践证明任何图灵机都可以在比特币上进行模拟,从而证明它是图灵完备的¹。我们已经实现了一个识别平衡括号的图灵机,并将其部署在比特币区块链上。任何其他的图灵机都可以用同样的方式模拟。 图灵机简介 图灵机由以下组件(简化)组成: 当前状态,在一组有限的状态中(一个状态标记为初始状态,一些状态标记为结束状态) 带有存储单元和可以在磁带上移动的读/写头的磁带 一个所谓的转换函数,它告诉机器该做什么和什么时候做。 在下面的示例中,我们展示了用于检查平衡括号的图灵机。它的初始状态是 A 并且它包含

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

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

  • 在 BSV 上构建机器学习竞赛市场
    发表于2022-11-19

    我们提出了一种在 BSV 上实现去中心化机器学习 (ML) 市场的新方法。任何人都可以通过发布附带奖励的智能合约来外包机器学习任务。任何提交表现最佳模型的人都将通过区块链交易获得奖励,而无需通过中心化机构。

  • 如何在 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 为对应的公钥。 使.

  • 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 单元测试错误
    发表于2022-03-25

    sCrypt IDE 允许您在单元测试失败的地方启动调试器,这将帮助开发人员极大地提高调试合约问题的效率。 早些时候使用 sCrypt 单元测试框架时,如果测试失败时,错误消息仅在JavaScript / TypeScript 代码中显示失败的位置。如果用户想要找出失败的具体原因,则必须打印出调试参数,然后将其复制并粘贴到 launch.json 文件中再启动调试。这是一个费力且容易出错的过程。 单元测试失败时直接启动调试器 在 IDE 中右键运行测试后,如果单元测试失败,则错误消息中还有另外两行信息:

每页显示 共145条数据 < 1... 4 5 6 7 8 9 10 11 12 ...15 >      到第 GO
联系我们: china@bsvblockchain.org
Copyright © 2022 Keyi Tech. All Rights Reserved.
可一科技 版权所有
关注