• 全部
  • 比特币地址
  • 比特币钱包
  • 比特币协议
  • 比特币客户端
  • 比特币域名
  • 私钥
  • 公钥
  • 交易费
  • 消息签名
  • 多重签名
  • 双重支付
  • 匿名性
  • 混币
  • 备份
  • 冷存储
  • 纸钱包
  • 脑钱包
  • 虚荣地址
  • 中本聪
  • 去中心化
  • Bitcoin-Core
  • bitcoind
  • Multibit
  • Electrum
  • Armory
  • Merkle-Tree
  • P2SH
  • Wallet-dat
  • OP_RETURN
  • 矿池
  • 联合挖矿
  • 哈希
  • 算力
  • 难度
  • ASIC
  • FPGA
  • SHA256
  • SCRYPT
  • SCRIPT
  • P2Pool
  • 货币
  • 通货膨胀
  • 奥派经济学
  • 弗里德曼
  • 哈耶克
  • 莱特币
  • 点点币
  • 以太坊
  • 瑞波币
  • 域名币
  • 狗狗币
  • 彩色币
  • 区块
  • 区块体积
  • 区块浏览
  • 孤块
  • 分叉
  • 侧链
  • 闪电网络
  • POW
  • PoS
  • Testnet
  • 加密
  • Linux
  • Ubuntu
  • Windows
  • iOS
  • Android
  • ECDSA
  • python
  • Java
  • GPU
  • CPU

截止目前,链节点大牛们一共热心回答了 1,021 个问题

写下了 550,725 个字,相当于 0 本《区块链:从数字货币到信用社会》

  • 最新发布
  • 热门点击
  • 所有状态
  • 无回答
  • 未解决
  • 已解决
  • 默认
  • 降序

吴超人会飞于2020-08-07 14:37提问

Curve是什么 20 回答1 收藏0

青灯有味 2020-08-07 16:54:43 回答

Curve 是基于以太坊的去中心化稳定币交易池,其特点在于高效而低滑点的稳定币交易体验,以及为做市商提供低风险的手续费收入。优点稳定币种类越来越繁多,高效兑换问题是一个痛点平台设计简洁易懂,不涉及复杂的算法机制提供的费率相比其它平台均有优势 缺点并非用户入口,更适合集成在其它产品中有各种潜在流动性问题,系统性风险较大团队只有一人,难以继续扩张行业(8/10)自从 Bitfinex 推出第一款稳定币 Tether 以来,稳定币行业一直在迅速发展,不断涌现新的产品。目前市场上较主流的稳定币除了 Tether,还有 USDC、DAI、HUSD 等,且这些新晋稳定币的市场份额也不断在扩大,由此催生出了稳定币之间进行兑换的庞大需求。稳定币由于其发行机制及市场供求等因素,导致其币值往往在 1 美元上下波动,因此相对于其它加密货币,稳定币之间兑换因此也有更多通过自动做市系统 (AMM) 优化汇率的空间。目前以太坊上最成功的 AMM 去中心化交易池是 Uniswap,支持所有 ERC20 交易对,而实际应用中目前绝大多数活跃 Uniswap 交易对都是 ETH 与 ERC20 交易对,极少有双 ERC20 交易对。Curve 是针对稳定币设计的去中心化交易池,与 Uniswap 相比能够利用稳定币交易对中值回归的属性,可以在交易量较小的情况下实现更好的流动性与滑点。模式 (8 /10)Curve 里有流动性提供者和交易者两类参与者。流动性提供者抵押代币进储备金池赚取利息,而交易者通过协议在稳定币对之间兑换并支付手续费。目前 Curve 共有四个资金池,分别是 Compound、USDT、yToken 以及 BUSD。其中储备金最充足的是 yToken,占了 Curve 总储备金的 80%,其利率也是所有池子里最高的。 Curve 目前多种去中心化托管的钱包,包括 fortmatic, authereum 等等,在新近上线的测试版中加入了 metamask、trezor 等主流钱包的支持。在测试版中,Curve 还内置了池子间流动性聚合的功能,用户可以同时点选使用多个池子进行兑换。作为流动性提供者,为 Curve 提供流动性需要购买 cToken 或者 yToken,分别是 Compound 及 iearn.finance 借贷协议推出的带利息稳定币代币。这些代币本身在各自协议都是通过抵押稳定币资产借贷而产生利息收入的,因此 Curve 上的流动性提供者不仅可以获得在 Curve 的池子里交易产生的手续费收入,也可以通过持有这些代币本身获得原协议池提供的利息收入。由于 iearn.finance 的年化收益本身远远高于其它 DeFi 借贷池,再加上 Curve 提供的额外收益,总和收益率可以达到其它协议的十倍以上。为了方便用户组合使用 yToken 和 Curve,iearn.finance 推出了 zap 功能,将两部操作合并成了一步。作为交易者,相比 Uniswap 0.3% 左右的交易手续费,Curve 的手续费只有 0.04% 左右,因此 Curve 尽管还在测试阶段,已经收获大量资金交易。Curve 中稳定币兑换的汇率经测试,在数额很小的情况下接近市场利率,随着数额增大逐渐趋向 1:1,一旦数额超过目的币储备池大小汇率会异常扭曲。为了防止这种情况发生造成不必要的损失,用户可以点选最大的滑点百分比。技术 (7.5/10)Curve 没有撰写任何文档,因此对其设计的评估来源于《深度解读热门 DeFi 项目 Curve:它为什么重要?为何被「攻击」?》一文。Curve 的核心设计是「稳定币互换曲线」,这个曲线相对与 Uniswap 的互换曲线在 1:1 附近区间让滑点更平缓。因此,Curve 在小额交易上比中心化交易所的费率还低。可惜,世界上没有免费午餐,在人为降低滑点的同时,Curve 同时引进了更多的风险。一旦兑换的金额接近储备金池子的大小,引起的「极限」滑点往往比 Uniswap 要放大许多。这些风险在 Curve 上发生的流动性不足造成用户损失数十万美元一事中充分地暴露出来。经过此事,Curve 加入了滑点保护的功能,让用户在下单时自主选择可以接受的最大汇兑滑点。此外,Curve 还有其它可能的风险尚未暴露。一方面,cToken 或者 yToken 本身对其原生代币的汇率是不稳定的,带来一部分额外的汇兑风险。Curve 在借用这些利息池流动性的同时,也嵌套了额外一层资产逻辑,使得潜在风险更加隐蔽。Curve 协议的 AMM 依赖的储备金可能会瞬间清零,造成流动性枯竭。事实上,iearn.finance 数倍于其它借贷平台的收益率目前是没有合理解释的,因此这种黑天鹅事件发生的可能性并不小。目前 Curve 在 github 上有 7 个 repo,其中主要 repo curve-contract 拥有 249 次 commits,有 1 名贡献者,属于比较早期的项目。社区生态 (7.5/10)目前 , Curve 在 Twitter 上有 2813 个粉丝,Telegram 社群有 635 个成员。对于一个还在测试运行阶段的 DeFi 项目来说 , 这样的数据还算可以。Curve 的稳定币池锁定的储备金有 800 多万美元,在 DeFi 资金池里已经跟 Uniswap 的前几名交易对池子容量旗鼓相当,是比较亮眼的数据。团队 (7/10)Curve 目前只有一名贡献者,是 Nucypher 的 CTO Michael Egorov。根据 Linkedin 介绍,他本科毕业于莫斯科物理与科技国立大学 应用数学与物理专业,博士毕业于澳洲 Swinburne 科技大学物理专业。创业之前曾在多家创业公司及 Linkedin 任职。iearn 项目的 Andre Cronje 也参与了 Curve 的产品规划和外部沟通,但是经历了流动性损失事件之后 Andre Cronje 已经离开 iearn 项目,并且公开表示对 DeFi 社区的失望。因此今后 Curve 很大可能性处于单枪匹马的状态,难以有较大的发展。融资 (6/10)目前尚未有关于 Curve 的公开融资信息。总结 (7.4/10)Curve 作为新晋的 DeFi 稳定币交易池项目,试图利用稳定币的特性实现比 Uniswap 更好的费率和交易体验。借助 DeFi 在开发者社区中的热度以及与 iearn.finance 结合实现的高额的做市商利息回报,Curve 在测试阶段就收获了大量交易量和储备资金。然而其在优化费率的同时,引入了新的流动性风险,如果汇兑金额超过储备池大小会造成巨额损失,前不久在造成客户损失后引起了社区的争议。目前其团队仅有一人,较难继续维持项目的持续增长。作者:EVALUAPE

