智能合约是以一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议。就是用计算机语言取代了法律语言记录条款并由程序自动执行的合约。 换句话说,智能合约就是传统合同的数字化版本,它跑在区块链网络上,程序自动执行。由于区块链的去中心化,不可篡改,透明可追溯等特性,因此一旦触发协议条款,不用担心其不会执行命令。 它实现了用户从信任第三方机构到信任合同本身,从信任参与方到信任代码的转变。
public void startVector(int elem_size, int num_elems, int alignment) {
notNested();
vector_num_elems = num_elems;
prep(SIZEOF_INT, elem_size * num_elems);
prep(alignment, elem_size * num_elems); // Just in case alignment > int.
nested = true;
}
public int endVector() {
if (!nested)
throw new AssertionError("FlatBuffers: endVector called without startVector");
nested = false;
putInt(vector_num_elems);
return offset();
}
智能合约的目的是,提供优于传统合约的安全方法,并减少与合约相关的其他交易成本。
“一个智能合约是一套以数字形式定义的承诺(commitment),包括合约参与方可以在上面执行这些承诺的协议。”
智能合约数字形式意味着合约不得不写入计算机可读的代码中。这是必须的,因为只要参与方达成协定,智能合约建立的权利和义务,是由一台计算机或者计算机网络执行的。