区块链技术
文章平均质量分 80
区块链研究实验室
更多信息请关注微信公众号:区块链研究实验室
展开
-
隐私加密系列|Grin与BEAM之间技术公开对比
简 介Grin和BEAM是两个基于Mimblewimble协议的开源加密货币项目。Mimblewimble协议最初是由匿名用户使用笔名Tom Elvis Jedusor(《哈利·波特》系列书籍中伏地魔名字的法语翻译)提出的。该用户登录了一个比特币研究(bitcoin research)互联网中继聊天(IRC)频道,并发布了一个链接,指向托管在Tor隐藏服务上的一篇文本文章。本文为构建区块链式交易的新方法提供了基础,该交易提供了固有的隐私性,并具有通过压缩链的交易历史记录显着减小区块链大小的能力。最..原创 2020-05-26 15:02:40 · 692 阅读 · 0 评论 -
区块链研究实验室|从Android调用区块链智能合约
本教程将展示如何直接从Android开发环境-Android Studio中调用智能合约。环境要求我们将使用Tezos区块链。为了使我们的Android java代码与现有的、部署的智能合约交互,我们需要使用TezosRio的TeZOSJ库。这个库有两个版本,一个是专门为使用EclipseIDE制作的通用Java应用程序编写的(TezosjPlainJava),另一个是用于Andro...转载 2020-03-06 16:21:53 · 807 阅读 · 0 评论 -
使用Java与区块链智能合约进行交互教程
简介本文是一个非常实用的分步教程,其目的是向Java开发人员(特别是)展示一种非常简单的与区块链智能合约进行交互的方式。了解使用库与区块链进行交互的难易程度。环境要求我们将使用Tezos区块链。为了使我们的Java代码与现有的、部署的智能合同交互,我们需要来自TezosRio的TeZOSJ库。 该库有两个版本,一个是专门为Android应用程序开发编写的版本(TezosJ_SDK),另...转载 2020-02-26 15:33:18 · 4210 阅读 · 0 评论 -
区块链研究实验室|以太坊智能合约版本升级的核心方法
本文主要说明以太坊的注册表合约、代理合约、继承的存储可升级性,以及更多的可升级性方法。在软件工程中,当发现新的bug和安全风险时,通常会对它们进行修补,并实时推送更新的版本。在智能合约开发中,可升级性并不是那么简单。因此,我们必须采取不同的做法。以太坊仍处于起步阶段,关于如何升级智能合约版本的争议很多,但我们将介绍一些当今最好的选择。注意:智能合约版本的可升级性仍然是研究的活跃领域。以...原创 2020-01-07 16:43:41 · 644 阅读 · 0 评论 -
跨链:详解Cosmos跨链间是如何相互通信
跨链作为区块链一种不可或缺的技术,我们研究跨链,以更好地了解区块链之间是如何相互通信。最初构建区块链时,他们设想能够提供“一刀切”的解决方案,这意味着所有交易,智能合约或其他任何事物都在单个链上执行。但是,现在很明显,这样的系统不太实用,尤其是在存在可伸缩性限制和创新约束的情况下。跨链是两个相对独立的区块链之间的互操作性。换句话说,由于区块链是以标准化的方式构建的,因此它允许区块链彼此通...原创 2019-12-12 14:49:43 · 1257 阅读 · 1 评论 -
图片
原创 2019-12-10 13:51:19 · 129 阅读 · 0 评论 -
区块链研究实验室|以太坊上状态通道的应用案例
频繁进行交易以推进以太坊虚拟机是不必要的昂贵和缓慢。今天大多数使用以太坊的应用程序都通过更新链上合约的存储变量来工作,用户为此支付交易费用并花长时间等待区块确认。为了使用应用程序,我们强迫用户手动将数据库更新提交给世界上最安全,分散和无信任的环境。通过将一些功能转移到客户端代码上,而不是单独依靠以太坊为我们做所有事情,我们可以编写完全安全的应用程序。通常我们将这些称为“layer2”技术...转载 2019-12-09 10:27:39 · 366 阅读 · 0 评论 -
区块链研究实验室|比较两个革命性的网络:闪电网络和互联网世界
从亚里斯多德(公元前4世纪)到康德(公元18世纪)的几乎每一个认识论者都同意,我们通过对世界事物进行分类和比较来学习。苹果和橘子可以相比吗? 问题不是它们是否可以比较,而是我们可以从比较中学到什么。即使闪电网络是人类的发明,我们对此仍然知之甚少。所需的LSP数量如何随用户数量变化?图的复杂度如何与网络的吞吐量相关?何时会大规模采用?基于比特币的闪电经济是什么样的?这项技术将如何改...原创 2019-12-04 10:03:20 · 256 阅读 · 0 评论 -
区块链研究实验室|Merkle Bridge-链间资产转移的简单协议
Merkle Bridge的目标是成为一个简单轻巧的协议,用于在区块链之间资产转移,同时提供分布式的监管和审查阻力。第一个应用程序是将Aergo ERC20代币转移到Aergo的主网原生代币。一旦部署了网桥,任何以太坊或Aergo资产都将可以在这些网络之间直接转移。在本文中,我们将介绍该协议的一些技术细节。我们可以用以下两种方式锚定(2WP)的资产转移:首先在区块链A上存入代币,然后要将代币转...转载 2019-12-02 16:12:22 · 462 阅读 · 0 评论 -
区块链研究实验室|以太坊的混合二层扩容协议曙光
目前的二层扩容的方法--基本是Plasma和状态通道。正从理论走向实践,但与此同时,将这些技术视为以太坊成熟的扩容解决方案时所面临的内在挑战也显而易见了。可以说以太坊之所以成功,很大程度上是因为它具有友好的开发体验:开发者编写一个程序,发布该程序之后,任何人都可以与它进行交互。另一方面还依赖了状态通道的设计或Plasma应用程序依赖于许多关于激励和特定于应用程序的开发。状态通道在特定的用例中表现得...转载 2019-11-25 11:15:08 · 280 阅读 · 0 评论 -
区块链研究实验室|可延展性攻击:为何如此重要
加密领域的许多人都听说过“交易延展性”,并且它是“不好的”。但是,什么是“交易延展性”,为什么不好?让我们快速了解一下。在像比特币这样的加密货币中,交易是在用户之间转移价值的原子操作。用户创建事务并将其发布到网络。这些交易传播网络并最终被挖掘到区块链中。接收者使用区块链来确定交易是否得到确认。在随着成千上万笔交易的进行,用户如何快速识别它们以便能够区分它们?如何在不使用某些缓慢的全局注册表...转载 2019-11-07 10:06:56 · 410 阅读 · 0 评论 -
区块链研究实验室|形式验证如何帮助防止Gridlock错误
最近在Edgeware的Lockdrop智能合约中发现了一个隐藏的DoS错误(称为Gridlock),该合约已锁定了价值数亿美元的以太币。由于存在此错误,Edgeware必须重新部署合约的稳定版本。因此,当前在主网上并行存在两个Lockdrop合约(旧版本和新版本)。(这意味着您可以向这两个合约中的任何一个发送交易以锁定您的以太币,直到旧的合约遭到攻击并无法使用为止。)在本文中,我们将回...转载 2019-10-30 12:30:27 · 154 阅读 · 0 评论 -
区块链研究实验室|区块链数字资产的标记化
简介在本文中,我将为数字资产实现一个简单有效的标记化智能合约。如果你觉得代码有用,请随意重用。本文的第二个目的是说明为什么一些用于区块链开发的用例是有用的,而另一些用例则更值得怀疑。通常关键在于权力下放是否合理。区块链允许我们构建不同于传统解决方案的软件。使用区块链,您可以构建可信任的分布式应用程序,以存储未被篡改的数据。分布式是一个必要的要求,你可以开发许多不同的区块链解决方案,但要...转载 2019-10-29 19:56:50 · 272 阅读 · 0 评论 -
区块链研究实验室| 关于polkadot的substrate与runtime编译教程-part2
json文件的chain specchainspec JSON是一个大的JSON对象,通过substrate build-spec命令生成。此命令通过引用节点的导入runtime模块并查找需要定义的公开配置来工作。这些将是空值或提供默认值。本质上,runtime模块可以依赖于“创世配置”,换句话说,我们在区块链首次初始化和构建其状态时提供的配置。这一状态是通过创世地块-第一个生产的区块...转载 2019-10-28 15:56:04 · 463 阅读 · 0 评论 -
区块链研究实验室|新尝试更改Libra的move交易代码
Libra是Facebook最新推出的一种技术。它看起来很有前途,所以我们正在探索和学习我们可以用它做什么!我们将使用Move(Libra智能合约的编程语言),看看能不能做几笔交易。概述我们将要实现什么功能: 在本地计算机上启动Libra Validator。 在本地计算机上启动Libra CLI。 在我们本地的Libra区块链中进行一些交易。 更新...转载 2019-10-17 15:07:27 · 273 阅读 · 0 评论 -
区块链研究实验室| 基于HyperLedger Fabric架构构建ERC20令牌 part II
setter函数完成getter调用后,让我们研究simpletoken中提供的setter函数。在进行这些交易之前,您需要满足认可政策,在该帐户中,您将在此处看到一些额外的字段。第一次调用setter到特定对等体时也需要一些时间,之后它几乎立即返回结果。 此外,CLI的配置也设置为Org1 peer0,您可以使用以下命令检查:您可以通过运行以下命令更改为peer0,Org2:...转载 2019-06-21 09:43:13 · 328 阅读 · 0 评论 -
区块链研究实验室 |使用Truffle Debugger调试智能合约- part I
与传统的集中式软件开发一样,在智能合约的开发生命周期中,漏洞会蔓延到智能合约开发人员的代码中。虽然智能合约可能存在错误,但仍有“Etherillion”原因,所以在智能合约部署到主网之前必须删除所有Bug,否则,我们将面临资金损失的风险,并最终失去智能合约的可信度。有几个框架可以用于开发智能合约。在本文中,重点是Truffle框架。Truffle旨在通过为智能合约开发提供开发环境、测试框架和调...转载 2019-06-11 10:10:59 · 681 阅读 · 0 评论 -
区块链研究实验室 | 基于substrate创建Ink智能合约
Parity的Substrate区块链框架,在最终版本开发中取得不错的进展。Ink是Parity为基于Substrate的区块链编写智能合约的解决方案。与Substrate一样,Ink建立在Rust之上,因此遵循Rust语言规则和语法。本文将介绍一个示例在智能合约中复制一个ERC721令牌,通常称为以太坊区块链上的ERC721令牌。这是系列文章的第1部分,将介绍创建和部署此Ink智能合约的...转载 2019-06-21 09:43:23 · 1028 阅读 · 0 评论 -
区块链研究实验室 | 以太坊上的广义状态通道
状态通道是可用于分布式应用程序的基础技术。它们可以用于与一组已定义的参与者进行任何交互,例如付款或类似象棋或扑克的游戏。“通道化”这些应用程序使其成本大大降低,并减少了当今区块链应用程序中不可接受的高延迟,从而实现了用户预期的类似网络的响应时间。尽管如此,在当今的以太坊应用中,状态通道的利用率仍然很低。每个想要使用状态通道的项目必须有效地构建自己的自定义实现,从而导致冗余和不必要的风险。其...转载 2019-06-05 11:05:02 · 257 阅读 · 0 评论 -
区块链研究实验室 | 智能合约的标准共享经济协议
区块链是建立共享经济的良好基础,因为出租人和承租人可以在没有任何中间人的情况下相互联系,如Uber或Aribnb。 因此,通过区块链技术让出租人不再受高成本的困扰。当您尝试在以太坊上开发共享协议时,您肯定会面临以下几个问题: 不同类型的资产上市; 争议问题; 可用资产搜索的gas成本; 跨不同类型资产的租赁流程标准化; 1、不同类型的资产上市资产信息...转载 2019-06-12 22:55:26 · 407 阅读 · 0 评论 -
区块链研究实验室 | Plasma打开第三方放贷巨大金融市场
使用以太坊上的现有协议,可以在创建良好的用户体验的同时实现更快的Plasma退出功能。区块链生态系统存在两个主要问题: 缓慢而昂贵的交易-扩展问题 dapps-ui/ux问题-可用性差 我们在Matic Network正试图解决这两个问题。这篇文章是为了强调用户如何通过集成和调整一些已经在以太坊上构建的协议和项目来获得更好的Plasma退出体验。对于刚接触Plas...转载 2019-06-11 10:10:50 · 297 阅读 · 0 评论 -
区块链研究实验室 | Plasma cash智能合约与退出游戏
当然,对于保管链的证明是没有用的,除非它也可以传递给主链以保证资金的安全。链上接受证明的机制是Plasma安全模型的核心,被称为“退出博弈”。当用户想把他们的钱从Plasma链上转移出去时,这会打开一个争议期。在争议期结束时,如果没有未解决的争议,款项将从主链上的Plasma合同发送给退出者。在争议期间,用户可以提交“挑战”,声称退出的资金不属于退出的人。上面描述的证据保证对这些挑战的“反应”...转载 2019-05-29 10:29:48 · 257 阅读 · 0 评论 -
区块链研究实验室 | ethvm:第一个由Kafka支持的开源块资源管理器
自从比特币将世界引入加密货币之后的十年中,该行业的发展方式甚至可能是Satoshi无法想象的。以太坊区块链于2015年7月出现,借助于以太坊虚拟机(EVM)-开发和执行智能合约的环境,开启了一个新的可能性世界。我们引入ethvm:基于Apache Kafka的以太坊的第一个开放源代码块资源管理器和数据处理引擎。ethvm的起源:evm的指南针区块浏览器是区块链审计和决策不可或缺的工具,...转载 2019-06-03 09:36:46 · 528 阅读 · 0 评论 -
区块链研究实验室 | 以太坊精华:复杂共识协议运作方式
背景介绍分布式系统最重要的部分是其共识层。但是,“共识”是什么意思?根据定义,它是一个群体作为一个整体所达成的意见或立场。这可能意味着大多数相关人员达成一致或作出判断。共识协议通常可以被认为具有: 提出建议的一组支持者。 将建议标记为有效的一组测试。 对每一项提案投票的一组选民。 决定一项提案是否被接受或否决的投票机制。 当做出决定时触发的一组...转载 2019-06-14 10:08:55 · 498 阅读 · 0 评论 -
区块链研究实验室 | 拆解MimbleWimble 的隐私魔法-part II
2、CoinJoin 混合交易在过去有许多人认为在比特币的交易图上,能够看到「哪笔输数对应到哪笔输出」是一件非常容易暴露隐私的地方,因此 Gregory Maxwell(是的,又是他)题出了一个叫做CoinJoin的概念,他要做的事情非常简单,就是将两笔交易混合。在MW协议以钱,有许多钱包或者额外的服务,就有配置CoinJoin的服务于其间,例如WasabiWallet和Tumbleb...转载 2019-06-07 11:30:32 · 281 阅读 · 0 评论 -
区块链研究实验室 | 探讨一下区块链中随机数安全问题
前言“随机数”在计算机程序中并不少见,开发人员也会经常使用随机数进行数值的模拟、预测。在C++程序里,我们经常使用一定的种子来进行随机数的生成过程。在计算机程序中,随机数可以被分为真随机数与伪随机数。而真随机数是十分难实现的,例如使用筛子、转轮等等。对于伪随机数来说,我们又分为: 强伪随机数:难以预测的随机数,常用于密码学。 弱伪随机数:易于预测的随机数。 随机数有3...转载 2019-06-13 09:56:36 · 304 阅读 · 0 评论 -
FaaS +区块链:使用以太坊NodeJS oracle与无服务架构连接
为什么选择FaaS + Blockchain无服务架构?早在2018年8月,Forrest Brazeal接受了前AWS Lambda GM Tim Wagner的采访,名为“从无服务架构到区块链”。他们讨论了合并无服务器计算和区块链技术的好处。这是两个主要陈述:我真的认为有两种颠覆性技术正在改变我们建立和运营业务的方式。当然,其中一个是无服务架构。我认为第二种技术非常具有破坏性,并具...转载 2019-01-28 14:46:10 · 500 阅读 · 0 评论 -
区块链研究实验室|简单的区块链数据验证应用程序
简介在本文中,我将用示例代码来讲述我所知道的最简单的区块链应用程序的数据验证问题。想象一下下面的用例。您收到一份经过多方认可的文件,但是又希望确保其的真实性。该文件可能是您正在购买的汽车的服务手册,也可能是一份购房文件,证明您正在购买的房子确实属于卖方。对文件进行数字签名以防止被篡改,这已经不是什么新鲜事。您可以获取文件的内容并使用你的私钥进行加密,生成一个加密文件,将该签名与文件一起...转载 2019-09-18 16:44:33 · 482 阅读 · 0 评论 -
区块链研究实验室 |使用Ethers.js构建以太坊DApp
你在以太坊上构建DApps时,你很可能最常使用Web3.js来构建javascript前端。Ethers.js是一个轻量级的JavaScript库,可以用来替代Web3.js来构建javascript前端并与以太坊区块链进行交互。这篇文章/教程中,我将展示如何使用Ethers.js构建一个简单的DApp。我希望这有助于您评估并开始使用Ethers.js进行下一个项目。在本教程中,我们将创建一个...转载 2019-08-21 17:03:04 · 862 阅读 · 0 评论 -
区块链研究实验室 | 使用MySQL存储以太坊事件
在本文中,我将演示一种缓存以太坊事件的简单方法。我只想说,通常我们将事务用于链下操作,例如跟踪令牌的传输或检索特定事务的筛选列表,就像一个SQL查询一样。假设我们想要创建一个跟踪令牌传输的网站,Etherscan。我们只需要一波简单的操作,比如: 取得所有令牌转移信息 取得以太坊转账来源地址 取得以太坊转账目标地址 获得特定金额的转账信息 ...转载 2019-08-07 16:16:47 · 455 阅读 · 0 评论 -
区块链研究实验室 | PoS区块链使用VDFs时间锁
PoW工作证明是在区块链网络上形成共识的最常见方法。不幸的是,PoW具有不可忽略的能源损耗,同时研究人员一直在寻求可替代的共识机制。每种技术都旨在提高相同级别的安全性,同时降低能源需求。有许多替代的方案,例如股权证明(PoS)通常被认为是平衡权力下放,安全性和效率的最佳协议。在PoS系统中,验证节点将新产生区块加入链中。要成为验证人,必须在系统抵押一定额度的代币。在成为验证人期间,如果您被其他...转载 2019-08-13 14:53:12 · 322 阅读 · 0 评论 -
区块链研究实验室 | 闪电网络编码教程-花费HTLC违约补救措施
本文的目标是花费HTLC违约补救措施,这与白皮书的图13+14相对应。使用HTLC违约补救措施的19个步骤:由于重复的讲解,教程直接跳到步骤11。前11个步骤操作教程,请参考之前的文章。 多签名资金 构建C1A和C1B(No sign) 构建RD1a和RD1b C1A和C1B的交换签名 构建C2A和C2B(No sign) 构建...转载 2019-07-10 11:05:48 · 170 阅读 · 0 评论 -
区块链研究实验室 | PlasmaMVP使用javascript实现资金撤回教程
为了更好地理解我的研究,我将PlasmaMVP表示为javascript。MVP是Vbuterin最初提出的minimal viable plasma,旨在以非常简单的方式提供plasma的基本安全特性。基于此提议,OmiseGo实施了MVP,旨在将来使用Plasma。 我主要使用此实现作为参考。实际上,Plasma提案的白皮书仍然是高度概述,它还没有提到详细的实现方式。请注意,Omis...转载 2019-06-28 10:50:35 · 288 阅读 · 1 评论 -
区块链研究实验室 | 闪电网络编码教程-违约补救措施
这是第二篇解释闪电网络流程的文章。这一次,我将解释的是与白皮书图9相对应的违约补救措施。花费违规补救措施的10个步骤:由于第一篇文章应讲解前面4个骤,将不在本篇文章重新讲述。 多签名资金 构建C1a和C1b(No Sign) 构建RD1a和RD1b C1a和C1b的交换签名 建立C2a和C2b(No Sign) 构建RD2a和R...转载 2019-07-03 09:40:14 · 258 阅读 · 0 评论 -
区块链研究实验室 | 基于substrate创建Ink智能合约-part2
Ink是一种智能合约语言,专门用于基于Substrate的区块链。我们将访问minting、transfer和approval函数的实现,并解释在开发中遇到的语法。Ink建立在Rust编程语言之上,因此我们将在这里探讨一些Rust概念以及它们如何与我们的智能合约一起工作。在这篇文章继续之前,建议阅读一下上一篇文章,我们介绍了Ink,如何将它与Rust和Substrate一起安装,以及Ink语法...转载 2019-06-28 10:50:28 · 404 阅读 · 0 评论 -
区块链研究实验室| HyperLedger Fabric架构构建ERC20令牌 part I
由于其高TPS和作为区块链作为服务平台的行为,许多新创新者正在选择Hyperledger来部署他们的区块链业务。因此,在本博客中,我们将讨论使用node.js在Hyperledger中创建基于erc20的令牌链代码的方法。为何选择ERC20?ERC20是以太坊广泛测试和接受的,将其整合到Hyperledger中,可以轻松地为基于Hyperledger的任何令牌编写安全且可扩展的链码。我...转载 2019-06-21 09:43:03 · 408 阅读 · 0 评论 -
区块链研究实验室 |分片:需要多少分片数量才能足够安全?
在不影响安全性的情况下实现性能最大化之间的权衡。分片背后的概念很简单:网络验证器不需要每个事务通过一个验证器池,而是可以分为称为分片的子组,每个事务必须只通过其中一个分片。这是一个强大的思想,它允许网络根据验证器的数量进行扩展。分片将网络划分为不同的验证子组,这意味着只有一小部分必须验证每个事务,而不是大多数验证程序。但是,分片会带来新的风险。为了使网络对所有用户都安全,所有分片都...转载 2019-07-18 16:10:34 · 695 阅读 · 0 评论 -
区块链研究实验室 | 理解广义Plasma技术结构开发实战-part II
断言(Predicates)开发实战状态对象现在让我们深入了解这一切在实践中如何运作的细节。我们的Plasma链设计的构建块是“状态对象”。状态对象只是一个具有两个属性的数据:predicateAddress:控制对象的on-chain地址。parameters:描述对象的一些任意blob数据。状态对象实际上是资产-Plasma Cash中不可替代“硬币”概念的概括。就像...转载 2019-05-31 15:04:09 · 182 阅读 · 0 评论 -
区块链基本架构原理:从 “区块” 谈起
区块链是 21 世纪最具革命性的技术之一,它仍然处于不断成长的阶段,而且还有很多潜力尚未显现。 本质上,区块链只是一个分布式数据库而已。 不过,使它独一无二的是,区块链是一个公开的数据库,而不是一个私人数据库,也就是说,每个使用它的人都有一个完整或部分的副本。 只有经过其他“数据库管理员”的同意,才能向数据库中添加新的记录。 此外,也正是由于区块链,才使得加密货币和智能合约成为现实。 区块 ...转载 2018-04-07 22:47:20 · 686 阅读 · 0 评论 -
区块链研究实验室-区块链链下数据存储解决方案
随着这种区块链越来越受欢迎,越来越多的信息被存储在链中,以至于其性能受到阻碍。这就是链下存储的用武之地。 关于链存储的问题: 一旦区块链变得流行并且网络内的连接越来越多,数据传输的增加就变得不可避免。当存储在链上的数据相对较小并且请求相对较低时,网络能够轻松地处理事务(以及存储发送者细节的一些开销空间)。一旦大量数据被抛入混合中,并且请求和事务量增加,问题就开始发生。每个节点最终都...转载 2019-01-30 10:56:55 · 2152 阅读 · 0 评论