以太坊如何通过构建智能合约来销售商品?

2023-11-15

如何通过构建以太坊智能合约来销售商品?这是个问题。

毫无疑问,比特币已经改变了我们看待和理解什么是金钱,价值以及最近由智能合约产生的所有权的方式。这很有趣,因为几乎每个人都听说过它或加密货币。来自许多业务领域的人,不仅仅是我们,IT工作者。

在本文中,我将展示我关于以太坊的第一份智能合约,这是我对区块链的个人研究的一部分。

以太坊智能合约

区块链适合初学者

有许多涉及区块链技术的概念,但在本节中我将尝试解释这种惊人的颠覆性技术。

顾名思义,区块链是使用它的哈希数据连接在一起的数据链的块,由用户的私钥签名。通常,这些块的大小限制为1MB,并且由于此限制而存储尽可能多的交易。

  • 概念1区块:它们是存储交易的块。认为这些块是具有一些元组的表,每个块都存储交易。

区块

  • 概念2不对称加密,公钥和私钥对:每个人都可以访问我们的公钥,只需我们访问我们的私钥即可。并且,非对称加密意味着:我们使用其中一个密钥编码,它只能与另一个密钥进行解码。没有例外。

真实性:如果我们想签署数据,我们使用私钥进行编码,因为每个人都可以使用我们的公钥解码并安全地认证我们。但是没有人可以改变数据并再次签名,因为它会被命运所拒绝。当真实性成为问题时使用。这是区块链的情况 。

签署数据以保证真实性

  • 使用私钥,所有者对数据进行编码,或者更好地对数据进行签名 。 通过此操作,所有者保证没有人伪造他或她的身份。

  • 使用公钥,每个人都可以解码数据,或者更好地检查 签名 。 通过这种操作,起源就是我们所期待的。

  • 概念3区块链的不可侵犯性质在于链接块的机制:当生成新块时,从当前块的数据生成哈希,包括它的签名。然后,生成新块,将来自前一块的hash与当前块的数据组合,并生成新的hash并使用用户的私钥进行签名,依此类推。如果有人试图更改块的数据以伪造事务,则他或她必须在整个网络开始使所有这些重新生成的块无效之前快速生成所有后续块。

如同暗夜里一开始没有灯…

一切都从创世块开始,这个块负责启动区块链网络并设置许多参数值,例如挖掘代币的难度。

如何创建链?

基于来自当前块的所有数据(包括签名),生成hash并将其包括在新生成的块的头中。此时此新块将成为当前块并开始注册交易。

很惊人!是不是?

案例分析

我选择了一个非常常见的用例,为使其易于理解,只留下了智能合约逻辑和技术细节的实现。

企业对企业——B2B

  • 零售商(retailer)从制造商(manufacturer)处订购货物。制造商检查库存数量,收集产品,包装,准备和运输。零售商和制造商有可信赖的商业关系。
  • 货物(shipment)由制造商要求的快递公司(courier)发货,他们也有可信赖的商业关系。
  • 零售商(retailer)和快递(courier)之间可信赖的商业关系(relationship)是可传递的(transitive),因为为制造商提供了共同的关系。
  • 值得信赖(trusted)的商业关系(relationship)非常重要,因为传统市场需要这种关系。从零售商到制造商的付款是在收到货物后几天发生的。并且,从发货人到快递员的付款在交货确认后几天发生。如果没有信任,他们就不会互相信任,也不会做出交易。这并不会促进最佳价格,服务和产品的竞争。
概括

最精细的商业交易由三部分组成:买方(buyer),货物(goods)和卖方(seller)。最基本的过程是转移货物的所有权以换取现金,从卖方到买方。你怎么看待这件事?

我们可以将此模型称为:从卖家购买商品所有权(buy-goods-ownership-from-seller)或简写为bogos

购买-所有权-商品-卖方图表模型

让我展示一些例子,然后翻译成bogos模型。

  • B2C——商品:John想要一部新的智能手机,他去了当地的市场并挑选了最好的智能手机并用他的信用卡付款。在这个例子中,“John”是买方buyer,“smartphone”是商品goods ,“local mart”是卖方seller。在John支付之前,本地市场拥有智能手机,付款后所有权转移给他。
  • B2C——服务:Maria很饿,她去了妈妈的意大利面并订购了很多意大利面条。厨师接受她的订单细节,准备菜肴,服务员为此服务。当Maria满意时,她付账并回家。在这个例子中,“Maria”是买家buyer,“dish”是商品goods,“Mama’s Pasta”是卖家seller。支付后,“菜”的所有权从“Mama’s Pasta”转移到“Maria”。
  • C2C——货物:Joseph在卖他的车。几周后,Berta想要从他那里买车。他们完成交易,Berta支付了有价值的价值,而Joseph将所有权转让给了她。 在这
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