吴超人会飞于2020-08-07 14:04提问

Airswap是什么 20 回答1 收藏0

青灯有味 2020-08-07 15:08:50 回答

Airwap,一个基于以太坊区块链的去中心化交易平台,由迈克尔 奥维德(Michael Oved)及其团队创立,他曾在纳斯达克上市金融公司Virtu Financial工作。Airswap平台是基于Swap协议白皮书的去中心化代币交易平台。Swap协议提供基于点对点交易的去中心化交易解决方案。Airswap核心服务包括一个可搜索的具有 交易意图 的交易者索引机制和一个定价机制,及提供链上执行交易结算功能的智能合约。对于那些希望交易ERC20代币的用户,索引将成为您想要交易的广告的目的地,并可以搜索其他交易者。一旦发现对方的交易意图合适,交易双方可以直接点对点沟通。为了协助沟通中的定价过程,定价机制提供了从多个数据源生成的定价建议。待交易双方沟通并确定价格后,一方下订单,另一方将该订单提交到智能合约进行链上结算。

吴超人会飞于2020-08-07 13:01提问

Solidity常见的安全问题 20 回答1 收藏0

青灯有味 2020-08-07 15:06:59 回答

1. 未检查的外部调用在 2018 年 Solidity 十大安全问题榜单上未检查的外部调用是第三个常见问题。由于现在前两个解决了, 因此未检查的外部调用成为了 2020 年更新列表中最常见的问题。Solidity 底层调用方法,(例如 address.call()) 不会抛出异常。而是在遇到错误,返回 false。而如果使用合约调用 ExternalContract.doSomething() 时,如果 doSomething() 抛出异常,则异常会继续“冒泡”传播。应该通过检查返回值来显式处理不成功的情况,以下使用 addr.send() 进行以太币转账是一个很好的例子,这对于其他外部调用也有效。if(!addr.send(1)) { revert()}2. 高成本循环高成本循环从 Solidity 安全榜单的第四名上升至第二名。受该问题影响的智能合约数量增长了近 30%。大家都知道,以太坊上的运算是需要付费的。因此,减少完成操作所需的计算,不仅仅是优化问题(效率),还涉及到成本费用。循环是一个昂贵的操作,这里有一个很好的例子:数组中包含的元素越多,就需要更多迭代才能完成循环。最终,无限循环会耗尽所有可用 GAS。for(uint256 i=0; i= 0; i--) { ans += i;}在上面的示例中,当 i 的值为 0 时,下一个值为 2^256 -1,这使条件始终为 true。 开发人员应当尽量使用 、!= 和 == 进行比较。7. 不安全的类型推导该问题在 Solidity 十大安全问题排行榜中上升了两位,现在影响到的智能合约比之前多了 17%以上。Solidity 支持类型推导,但有一些奇怪的表现。例如,字面量 0 会被推断为 byte 类型, 而不是通常期望的整型。在下面的示例中,i 的类型被推断为 uint8,因为这时能够存储 i 的值 uint8 就足够。但如果 elements 数组包含 256 个以上的元素,则下面的代码就会发生溢出:for (var i = 0; i 、= 和 

吴超人会飞于2020-08-07 11:15提问

Truffle以太坊合约部署教程 20 回答1 收藏0

青灯有味 2020-08-07 15:39:28 回答

概述truffle 是世界级的以太坊开发框架内置智能合约编译、连接、开发和二进制管理快速开发的自动化合约测试脚本、可扩展性部署和迁移框架用于部署到任意数量的公网和私网的网络管理为合约通信提供交互式控制台创建项目truffle init目录结构contracts: 存放合约migrations: 存放部署脚本test: 测试文件truffle-config.js: 配置文件,配置不同网络创建合约pragma solidity ^0.4.24;contract SimpleStorage{ uint storedData; function set(uint x) public{ storedData =x; } function get() public view returns (uint){ return storedData; }}编译合约生成 build/contract 编译文件truffle compile执行编译之后,会生成 build 文件夹,里面会有 abi、bytecode、network部署脚本const SimpleStorage = artifacts.require("SimpleStorage");module.exports = function(deployer) { deployer.deploy(SimpleStorage);};部署网络 //你所要部署的网络的名字 ganacheNet: { host: "127.0.0.1", // Localhost (default: none) port: 7545, // Standard Ethereum port (default: none) network_id: "*", // Any network (default: none) },结果展示truffle migrate --network ganacheNet此时交易已经产生到ganache通过 remix 测试at address 用 ganache 里面的 create addressGit 地址https://github.com/potaxie/truffle-init作者:potaxie

吴超人会飞于2020-08-07 10:44提问

POC挖矿是什么 20 回答1 收藏0

青灯有味 2020-08-07 15:16:53 回答

PoC(Proof of Capacity,容量证明)是一种允许挖矿设备利用闲置硬盘空间来参与挖矿的共识机制,与 PoW 的算力挖矿和 PoS 的质押代币挖矿方式相比,PoC 挖矿的优势在于门槛低,能耗少。 只用硬盘和网线的 PoC 共识理论上,任何人都可以参与比特币挖矿,但随着算力越来越高,个体出块的可能性已经近乎为 0,自 2010 年底开始运作以来,矿池模式已经成为了独立矿工共享计算资源和增加发现区块机会的手段。散户想要参加比特币挖矿,只能购买专业的矿机和加入矿池,而以硬盘存储为核心的 PoC 挖矿,只要使用普通电脑的闲置硬盘,就可以参与挖矿,这也让采用 PoC 共识机制的区块链,拥有了比 PoW 更显著的优点:更公平和去中心化。「只要有硬盘和宽带,在家里就能进行挖矿。」随着流媒体日益盛行,云存储的应用场景也越来越广泛,用户早已不再为下载的东西占用内存过大而担心,因为如今已经可以直接在线观看视频或进行其他操作,硬盘大小不再成为大家的烦恼。在这样的背景下,用户电脑闲置的硬盘空间,就成为了 PoC 的网络中的潜在算力。根据比特币哈希算力分布图,我们可以知道,目前四大比特币矿池(BTC.com、Poolin、F2Pool 和 AntPool)占了近 60% 的算力,个体的力量根本无法撼动。而由于 PoC 共识机制,核心并不是算力,而是硬盘存储能力,即便数家公司搭建矿池,组建矿池,也根本无法与全球范围所有潜在的硬盘存储空间抗衡。根据 PCWorld 数据预测,预计到 2020 年,全世界的数据总量将达到 40ZB,即 40 万亿 GB,全球人均 5.2TB,可以说是相当的去中心化。这个世界的硬盘分布远比矿机的分布要去中心化得多,如果 PoC 区块链的生态足够成熟,完全可以避免出现矿霸控制整条链的情况,真正实现去中心化。此外,由于硬盘分布于全球,一旦 PoC 生态搭建起来,有天然的防 51% 算力攻击的属性。而相对于 PoW 挖矿所需的动辄数百 W 或者上千 W 能耗的 ASIC 矿机,以及迭代迅速的矿机,比特币挖矿也由此被外界诟病资源浪费。根据剑桥大学的数据统计,每年用于挖比特币的能源消耗已经接近 2016 年比利时和芬兰两个国家的全年电力消耗水平,而且这一数字还在持续增加。但能源浪费的问题在 PoC 挖矿中并不会出现。因为即便使用电脑闲置硬盘挖矿,消耗的也只是一台普通电脑的耗电量,能耗非常小,资源浪费和影响居民用电也就无从谈起。在 PoW 挖矿中,不同哈希算法的币种适配于不同种类的矿机,与此相比 PoC 挖矿更具有通用性,对于整个区块链网络来说也更具有安全性。如今,诞生已 10 年的比特币,也饱受着算力中心化的质疑,而采用 PoC 共识机制的区块链,确实能改善单一机构或个体在整个网络中的控制权,从而达到更好的公平和去中心化。除了上面提到的 BurstCoin 之外,还有其他几个项目也在采用 PoC 算法或者 PoC 衍生算法,利用硬盘空间进行挖矿,包括 BHD、MASS 等。PoC真的很稳吗?PoW 的算力大多同时挖同一币种,大多需要算力在一条主网上运算完哈希以后,才能切到另一条主网,除非是 2 年前的以太坊上双挖这种情况。相反,得益于 PoC 通用性特点,有的 PoC 币种反而可以多挖,因为数据结构相同,共用证明空间而可以多挖。但与此同时,多挖也意味着社区和共识的分散,稀缺性从来不仅指供应量,还有获取方法的稀缺程度。在极致的多挖环境下,矿工也许只需要对比收益多寡,无需关心项目进展。最终这些多挖的项目也会被市场化选择,水能载舟亦能覆舟。以现在共识最强的 BTC 为例,如果有非常多种类的算法都被 BTC 矿机所支持,BTC 的产出也变得不那么稀有。此外,虽然与 PoW 相比,采用 PoC 挖矿所需要的耗电量已经非常小,但相对抵押代币挖矿的 PoS 项目来说,还是需要消耗一定的电能资源。找到一个让所有节点能在无中心组织状态下相互信任的完美机制,是所有公链的目标,而这场关于共识机制的探索,从 2008 年开始,至今仍未停止。从最早的 PoW 到 PoS,再到去年大火的 DPoS,新的共识机制概念不断被提出,又不断被开发者实践。而在所有的共识机制中,PoC 以其追求极致去中心化、简易挖矿的方式,正在被更多人认知,也在被更多的人参与和实践。 

吴超人会飞于2020-08-07 10:32提问

区块链不能做什么 20 回答1 收藏0

青灯有味 2020-08-07 16:09:20 回答

目前真正落地并产生社会效益的区块链项目很少,除了区块链物理性能不高以外,区块链经济功能的短板也是重要原因。应在持续研究和试验的基础上,理性客观评估区块链不能做什么。一是不要夸大或迷信区块链的功能。这些年的行业实践已经证明一些区块链应用方向是不可行的。特别是,现代金融体系在发展过程中不断吸收各种技术创新。技术创新只要有助于提高金融资源配置效率以及金融交易的安全性、便利性,就会融入金融体系。迄今为止,还没有一项技术创新对金融体系产生过颠覆性影响,区块链也不会例外。加密货币供给没有灵活性,缺乏内在价值支撑和主权信用担保,无法有效履行货币职能,不可能颠覆或取代法定货币。区块链的匿名特征反而会增加金融交易中反洗钱(AML)和“了解你的客户”(KYC)的实施难度。但也要看到,我国的一些国情提供了实践区块链的机会,比如数字票据交易平台有助于缓解我国票据市场分散化的问题。二是区块链应用要立足实际情况,不要拘泥于一些过于理想化的宗旨。比如,用科技来替代制度和信任是非常困难的,在很多场景甚至就是乌托邦。再比如,去中心化与中心化各有适用场景,不存在优劣之分。现实中完全的去中心化和完全的中心化场景都不多见。很多区块链项目从去中心化宗旨出发,但后期或多或少引入了中心化成分,否则就没法落地。比如,区块链外信息写入区块链内,往往需要一个可信任的中心化机构,完全的去中心化是不可能的。三是目前区块链投融资领域泡沫明显,投机炒作、市场操纵甚至违规违法等行为普遍,特别是涉及公开发行交易的 Token 的项目。政府有关部门应加强监管,防范金融风险。作者:人民银行研究局局长徐忠

吴超人会飞于2020-08-06 15:44提问

什么叫区块链完整的解释是什么 20 回答2 收藏0

青灯有味 2020-08-06 16:17:00 回答

要回答“什么是区块链?”这个问题,首先需要定义账本。在会计中,账本是计算机文件或一本书,你可以从中找到完整的公司财务记录。使用这些记录,会计人员可以编制公司的财务报表。账本记录了有关负债、资产、费用、收入和所有者权益的财务信息。通过以上信息可以看出,区块链是一个公共 / 分布式账本,这意味着,它所包含的记录无需中央实体,可进行自动验证。因此,在没有其他人参与的情况下,很容易发现你的那份账本是否被篡改了。本质上使区块链成为了每个人都可以验证的公共账本。对区块链的简单解释应该包括,区块链是一个实时的公共账本,记录了所有可以记录的东西,包括合同、金融交易、供应链信息、实物资产等。区块链技术背后的一个主要思想是,没有一个组织或个人负责保管这个账本。相反,账本是开放的,链中的每个人都可以查看每条记录和每个细节,每条记录即为一个块。那么,区块链是什么意思呢?它又是如何运作的呢?可以将区块链视为由块组成的长记录链(财务交易或其他),每个块都是长记录链上的一条记录,并且块都经过加密和盖上时间戳。每个块的“所有者”是唯一可以编辑该块的人。每个所有者都有一个私匙,使用私钥可以访问自己的块。区块链内块的更改会同步给其他块,更改的信息也会实时分布到区块链的其余部分。关于区块链需要知道的 10 件重要事情1. 比特币可以说是区块链的先驱,自 2010 年作为货币交换系统首次亮相以来,比特币每年都以超过 100% 的速度在增长。2. 全世界 50% 的人口在使用互联网,但只有 0.5% 的人口使用了区块链技术。3. 区块链仍处于早期阶段,此刻就如同 20 年前的 web 一样。4. 区块链可以是私有的,也可以是公共的(比如互联网和内部网)。5. 到 2024 年,全球区块链市场规模预计将达到 200 亿美元左右。6. 区块链的透明性是该技术的主要特点,任何具有区块链访问权限的人都可以查看完整的链。7. 你可以将区块链看作是与其他用户共享的谷歌文档,对该文档所做的任何更改都可以被实时访问该文档的每个人看到。账本一直在更新,每个参与者都有自己的账本副本。8. 90% 了解区块链的工作原理和使用方法的人都认为区块链肯定会扰乱金融和银行业的运作。据现有估计,如果银行业务中使用区块链技术,则每年可以节省 120 亿美元。9. 大型跨国公司正在大力投资区块链技术,与该技术相关的项目平均投资额为 100 万美元。仅 IBM 就雇佣了大约 1000 名员工进行区块链相关项目,并为这些项目投入了 2 亿美元。10. 随着区块链的兴起,将提供新的岗位和就业机会。区块链技术的工作原理?每当区块链中有新交易时,首先是先对交易进行加密,再将其添加到一组新交易中,形成一个块。此块通过区块链内的整个计算机网络进行广播。交易验证在每个节点内进行,可以将已验证的交易组记录添加到账本底部每个人的计算机中,从而进一步延长了该记录链。在过去十年左右的时间里,人们写了很多书来解释区块链技术的工作原理。在所有“区块链技术通俗化解释”的书籍中,一个反复出现的主题是,当区块链技术用于促进金融交易时,它会淘汰银行和信用卡公司等金融机构。这就提出了一个问题:区块链技术如何能够消除这些第三方,并在每笔交易的完整性上保持信任?所有权控制和防止双花问题它通过提供强有力的所有权控制和防止双花问题来实现这一点。为了提供强大的所有权控制,区块链技术使用数字签名。与 pdf 文件签署和安全电子邮件中使用的方法类似,数字签名被认为是安全和可靠的。区块链用户创建了两个不同的加密密钥,一个密钥保持私密性,另一个保持公开。他使用私钥来签署交易。公众使用第二个密钥来验证这个交易。在防止双花问题方面,区块链技术使得用户不可能多次支出同一笔数字现金。为此,它使得在区块链内发生的每笔交易都是不可逆的。每一笔新交易记录都与以前的交易记录联系在一起。这是用复杂的数学计算来完成的,难以重复,但很容易验证。一旦有一个新的交易添加到区块链,要取消交易就需要更改大量的交易记录,这从根本上使该交易成为永久不可变的交易。随着账本上的交易越来越多,几乎可以肯定地说要改变旧的交易是不可能的。作者 | Solomon Ndungu来源 | Medium翻译 | 头等仓(First.vip)

吴超人会飞于2020-08-06 13:59提问

区块链开发教程 20 回答1 收藏0

青灯有味 2020-08-06 14:22:24 回答

BlockGeeks 深入指南在本指南中,我们将向你讲解如何成为一名区块链开发者。为了便于理解,我们将此指南划分为不同的部分,并在每一部分结尾提供具体的操作步骤。我们现在正处于“区块链时代”,区块链对我们的未来有着巨大的影响。那么,你应该如何加入“区块链大潮”呢?如果你想成为一名区块链开发者,那么有几个小目标你必须达成。希望在阅读完本指南后,你可以掌握开始区块链开发的必要技能。如果你真的想成为一名区块链开发者,我们希望你能够达到以下目标。第一,时间,你必须投入足够的时间和精力用于学习。第二,不要急于求成,成为区块链开发者并不是一念之间。说到这里,让我们开始吧!如何成为一名区块链开发者:速成课!小目标 #1:基础知识区块链技术作为一种全新的革命性的技术,要想初步入门,最大的障碍就是熟悉系统中各种各样的概念。如果你是一名初学者,那么你必须熟悉以下几种名词的具体含义:区块链:区块链是一条由区块链接而成的数据链,在区块中包含具体数据,并且整个系统没有中心化监管。区块链具有加密安全、不可篡改的特点。去中心化:区块链具有去中心化的特性,是因为其中没有中心化权威监管机构。共识机制:在去中心化网络就某些具体问题(事务)上达成共识的机制。矿工:使用计算能力挖区块的用户。你最好多了解一些加密领域中广泛使用的术语。此外,强烈建议你阅读学习我们的综合词汇表,学习掌握这些基本术语是十分必要的,否则你可能在具体学习过程中错失较多信息且较难理解。那么,接下来,是时候学习更多区块链技术方面的内容了。如果你对如何在区块链上搭建“金融技术”应用方面的技术内容感兴趣,那么你绝对应该比较详细了解加密经济学的来龙去脉。大多数开发人员通常精通“加密”的相关知识,但对于“经济学”的理解却非常匮乏。当你阅读研究现在网络中某些众筹时就会发现,这种知识储备的差异是非常明显的。很明显,他们的ICO文件在经济方面的规划明显不足。因此,鉴于此,为了更好地学习,需要多学习一些经济学的知识并有一个大致的概念。如果你想大致了解加密经济学,可以阅读我们的一些文章。如果你对密码学特别感兴趣,并且想了解数字签名如何工作,以及公钥加密的含义等内容,那么可以阅读相关文章。此外,我们强烈建议你了解比特币的工作原理。比特币是目前区块链技术最广泛、最优秀的应用之一,鉴于其广泛的影响力,甚至都可以称比特币为区块链技术之所以能够成功问世的最好的实例。因此,我们建议你阅读中本聪写的比特币白皮书。你可以通过此链接获取。现在第一个目标就完成了。让我们检查一下到目前为止你需要完成的步骤:熟悉各种术语和词汇。阅读更多关于区块链技术方面的内容。阅读比特币白皮书。小目标 #2:了解整个过程是如何工作的让人惊讶的是,有许多萌新“开发者”并根本没有真正使用过加密数字货币。当没有真正的使用经验的时候,又怎么可能在一个平台上进行创新和改进呢?强烈建议你从今天起逐步熟悉区块链系统,“真正”熟悉。去三大交易所或者其他你熟悉并且在你的国家允许开设的交易所买一些币。你不需要确定一个具体的投资方案,只需要购买少量的币并且观察系统整个过程是如何工作的。整个过程非常简单明了。既然你不计划购买大量的加密数字货币,那么我们仅使用一个基本的网上钱包即可。这些网上钱包使用起来非常方便。钱包的创建也非常简单,因为它基本上是在任意交易所服务上创建你自己的账户。此外,只要可以连接到网络,你便可以在世界上任意服务器或设备访问这个钱包。不过话虽如此,对于网上线包来说仍有一个较大的问题。你的私钥将被保存在另一台服务器上,这就像把家钥匙放在硬盘里交给黑客一样。因此,不要使用网上钱包存储大量钱,只需要存储你需要用于完成交易的最低限额即可。当你需要创建一个投资组合时,就必须学会如何使用冷钱包保存你的资产。你可以在这里学习怎么做。之后,如果你要创建你自己的 ICO,你必须清楚钱包是如何工作的,特别是多重签名钱包是如何工作的。这一部分我们就讲到这里,困难的部分将从下一个小目标开始。到目前为止你需要完成的步骤如下:了解交易所是如何工作的。熟悉钱包(网上线包、冷钱包、多重签名钱包等)是如何工作的。小目标 #3:让我们开始写码吧!作为一名区块链开发者,你将在后端面对大量的挑战。由于许多原因,创建并维护一条公链并不容易。(在我们继续之前,让我们先看一下 David Schwartz 在 CPPCON 2016 上发表的主题演讲:使用 C++ 进行区块链软件开发。)(这里有个油管视频链接:https://youtu.be/w4jq4frE5v4)理由 #1:安全正如 David Schwartz所说,区块链系统应该是一座堡垒。首先,(区块链的)代码是完全开源的。任何人都可以查看源代码,并且寻找代码中的 Bug 和缺陷。然而,与其他开源项目不同的是,在区块链代码中发现漏洞的代价是巨大的。任何(发现漏洞的)程序员都可以通过这个漏洞攻击,并获得数百万美元的收益。处于以上合理的安全性考虑,区块链的开发往往非常缓慢。理由 #2:资源管理与网络保持同步是非常重要的。你(的开发进度)不能落后全网需求太多。你的系统应该能够很好地处理远程和本地请求。理由 #3:性能区块链系统必须始终保持其最高的数据处理能力,但为了做到这一点,编程语言的选择必须是非常通用的,以满足并行化、高吞吐量等需求。然而,在区块链中有一些任务是可以并行执行的,但有些任务则不能并行执行。一个很好的“并行化”任务的例子就是数字签名验证。验证数字签名所需的所有内容即密钥、交易和签名。只要有这三种数据,你就可以以并行的方式进行验签。然而,并不是所有的区块链函数(模块)都可以这么做。设想一下交易执行本身,多个交易并不能够并行执行;它需要一次处理一笔交易,以避免类似于双花等错误。有些编程语言擅长进行并行化操作,但有些则不太擅长。理由 #4:隔离什么是确定性行为?如果 A + B = C,那么无论什么情况下,A + B 永远等于 C。这就叫做确定性行为。Hash 函数是确定性的,意味着 A 的哈希值永远是 H(A)。因此,在区块链的开发中,所有交易的执行必须是确定性的。(区块链系统中的)同一笔交易不能在不同时刻的执行结果不同。相似的,智能合约不能在不同的机器上执行结果不相同。唯一的解决方法就是隔离。简单来讲,就是将区块链系统中智能合约和交易,与非确定因素隔离开来。有一些编程语言可以满足大部分需求。如果你是一名区块链开发者,那么你绝对需要一些 C++ 和 JavaScript 的基础知识。虽然 C++ 看起来有点过时,但事实是它能够很好地满足我们以上描述的所有需求。实际上,中本聪就是使用 C++ 来编写的比特币源码。(JavaScript) 与 HTML 、CSS 一起是万维网内容生产的三大核心技术之一。JavaScript 通常用于创建高交互的Web页面。因此,现在我们讲讲述如何使用 JavaScript 语言编写一个简单的区块链系统。以下内容来自 savjee.be 。我们如何创造一个区块?一个简单的区块由什么组成?在我们将要编写简单的加密币(让我们称之为 “BlockGeeks 币”),每个区块中将由以下几部分信息组成:Index (索引):标识区块编号Timestamp (时间戳):标识区块产生时间Data (数据):区块中包含的数据Previous Hash (前一区块Hash值):前一区块 Hash 值。Hash (哈希值):当前区块的Hash值。在我们继续讲解之前。你需要理解我们将要在项目中使用的以下术语:This:在函数中调用 “This” 关键字,你就能够通过 this 关键字访问当前对象的函数或属性,从而获取其取值。Constructor(构造函数):构造函数是一个特定用于在类中创建并初始化类对象的函数。每个类都仅能拥有一个构造函数。那么现在,我们开始创建我们的区块。创建 Block 类const SHA256 = require("crypto-js/sha256"); class Block { constructor(index, timestamp, data, previousHash = '') { this.index = index; this.previousHash = previousHash; this.timestamp = timestamp; this.data = data; this.hash = this.calculateHash(); } calculateHash() { return SHA256(this.index + this.previousHash + this.timestamp + JSON.stringify(this.data)).toString(); } }Code Analysis好的,这就是一个区块的定义。在代码的第一行,我们调用 crypto-js 库,因为在 JavaScript 中没有 sha256 的哈希函数。接下来,我们调用类中的构造函数,在创建拥有具体数值的对象时调用。你也许已经注意到了 calculateHash() 函数。下面让我们来看看它是如何工作的。在一个区块中,我们获取所有属性的数值,通过哈希函数获取它们的哈希值作为该区块的哈希值。我们使用 JSON.stringify 函数将区块的数据转换成字符串后,与区块中其它数据一同求哈希值。很好,到目前为止我们已经准备好一个区块,可以继续了。现在让我们把区块连接起来组成一条区块链。创建一条区块链:成为一名区块链开发者class Blockchain{//Section 1 Genesis block creation constructor() { this.chain = [this.createGenesisBlock()]; } createGenesisBlock() { return new Block(0, "01/01/2017", "Genesis block", "0"); } //section 2 adding new blocksgetLatestBlock() { return this.chain[this.chain.length - 1]; } addBlock(newBlock) { newBlock.previousHash = this.getLatestBlock().hash; newBlock.hash = newBlock.calculateHash(); this.chain.push(newBlock); } //section 3 validating the chainisChainValid() { for (let i = 1; i < this.chain.length; i++){ const currentBlock = this.chain; const previousBlock = this.chain[i - 1]; if (currentBlock.hash !== currentBlock.calculateHash()) { return false; } if (currentBlock.previousHash !== previousBlock.hash) { return false; } } return true; } }代码分析在 Blockchain 类的定义中拥有太多内容,让我们分成几部分来分析。第 1 部分:创世块什么是创世块?创世块就是区块链中第一个区块,它之所以特殊的原因就是区块链中每一个区块都应该通过哈希值指向前一区块,但创世区块并不指向任何区块。因此,一条新链创建之时创世区块就立刻被创建了。此外,你注意观察 “createGenesisBlock()” 函数,我们是手动给创世块赋值的:createGenesisBlock() { return new Block(0, "01/01/2017", "Genesis block", "0"); } 第 2 部分:添加区块首先,我们需要获取当前区块链中最新的区块是哪一个。为此我们通过 getLatestBlock() 函数获取区块链中最新区块。getLatestBlock() { return this.chain[this.chain.length - 1]; } Now that we have determined the latest block, let’s see how we are going to add new blocks.现在我们已经获取到了最新区块,让我们看看如何将新区快添加到区块链中。addBlock(newBlock) { newBlock.previousHash = this.getLatestBlock().hash; newBlock.hash = newBlock.calculateHash(); this.chain.push(newBlock); } 那么,到目前为止发生了什么?我们如何添加新区快?我们应该如何检查所给区块是否合理?还记得区块中包含的内容么?每个区块不是有前一个区块的哈希值么?那么我们检查区块链中区块数据的合法性就容易的多了。通过比较当前区块中Previous Hash字段的数值与前一区块的哈希值,就可以判断区块是否合法了。图片来源:Lauri Hartikka 在 Medium 上发表的文章如果以上两个哈希值相等,那么意味着新区快是合法的,并且可以被添加到区块链中。第 3 部分:验证链现在,我们需要检查是不是没有人干扰我们的区块链,并检查是不是一切都很稳定。我们使用 “for” 循环遍历从区块 1 到最新区块。创世区块是区块 0。for (let i = 1; i < this.chain.length; i++){ const currentBlock = this.chain; const previousBlock = this.chain[i - 1]; In this part of the code we are defining two terms, current block and previous block. And now we are simply going to find the hash of these two values.在这部分代码中我们定义了两个变量,currentBlock 和 previousBlock。现在我们仅需要获取这两个区块的哈希值(就可以验证区块的合法性)if (currentBlock.hash !== currentBlock.calculateHash()) { return false; } if (currentBlock.previousHash !== previousBlock.hash) { return false; } } return true; }如果当前区块的 “previousHash” 字段与前一区块的哈希值不相等,那么该函数会返回 false,否则会返回 true。使用 Blockchian 类,创建区块链实例。现在,我们将使用 Blockchain 类创建我们的 BlockGeeksCoin。let BlockGeeksCoin = new Blockchain(); BlockGeeksCoin.addBlock(new Block(1, "20/07/2017", { amount: 4 })); BlockGeeksCoin.addBlock(new Block(2, "20/07/2017", { amount: 8 })); 就是这样!那么现在发生了什么?我们基于 Blockchian 类创建了一种新的加密数字货币,并且命名它为 BlockGeeksCoin。通过调用这个新对象,我激活了(Blockchian 类的)构造函数,从而自动创建了创世区块。我们简单地添加了两个区块在区块链中,这两个区块的数据是随机给的。是的!就是这么简单!(非常感谢 savjee.be 提供的神奇而简单的解释。)第三个小目标达成!让我们看一看具体操作。它非常简单但绝对不容易:学习一种适合编写区块链的语言,例如:C++,Javascript,C#,Go 等。小目标 #4:智能合约学习如何定义智能合约?根据维基百科的定义,智能合约是“一种旨在促进、验证或执行合约谈判或履行的计算机协议”。1996年,美国密码学专家 Nick Szabo 首次提出了这一概念,而以太坊通常被认为是普及这一概念并使之成为主流的原因。你可以在我们的说明文档中了解更多有关智能合约的内容。那么,在我们的智能合约中,我们想要哪些特性呢?在区块链上运行的任何东西都必须是不可变的,并且必须在不损害其完整性的情况下在多个节点运行。因此,智能合约需要具备以下三点特性:确定性有限性隔离特征 #1:确定性一个程序是确定的是指其针对某一特定输入在任意时刻都具有相同输出。例如,如果 3+1=4,那么3+1将一直等于4(假设相同的基数)。因此,当一个程序在不同计算机上对于相同的输入集给出相同的输出时,就认为程序是确定性的。以下就是程序按照不确定性的方式执行的几种情况:调用不确定性的系统函数:当程序员在程序中调用不确定系统函数时。不确定性数据资源:如果一个程序在执行过程中所需的数据是不确定性的,那么这个程序就是不确定性的。例如,一个程序需要获取某一特定查询在 Google 搜索中前10 的结果。那么这个列表将持续变化。动态调用:当一个程序调用另一个程序时,就被称作动态调用。由于只有在执行过程中才能确定调用结果,所以这种调用也是不确定的。特征 #2:有限性在数学逻辑中,有一类错误叫做“停机问题(halting problem)”。从根本上说,它指出不能判断一个程序能否在有限时间内执行完成它的函数。在1936年,阿兰·图灵(Alan Turing)利用 乔治·康托尔(Georg Cantor)的对角线论证法推导出,没有办法知道一个给定的程序能否在有限的时间内执行完成。这显然是智能合约必须面对的一个问题,因为根据合约的定义,智能合约必须能够在有限时间内执行完成。为此我们采取了一些措施,能够在外部 “杀死” 合约,从而避免陷入无限循环而耗尽资源:图灵不完备性:图灵不完备的区块链的功能有限,不能进行跳转或者循环。因此他们并不能陷入无限循环。按照执行步骤付费:一个程序可以简单地记录其已经执行的 “步骤” 数,例如,其执行的指令的数量,然后在执行步数达到特定数值后终止程序。另一种方法是使用计价器。合约根据预付的费用执行。每条指令的执行需要消耗特定数量的费用。如果预付的费用使用完了,那么合约地执行也停止。计时器:预设一个计时器。如果合约执行时间超过时间限制,则从外部终止其执行。特征 #3:隔离在区块链中,任何人都可以上传智能合约。然而,某些合约可能有意或无意地包含病毒或Bug。如果合约不是相互隔离的,就可能会影响到整个系统地运行。因此,必须保证智能合约在沙盒中互相隔离,才能避免对整个生态系统产生负面的影响。我们已经了解了这些特征,了解它们如何执行也是十分重要的。通常智能合约是选择以下两个系统中的一个执行的:虚拟机:以太坊使用这种方法。Docker:Fabric使用这种方法。让我们比较一下这两种方案,并确定哪种方案使得生态系统更好。为了简单起见,我们将比较以太坊(虚拟机)和Fabric(Docker)。如果你对以太坊开发很感兴趣,那么你还必须学好 Soidity 语言。对于任何想开发 DAPPs(去中心化应用程序)或者想进行 ICO 的人来说,学习 Solidity 语言是十分必要的。我们已经有了一份详细的指南,你可以在这里阅读。然而,在这里我们将向你简单地介绍一下总结流程。Solidity 语言是 Gavin Wood, Christian Reitwiessner, Alex Beregszaszi, Yoichi Hirai 和几位前以太坊核心开发者开发的,可以使用 Solidity 语言编写智能合约,并且在区块链平台(例如以太坊)上执行。Solidity 是一种有意设计得精简而松散的编程语言,其语法规则与 ECMAScript(JavaScript)十分相似。以太坊设计原理文档中指出了一些必须要记住的要点,我们当前的运行环境是 32 byte 指令集的 stack-and-memory 模型,EVM(以太坊虚拟机)是的我们能够访问程序 “堆栈” 就像寄存器空间一样,我们可以通过制定内存地址给程序计数器从而实现循环和跳转操作(基于顺序程序控制),一个可扩展临时 “内存” 和一个更持久的 “存储” 实际上是永久地写入区块链中。最重要的是,EVM 要求智能合约必须是完全确定性的。如果你想系统地学习 Solidity 语言,在这里可以查看我们的强化课程。那么,让我们现在回顾一下步骤:理解智能合约是如何工作的。(以太坊开发者选做)学习 Solidity。小目标 #5:学习交流 融会贯通作为一名萌新开发者,你可以做的最重要的事情之一就是不断地学习交流、融会贯通。加入 Reddit 论坛,Github Pages 和 StackExchange 多与其他开发者交流,随时关注关于这项技术的消息。与此同时,这将有助于你了解当前区块链开发者关注的重点是什么。公司在招聘是需要具备那些素质?你可以在这里获取相关信息。这些信息将在你完善你的技能以及引起公司注意的过程中非常有用。总结因此,这就是你成为一名区块链开发者的大致路线图。当然,单凭这一点是完全不够的,你需要自己主动积极学习,并且始终处于这种状态。如果你正在寻找有关区块链开发的相关资料可以点击这个链接。我们祝你学习的旅途中一切顺利!原文链接: https://blockgeeks.com/guides/blockchain-developer/作者: Ameer Rosic翻译&校对: 林鹏 & Elisa

吴超人会飞于2020-08-06 13:04提问

区块链经济的应用方向 20 回答1 收藏0

青灯有味 2020-08-06 14:28:10 回答

1.法定数字货币货币是金融的基础,是所有基于价值交换的经济活动的通用介质。无需赘言,法定数字货币的场景将极为庞大、复杂并具有重要的金融战略意义。关于区块链对于法定数字货币的意义以及如何运用区块链思想进行法定数字货币的架构设计,可参照《区块链架构中的两大核心模块》以及《区块链对于法定数字货币的意义与政策建议》文中的相关论述。在这里需要强调的是,使用区块链推进法定数字货币实现的一个重要意义在于抢先制定国际标准。从国家战略的层面上来看,制定法定数字货币标准,包括制定“基本数据单元”的数据结构标准和“数据流转链条”的共识协议标准,其在金融领域的重要性类似于在IT领域制定互联网TCP/IP协议标准或是在商业领域制定全球贸易协定标准。这种看似技术协议或商业标准的竞争,实则攸关国家安全的根本利益。想象一下,在法定数字货币成为全球通行的货币形式的将来,哪个国家掌握了法定数字货币发行、流通的标准,对于其它国家金融格局的影响就会像上世纪改革开放、打开国门时西方文化带给中国人意识形态上的强烈冲击和影响一样,是一种潜移默化的、深刻的全球化金融扩张。2.数字身份在所有行业中,金融行业受到的监管最为严格,而对于客户身份的验证(KYC)是金融监管的一个关注重点。目前的现状是金融机构在KYC的流程中普遍存在信息搜集冗余,信息流转迟滞所导致的低效和巨大合规成本。基于区块链的数字身份可以在跨地区的组织机构之间进行数据的流转,增加效率、降低成本,这是区块链能够为传统金融机构的某个特定场景所带来的价值。但更为重要的是,基于区块链的数字身份可以作为实现数字普惠金融的基础性协议。目前普惠金融的痛点在于用户触及成本高,风险控制难度大,而目前利用数字技术(如:大数据)实现的“数字普惠金融”还只能局限于某个组织的生态系统之内(如:蚂蚁金服的芝麻信用)的某些场景中应用(如移动支付),而真正的跨组织、跨国家地域之间的数字普惠金融架构和合作还未能实现。其根本原因在于跨组织、跨国家地域之间的数据(尤其是涉及到国家安全和经济民生的敏感数据)无法通过传统方法被安全共享。而区块链作为一种“开放架构下的强安全机制”,建立在它两大核心模块“基本数据单元”和“数据链条”之上的数字身份可以尝试将数字普惠金融所覆盖的用户身份信息、历史活动记录以及其它和身份有关的属性信息安全地流转于跨越国家和地域的机构和个人之间,实现敏感数据的开放式安全共享。3. 更广泛的金融安全(监管)基础架构区块链的基本特征“开放架构下的强安全机制”从某种意义上来说是一种新型安全基础架构。和传统的基于密码学的“防御性”安全技术不同,区块链并非把需要保护的敏感数据集中在“云端”,然后试图筑造一道抵御外部入侵的“安全长城”。从近年来发生的种种安全事件中不难发现,哪怕是再牢固的“城墙”,由于“目标”(数据)集中化地被存储在某个固定位置(例如服务器中),黑客总是可能通过不断尝试找到某个安全漏洞,使得“破墙而入”最终只是一个时间问题。相比而言,区块链所代表的安全基础架构是一种全局性的安全,区块链中的数据被“集体共管共存”,存储的位置随时变动;只有真实有效的数据才会被接入链条中,而伪造的数据将会被系统自动丢弃。打个跨界的比方,汉族文化在过去几千年中的传承和包容并蓄就是一种区块链机制,虽然从政治的角度汉族在历史上曾被多个外来民族统治,但汉族的文化却一次次地接纳外来文化并最终将之吸收、同化。它的传承(数据存储和流转)以及对于外来文化的接纳同化的能力(基于共识机制的自动裁判修正功能)并非由一人之力完成,而是一种全局的力量。同时,文化发展所包含的“扬弃”过程,也是一种由多元文化共同作用、互相冲突和博弈,最终达到“纳什均衡”稳定状态的过程。从安全和金融监管的角度来看,基于区块链的安全基础架构允许风险诞生且发展于局部,但始终不能突破全局。正是由此这个特性,区块链最先被金融行业所发现并重视,因为金融业对于安全最为敏感,但传统的安全架构似乎永远都不能很好地解决“道高一尺,魔高一丈”的问题。金融监管也是一样,传统的监管试图采用各种手段消除金融风险,是一种被动的防御性机制(例如P2P行业曾暴露的风险和后续的监管措施),而基于区块链的金融监管基础架构使监管者可以设置一种开放式的“容错”架构和机制,并要求众多的参与者在这种设定的架构下进行活动,互相监督和制约。即使少数参与者不遵守“游戏规则”,基于全局性的共识机制会使多数的参与者立即发现这种情况并自动进行举报、纠正和惩罚。这种新型的监管模式是一种开放式的、主动的全局强监管,监管者的作用在于设计一个基于“纳什均衡”的博弈场,使被监管者必须遵守全局性的博弈规则(共识),否则就自动出局。在运行的过程中监管者可以主动推进博弈机制的不断地迭代和改进。来源:德勤中国

吴超人会飞于2020-08-06 11:17提问

区块链项目评级的维度 20 回答1 收藏0

青灯有味 2020-08-06 14:50:06 回答

项目分类:货币项目、基础链项目、应用项目(分资产类项目和通证应用类项目)项目阶段:分为私募阶段/ico阶段/交易所阶段交易所分级:前三、前十、前20、前30、 前40、前50、前100交易量评级:连续24h交易量评级、交易深度评级该领域市场潜力和饱和度评级:竞争分析模型技术评级:代码数,文件数,点赞数,更新频率,代码扫描商业模式评级:行业前景、市场规模等创始人评级:专家打分制顾问评级:专家打分制代币分配评级:总量大小、盘面分配、团队锁定期等持币用户数量及深度:主要看是否有坐庄嫌疑社群人数及活跃度:telegram、twitter、微信群、微博市场热度和美誉度:由舆情系统进行,针对谷歌、百度、Twitter、微信自媒体进行分析市场区域扩张度评级:当地媒体热度、当地meetup场次、当地交易所、当地合作伙伴基金会支出监管评级:项目方引入社群观察员,对每一项财务指标进行监督市场预期币价评级:由各币价专家和该项目社群成员评价相结合
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 205
前往
问答/互助 关注节点
今日0
主题2.0千
帖数2.2万
开源社区的精神在于分享与互助,让我们共同建设中国的stackexchange,为比特币新人照亮航道,让比特币更早成为大众应用。
本站与SOSO问答已绑定,请大家提问时标题尽量采用疑问句式,这样将被同步到SOSO。
最佳回答