BSV开发专家

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

点击头像进入专家列表

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

最新博客

  • 从 sCrypt 智能合约中访问区块链数据(无需预言机)
    发表于2021-11-27

    智能合约对外部世界一无所知,一般必须依靠预言机来导入外部数据。我们之前已经展示了两种基于 Rabin 签名和 ECDSA 从预言机导入数据的方法。在本文中,我们将展示如何在没有预言机的情况下访问特定类型的外部数据,即区块链上的数据(例如区块头和交易),同时仍然保持数据完整性。通过允许智能合约以最少信任原则访问链上数据,将为所有新的比特币智能合约提供无限的机会。 访问区块头 顾名思义,比特币区块链由很多个区块链接而成。一个区块有两部分数据:区块头和交易。 一个块和它的头 区块头包含区块的元数据,有六个字段,

  • 在 sCrypt 合约中使用 HashedMap 数据结构
    发表于2021-11-18

    在 sCrypt 合约中使用 HashedMap 数据结构 在日常程序开发中,Map 作为一种常见的数据结构被经常使用,其支持增删改查等操作,并且通常具有 O(1) 或 O(logN) 的查询效率。为了方便开发者使用,我们在 sCrypt 语言中也实现了一个具有类似功能的标准库 HashedMap。 在 sCrypt 合约中完整实现 Map 的问题 起初我们计划完整地实现一个类似其他主流语言中的 Map 类,但很快就发现了这样做有几个问题和难点: Map 的底层实现通常来说都比较复杂,比如常见的 Has

  • BSV 上的图灵机
    发表于2021-10-18

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

  • 使用 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

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