以太坊如何通过构建智能合约来销售商品? 的相关文章

  • 星际文件存储IPFS是如何颠覆云存储的?

    一句话概括 IPFS The InterPlanetary File System 星际文件存储系统是一种点到点的分布式文件系统 它连接的计算设备都拥有相同的文件管理模式 从某种意义上来说这个概念跟Web的最初理念很类似 但是实际上IPFS
  • CROSS使用说明书 发行和拍卖NFT完整攻略

    鉴于目前去中心化NFT发行和拍卖平台CROSS是英文版本 对部分中国区用户存在操作困难 为了方便投资者和NFT爱好者能及时了解CROSS的相关信息和使用流程 现在CyberVein推出了更加详细的CROSS完整版教程 若还存有疑问 可添加中
  • 这篇文章,让你了解ERC-1155 多代币标准协议

    文章目录 ERC1155 介绍 多代币标准 前提条件 代币标准 ERC 20 ERC 721 构建 ERC1155 代币合约 ERC 1155 的功能和特点 批量传输 批量余额 批量审批 接收钩子 支持非同质化代币 安全转账规则 ERC11
  • 以太坊如何通过构建智能合约来销售商品?

    如何通过构建以太坊智能合约来销售商品 这是个问题 毫无疑问 比特币已经改变了我们看待和理解什么是金钱 价值以及最近由智能合约产生的所有权的方式 这很有趣 因为几乎每个人都听说过它或加密货币 来自许多业务领域的人 不仅仅是我们 IT工作者 在
  • 10分钟内用Ezo和Python构建以太坊Oracle

    上一篇 我写了用Web3 js构建以太坊Oracle 这个练习给了我一些新的Web3 js 1 0版本知识 许多新的好东西可供选择而且使用它实现一个简单的oracle非常容易 但是 显然必须有更好的方法 Instant Oracles 只需
  • 使用 sCrypt 实现数独游戏合约

    我们在 BSV 区块链上实现了一个数独游戏智能合约 利用之前介绍过的一种合约范式可以将游戏中寻找解题方案的过程外包上链 因为求解数独问题的计算工作量会随着其行列数快速增长 实际上它也是一个 NP 完全 问题 不过我们可以借由 sCrypt
  • Node.js web3.js编译、部署智能合约

    Node js web3 js编译 部署智能合约 供参考脚本 https github com Saturday24 Smart Contracts Script 1 编译脚本 a install web3 solc fs path b 编
  • python 之 web3 与智能合约的交互、编译等使用

    一 背景 web3 py是一个用于与以太坊交互的 Python 库 它常见于去中心化应用程序 dapps 中 帮助发送交易 与智能合约交互 读取块数据以及各种其他用例 最初的 API 源自Web3 js Javascript API 但后来
  • 以太坊创世区块源码分析

    genesis 是创世区块的意思 一个区块链就是从同一个创世区块开始 通过规则形成的 不同的网络有不同的创世区块 主网络和测试网路的创世区块是不同的 这个模块根据传入的genesis的初始值和database 来设置genesis的状态 如
  • OpenZeppelin集成Truffle编写健壮安全的合约

    原文 http truffleframework com tutorials robust smart contracts with openzeppelin 因为智能合约往往涉及金钱 保证Soldity代码没有错误 以及足够的安全是非常根
  • 区块链数据库

    大家好 这里是链客区块链技术问答社区 链客 有问必答 区块链是互联网未来十年中举足轻重的技术 区块链 Blockchain 或者说分布式账本 DLT Distributed Ledger Technology 最早是起源于比特币的一个重要概
  • 制作镜像并上传到阿里云

    run一个ubuntu容器 然后自动进入容器 ucsmy QKTEST21191 docker run it name node daocloud io ubuntu root 3ac09729dadb 安装geth sudo apt ge
  • 以太坊公链节点连接节点超时问题排查

    2020年4月1日晚上8点 zabbix报警 以太坊公链三分钟内没有检测到区块数据同步 立即登录到服务器 查看以太坊公链节点数据同步情况 docker logs f public eth tail 10 INFO 04 01 20 17 3
  • java和android程序员使用web3j进行区块链以太坊开发详解

    如何使用web3j为Java应用或Android App增加以太坊区块链支持 教程内容即涉及以太坊中的核心概念 例如账户管理包括账户的创建 钱包创建 交易转账 交易与状态 智能合约开发与交互 过滤器和事件等 同时也详细说明如何使用web3j
  • 区块链技术实战学习路线图

    请大家前往深入浅出区块链主站 获取最新内容 本章的文章越来越多 本文是一个索引帖 方便找到自己感兴趣的文章 你也可以使用左侧的分类 标签及搜索功能 有新文章时会更新本文 建议大家加入收藏夹中 如果你觉得本站不错 欢迎你转发给朋友 引言 给迷
  • 浅谈以太坊智能合约的设计模式与升级方法

    浅谈以太坊智能合约的设计模式与升级方法 1 最佳实践 2 实用设计案例 2 1 控制器合约与数据合约 1 gt 1 2 2 控制器合约与数据合约 1 gt N 2 3 控制器合约与数据合约 N gt 1 2 4 控制器合约与数据合约 N g
  • Sidetree - 去中心化身份管理协议

    身份 Identity 管理是区块链应用的核心元素 在一个不可信 匿名的分布计算生态中 要实现去中心化身份管理并不是一件容易的事情 Sidetree是一个基于现有区块链平台的第二层 L2s 协议 专门用于去中心化身份管理 微软最新开源的IO
  • 以太坊区块链学习之在私链上部署合约

    上一篇博客介绍了如何搭建私链并在私链上创建账户 挖矿 查看余额 本篇将介绍在私链上部署合约并与之交互 本篇开发环境为MacOS 10 12 建议读者使用macOS系统或者Ubuntu系统 第一步 进入geth客户端 启动私链 进入geth客
  • [区块链安全-CTF Protocol]区块链智能合约安全实战(已完结)

    区块链安全 CTF Protocol 区块链智能合约安全实战 前言 1 The Lost Kitty 2 RootMe 3 Trickster 4 The Golden Ticket 5 Smart Horrocrux 6 Gas Valv
  • Go语言实现区块链与加密货币-Part3(交易优化,单机模拟多节点通信)

    交易 二 在这个系列文章的一开始 我们就提到了 区块链是一个分布式数据库 不过在之前的文章中 我们选择性地跳过了 分布式 这个部分 而是将注意力都放到了 数据库 部分 到目前为止 我们几乎已经实现了一个区块链数据库的所有元素 今天 我们将会

