0%

UniswapDeFi中最著名的协议之一,Uniswap本质是一个自动化做市商(AMM),它舍弃了传统订单薄的撮合方式,采用流动池加恒定乘积公式算法(\(x \times y=k\))为不同加密资产提供即时报价和兑换服务。

阅读全文 »

在上一章中介绍了如何使用node-template运行substrate私链,接下来将介绍如何在substrate私链上部署并调用智能合约。在默认的node-template中只包含以下几个runtime模块: - sudo:用于由单账户执行一些需要root执行或者委托其他账户执行的函数。 - balances:处理账号与余额相关 - grandpa:用于扩展grandpa共识并且管理共识验证人 - aura:扩展了aura共识算法 - timestamp:获取与设置链上时间 - transaction-payment:用于计算交易费用的基础逻辑。

为了在node-template中部署,执行合约,需要添加一个新的runtime,在上图的FRAME pallets中有一个contract pallet可以用于部署和执行webAssembly智能合约。

阅读全文 »

上一篇简要说明了什么是substrate,在这一篇中将从实践角度近距离接触一下substrate,在本篇中我们将手动编译运行一个substrat私有节点,并且验证以下几个功能:

  • 基于substrate node-template搭建一个私有节点
  • 启动多个节点组成网络
  • 自定义出块节点
    • 生成 ed25519sr25519 密钥对
  • 自定义创世区块,创建chainspec.json文件
阅读全文 »

今天介绍一个位于以太坊上的完全分散和自治的赌场Dapps Eth Roulette

在一般的赌场里,只有一个老板经营赌场并获取所有利润。Eth Roulette允许任何人参与投资运作赌场合约,同时玩家也可以使用这个赌场合同玩轮盘赌。

阅读全文 »

使用现有的区块链做二次开发是件非常痛苦的事情,用以太坊作为二次开发来说明一下,以太坊是将所有功能全部放在一个进程中实现的,所以在使用以太坊做开发时,经常会出现牵一发而动全身的情况,比如我们想在以太坊上新增一个交易结构(投票交易),那么我们来看一下将会影响到哪些模块,首先肯定是交易模块,交易需要被打包到区块中,所以区块模块也需要跟着做修改,区块需要在本地做共识(POW证明),所以共识模块也需要做相应的修改,共识后的区块需要进行全网广播,所以p2p区块同步这块也要做相应的修改。仅仅新增一个交易,就需要做这么多的连带修改,这将给对我们的开发代码巨大的不必要的工作量。所以非常需要一个框架帮助我们开发区块链项目,就像使用spring boot开发web应用一样,开发人员只需要关注业务。

阅读全文 »

关于零知识证明是什么,也许你不一定很了解,但说到应用零知识证明技术的区块链产品,你也许并不陌生。zcash就是使用零知识证明技术的隐私币,以太坊上的混币合约也是零知识证明技术的一个应用,还有在今年比较热门的链下扩容技术zkRollup也是零知识证明技术的一个应用。这时你也许会很好奇零知识证明究竟是一个什么样的技术,为什么既可以用在隐私方面,也可以用于扩容。在接下来一个系列的文章中将为你一一介绍,从零知识证明的概念一直到零知识证明背后的密码学实现。

阅读全文 »

17年出现了一款非常火爆的Dapp应用叫加密猫,加密猫曾造成以太坊主网大规模的拥堵,造成拥堵的原因是以太坊当时的TPS只有15,这意味着以太坊每秒只能处理15笔交易,如此低的TPS严重限制了区块链应用的大规模落地,所以有人开始研究区块链扩容的问题,目的就是为了提高链上的TPS。但区块链扩容受到Vitalik提出的不可能三角的限制,不可能三角是指区块链系统设计无法同时兼顾可扩展性,去中心化和安全性,三者只能取其二。这是一个很让人失望的结论,但我们必须知道,一切事物都有自己的边界,公链不应该做所有的事情,公链应该做它该做的事情:“公链是以最高效率达成共识的工具,能够以最低成本来构建信任”。作为共识的工具,信任的引擎,公链不应该为了可扩展性放弃去中心化与安全性。那么公链的TPS这么低,该怎么使用呢?我们是否可以将大量的工作放到链下去解决,仅仅将最重要的数据提交到区块链主链上,让所有节点都能够验证这些链下的工作都是准确可靠的呢?社会的发展带来的是更精细化的分工,区块链的技术发展也是如此,在底层区块链(Layer1)上构建一个扩展层(Layer2),Layer1来保证安全和去中心化,绝对可靠、可信;它能做到全球共识,并作为“加密法院”,通过智能合约设计的规则进行仲裁,以经济激励的形式将信任传递到Layer2 上,而Layer2追求极致的性能,它只能做到局部共识,但是能够满足各类商业场景的需求。

阅读全文 »

你也许听说过比特币,2009年一个叫中本聪(satoshi nakamoto)的神秘人物或组织将比特币推向了世界,随着比特币的流行,加密货币,区块链这些词汇也渐渐的走进了大众的视野中,如果你已经非常熟悉加密货币世界,那么你可能听说过以太坊,它是全球第二大加密货币,即使你听说过以太坊,那么在解释它与比特币区别时,你也可能会感到困惑。

阅读全文 »

上一篇我们梳理了一下混币的基本原理,在这一篇中我们开始动手实现一个混币。

混币中最主要的数据结构就是Merkle tree,现在还是借助功德箱来分析如何利用Merkle tree来实现混币功能的。

阅读全文 »

零知识证明很多人听过,但不明白它是干什么的?其实零知识证明可以用一句话来概括:“证明者(Alice)在不透露秘密的情况下,说服验证者(Bob)相信证明者(Alice)知道这个秘密”。为了更直观解释,接下来会用混币的例子来说明。

阅读全文 »