随机推荐

  • UE4 C++ 编辑器模式下属性被修改时触发对应事件

    pragma once include CoreMinimal h include GameFramework Actor h include TestActors generated h UCLASS class TESTACTOR AP
  • 【Python】发布一个简单好用的日志记录器bestlog

    需求 日志是非常重要的一个东西 我们往往习惯于在开发一个新项目的第一行代码时 就用 logging info 代替 print 随时保持记录的好习惯 等代码上线以后也无需修改替换那些 print 直接开跑 有了完善的日志 才便于分析生产环境
  • 微信月活9亿的高效运维之路

    微信业务量增长的时候 其实我们比较关心的是效率 前期可能两三个月就涨了1倍的量 我们怎么能够保证我们的运营效率是跟得上的 后期可能主要是关心成本 我们在2014年以后增长有点放缓 所以主要的精力会在成本这个方面 分为四块来说 运营规范 云化
  • 团队项目负责人的一些感悟

    我们项目随着项目的越来越来 各种问题越来越多 比如表字段的问题 java对象的设计问题 下面是我们项目后期遇到的问题 一一罗列下 以后带团队必须注意的问题 java中 1 同一个意思的字段 在不同对象中具有不同的写法 比如说A类中金额的字段
  • Java中的String(1)

    目录 String不可变 一个例子 是字符串常量的情况下 是对象的情况下 常用的方法 String不可变 摘自JDK1 8 API文档 Strings are constant their values cannot be changed
  • springboot:异步调用@Async

    一 概述 springboot是基于spring框架的 在springboot环境下演示 Async注解的使用方式 先看下该注解的定义 复制代码 Target ElementType METHOD ElementType TYPE Rete
  • JFS及JFS2文件系统

    复杂度2 5 机密度2 5 最后更新2021 04 29 JFS和JFS2都是AIX支持的文件系统类型 JFS2是JFS的增强版 目前JFS结构已经开源 可以下载到jfs for linux的源代码 JFS开源网站 JFS JFS2都是日志
  • 单片机stm32使用ESP8266MQTT AT指令发送json字符串

    一 问题描述 基于文章 lt 单片机stm32使用rt thread软件包at device的AT指令 gt 测试发现使用MQTT AT指令发送主题信息时 直接发送字符串正常 发送json字符串时出问题 提示错误 数据格式的区别如下 s 正
  • 转:最详细的JavaScript 教程,入门级都能看懂

    目录 介绍 JavaScript特点 用法 实例1 head中的script函数 实例2 body中的script函数 实例3 外部调用JavaScript 输出 实例1 aler 弹窗输出 实例2 document write 输出 实例
  • TTL电路的拉电流、灌电流、扇出数及扇出数计算

    电流 灌电流 扇入数 扇出数 扇出数在数字电路中是非常常见的名词 下面我们先给出这些概念的定义 然后从原理出发 介绍这些名词的关系及扇出数的计算方法 灌电流 灌电流是数字电路输出端口为低电平时外部负载输入的电流 表征输入电流的能力 拉电流
  • 算力还是服务器?这不是一道选择题

    关注我们牛年牛气冲天 算力 顾名思义就是设备的计算能力 它无影无形 虽然看不见 摸不到 却真实存在 小到智能手机 PC 大到服务器 超级计算机 算力就 藏 存各种各样的硬件设备中 像沉睡的金矿 等待你去挖掘 算力 说了算 在云计算时代 一切
  • [荐]硕博经验——科研论文阅读与写作实战技巧

    又转自西电好网 http bbs xdnice com b99t378538 htm硕博经验 转来的 早知道就好了 少走很多弯路啊 该文从 举止优雅的猪 那里看见的 感觉很不错 不过我感觉到了博士才知道这些似乎有点晚了 或者是有不少人也不会
  • 21.openssl编程——EVP

    21 1 EVP 简介 Openssl EVP high level cryptographic functions 提供丰富的密码学中的各种函数 EVP主要封装如下功能函数 a 实现了base64编解码BIO b 实现了加解密BIO c
  • Android Studio 界面显示不全问题

    最近想试试google的android studio开发工具 安装完成后 按照向导新建一个工程 发现向导界面太大 整个屏幕显示不过来 调整界面大小也无法搞定 我用的是ubuntu系统 笔记本分辨率为1366 768 上网百度了好多 发现不少
  • redis集群设置密码

    注意事项 1 如果是使用redis trib rb工具构建集群 集群构建完成前不要配置密码 集群构建完毕再通过config set config rewrite命令逐个机器设置密码 2 如果对集群设置密码 那么requirepass和mas
  • Prometheus 安装及应用(内容较全面)

    prometheus 安装及应用 prometheus 官网 grafana dashboards 模板 prometheus 参考示例 Prometheus普罗米修斯 希腊神话人物 是一个开源的系统监控和告警系统 在kubernetes容
  • 较完整的koa2项目结构实例、脚手架-mysql,gulp

    koa2 starter A koa2 starter by using mysql gulp includes async await pm2 express style middlewares Based on 17koa koa2 d
  • 什么是LDO的线性调整率和负载调整率?

    原文来自公众号 工程师看海 后台回复 LDO仿真文件 LDO是常见的电源架构 线性调整率和负载调整率是两个重要的参数 线性调整率 line regulation 指的是 在特定负载电流条件下 当出入电压变化时 引起的对应输出电压的变化量 从
  • 华为OD题目: 简单的解压缩算法

    华为OD题目 简单的解压缩算法 知识点栈 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 现需要实现一种算法 能将一组压缩字符串还原成原始字符串 还原规则如下 1 字符后面加数字N 表示重复字符N次 例如 压缩内容为A3 表
  • 以太坊如何通过构建智能合约来销售商品?

    如何通过构建以太坊智能合约来销售商品 这是个问题 毫无疑问 比特币已经改变了我们看待和理解什么是金钱 价值以及最近由智能合约产生的所有权的方式 这很有趣 因为几乎每个人都听说过它或加密货币 来自许多业务领域的人 不仅仅是我们 IT工作者 在